У меня есть следующий код, пытающийся вставить изображение в текстовый документ с использованием открытого XML:
private void AddImageToBody(ImagePart imagePart)
{
// Define the reference of the image.
var element =
new Drawing(
new Inline(
new Extent() { Cx = ConvertToEmu(640), Cy = ConvertToEmu(480) },
new EffectExtent()
{
LeftEdge = 0L,
TopEdge = 0L,
RightEdge = 0L,
BottomEdge = 0L
},
new DocProperties()
{
Id = (UInt32Value)1U,
Name = "Picture 1"
},
new NonVisualGraphicFrameDrawingProperties(
new GraphicFrameLocks() { NoChangeAspect = true }
),
new Graphic(
new GraphicData(
new Picture(
new NonVisualPictureProperties(
new NonVisualDrawingProperties()
{
Id = (UInt32Value)0U,
Name = "New Bitmap Image.jpg"
},
new NonVisualPictureDrawingProperties()),
new BlipFill(
new Blip(
new BlipExtensionList(
new BlipExtension()
{
Uri = "{28A0092B-C50C-407E-A947-70E740481C1C}"
}
)
)
{
Embed = mainpart.GetIdOfPart(imagePart),
CompressionState = BlipCompressionValues.Print
},
new Stretch(
new FillRectangle()
)
),
new ShapeProperties(
new Transform2D(
new Offset() { X = 0L, Y = 0L },
new Extents() { Cx = ConvertToEmu(640), Cy = ConvertToEmu(480) }
),
new PresetGeometry(
new AdjustValueList()
) { Preset = ShapeTypeValues.Rectangle }
)
)
) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/picture" }
)
)
{
DistanceFromTop = (UInt32Value)0U,
DistanceFromBottom = (UInt32Value)0U,
DistanceFromLeft = (UInt32Value)0U,
DistanceFromRight = (UInt32Value)0U
});
// Append the reference to body, the element should be in a Run.
body.AppendChild(new Paragraph(new Run(element)));
}
Несмотря на то, что я вставляю изображение, вставляемое изображение отображается как пустое и имеет неправильную ширинуи высота.
Есть предложения?