private static void GetDrawingModeAndWrapType(OXmlPictureDrawingType drawingType, out OXmlPictureDrawingMode drawingMode, out OXmlAnchorWrapType wrapType) { switch (drawingType) { case OXmlPictureDrawingType.Inline: drawingMode = OXmlPictureDrawingMode.Inline; wrapType = OXmlAnchorWrapType.WrapNone; break; case OXmlPictureDrawingType.AnchorWrapNone: drawingMode = OXmlPictureDrawingMode.Anchor; wrapType = OXmlAnchorWrapType.WrapNone; break; case OXmlPictureDrawingType.AnchorWrapSquare: drawingMode = OXmlPictureDrawingMode.Anchor; wrapType = OXmlAnchorWrapType.WrapSquare; break; case OXmlPictureDrawingType.AnchorWrapTight: drawingMode = OXmlPictureDrawingMode.Anchor; wrapType = OXmlAnchorWrapType.WrapTight; break; case OXmlPictureDrawingType.AnchorWrapThrough: drawingMode = OXmlPictureDrawingMode.Anchor; wrapType = OXmlAnchorWrapType.WrapThrough; break; case OXmlPictureDrawingType.AnchorWrapTopAndBottom: drawingMode = OXmlPictureDrawingMode.Anchor; wrapType = OXmlAnchorWrapType.WrapTopAndBottom; break; default: throw new PBException($"unknow DrawingType {drawingType}"); } }
private static OXmlAnchorPictureDrawing CreateAnchorPictureDrawing(BsonDocument element, OXmlAnchorWrapType wrapType) { OXmlAnchorPictureDrawing anchor = new OXmlAnchorPictureDrawing(); anchor.AnchorId = element.zGet("AnchorId").zAsString(); anchor.EditId = element.zGet("EditId").zAsString(); anchor.DistanceFromTop = element.zGet("DistanceFromTop").zAsNullableInt(); anchor.DistanceFromBottom = element.zGet("DistanceFromBottom").zAsNullableInt(); anchor.DistanceFromLeft = element.zGet("DistanceFromLeft").zAsNullableInt(); anchor.DistanceFromRight = element.zGet("DistanceFromRight").zAsNullableInt(); anchor.HorizontalPosition.RelativeFrom = element.zGet("HorizontalRelativeFrom").zAsString().zTryParseEnum(DW.HorizontalRelativePositionValues.Margin); anchor.HorizontalPosition.PositionOffset = element.zGet("HorizontalPositionOffset").zAsNullableInt(); anchor.HorizontalPosition.HorizontalAlignment = element.zGet("HorizontalAlignment").zAsString(); anchor.VerticalPosition.RelativeFrom = element.zGet("VerticalRelativeFrom").zAsString().zTryParseEnum(DW.VerticalRelativePositionValues.Paragraph); anchor.VerticalPosition.PositionOffset = element.zGet("VerticalPositionOffset").zAsNullableInt(); anchor.VerticalPosition.VerticalAlignment = element.zGet("VerticalAlignment").zAsString(); anchor.EffectExtent = CreateEffectExtent(element.zGet("EffectExtent").zAsBsonDocument()); anchor.AllowOverlap = element.zGet("AllowOverlap").zAsBoolean(); anchor.BehindDoc = element.zGet("BehindDoc").zAsBoolean(); anchor.Hidden = element.zGet("Hidden").zAsBoolean(); anchor.LayoutInCell = element.zGet("LayoutInCell").zAsBoolean(); anchor.Locked = element.zGet("Locked").zAsBoolean(); anchor.RelativeHeight = element.zGet("RelativeHeight").zAsInt(); BsonDocument element2 = element.zGet("SimplePosition").zAsBsonDocument(); if (element2 != null) { anchor.SimplePosition = new OXmlPoint2DType { X = element2.zGet("X").zAsLong(), Y = element.zGet("Y").zAsLong() } } ; switch (wrapType) { //case OXmlAnchorWrapType.WrapNone: case OXmlAnchorWrapType.WrapSquare: anchor.Wrap = CreateAnchorWrapSquare(element.zGet("WrapSquare").zAsBsonDocument()); break; case OXmlAnchorWrapType.WrapTight: anchor.Wrap = CreateAnchorWrapTight(element.zGet("WrapTight").zAsBsonDocument()); break; //case OXmlAnchorWrapType.WrapThrough: case OXmlAnchorWrapType.WrapTopAndBottom: anchor.Wrap = CreateAnchorWrapTopAndBottom(element.zGet("WrapTopAndBottom").zAsBsonDocument()); break; default: throw new PBException($"wrap type \"{wrapType}\" not implemented"); } return(anchor); }
private static OXmlAnchorPictureDrawing CreateAnchorPictureDrawing(BsonDocument element, OXmlAnchorWrapType wrapType) { OXmlAnchorPictureDrawing anchor = new OXmlAnchorPictureDrawing(); //string wrapType = element.zGet("WrapType").zAsString(); //switch (wrapType.ToLower()) //{ // //case "wrapnone": // case "wrapsquare": // anchor.Wrap = CreateAnchorWrapSquare(element); // break; // case "wraptight": // anchor.Wrap = CreateAnchorWrapTight(element); // break; // //case "wrapthrough": // case "wraptopandbottom": // anchor.Wrap = CreateAnchorWrapTopAndBottom(element); // break; // default: // throw new PBException($"unknow oxml wrap type \"{wrapType}\""); //} switch (wrapType) { //case OXmlAnchorWrapType.WrapNone: case OXmlAnchorWrapType.WrapSquare: anchor.Wrap = CreateAnchorWrapSquare(element); break; case OXmlAnchorWrapType.WrapTight: anchor.Wrap = CreateAnchorWrapTight(element); break; //case OXmlAnchorWrapType.WrapThrough: case OXmlAnchorWrapType.WrapTopAndBottom: anchor.Wrap = CreateAnchorWrapTopAndBottom(element); break; default: throw new PBException($"wrap type \"{wrapType}\" not implemented"); } // Margin, Page, Column, Character, LeftMargin, RightMargin, InsideMargin, OutsideMargin anchor.HorizontalRelativeFrom = element.zGet("HorizontalRelativeFrom").zAsString().zTryParseEnum(DW.HorizontalRelativePositionValues.Margin); anchor.HorizontalPositionOffset = element.zGet("HorizontalPositionOffset").zAsNullableInt(); anchor.HorizontalAlignment = element.zGet("HorizontalAlignment").zAsString(); anchor.VerticalRelativeFrom = element.zGet("VerticalRelativeFrom").zAsString().zTryParseEnum(DW.VerticalRelativePositionValues.Paragraph); anchor.VerticalPositionOffset = element.zGet("VerticalPositionOffset").zAsNullableInt(); anchor.VerticalAlignment = element.zGet("VerticalAlignment").zAsString(); return anchor; }