Вставьте изображение в документ Word, используя открытые XML и C # - PullRequest
2 голосов
/ 06 февраля 2012

У меня есть следующий код, пытающийся вставить изображение в текстовый документ с использованием открытого 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)));
        }

Несмотря на то, что я вставляю изображение, вставляемое изображение отображается как пустое и имеет неправильную ширинуи высота.

Есть предложения?

Ответы [ 2 ]

2 голосов
/ 06 февраля 2012

Попробуйте msdn "Как: вставить изображение в текстовый документ" на http://msdn.microsoft.com/en-us/library/bb497430.aspx. Я могу добавить изображение, используя этот код.

1 голос
/ 06 сентября 2013

Я не кодирую никакие значения, но передаю их в метод добавления изображения, как показано в коде ниже.

...