C# 使用open xml和C将图像插入word文档#
我有以下代码试图使用open xml将图像插入word文档:C# 使用open xml和C将图像插入word文档#,c#,image,ms-word,openxml,C#,Image,Ms Word,Openxml,我有以下代码试图使用open xml将图像插入word文档: private void AddImageToBody(ImagePart imagePart) { // Define the reference of the image. var element = new Drawing( new Inline( new Extent() { Cx = ConvertToEmu(640), Cy =
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)));
}
虽然我正在插入图像,但插入的图像显示为空白,且宽度和高度不正确
有什么建议吗?请尝试msdn“如何:在文字处理文档中插入图片”,网址为。我可以使用此代码添加图像。我没有硬编码任何值,但我将它们传递给添加图像的方法,如下面的代码所示
private static void AddImageToRun(Run run, string imageFileName, long imageWidthEMU, long imageHeightEMU, string imageID)
{
try
{
string GraphicDataUri =http://schemas.openxmlformats.org/drawingml/2006/picture";
var element =
new Drawing(
new DW.Inline(
new DW.Extent() { Cx = imageWidthEMU, Cy = imageHeightEMU },
new DW.EffectExtent()
{
LeftEdge = 0L,
TopEdge = 0L,
RightEdge = 0L,
BottomEdge = 0L
},
new DW.DocProperties()
{
Id = (UInt32Value)1U,
Name = imageFileName,
Description = imageFileName
},
new DW.NonVisualGraphicFrameDrawingProperties(
new A.GraphicFrameLocks() { NoChangeAspect = true }),
new A.Graphic(
new A.GraphicData(
new PIC.Picture(
new PIC.NonVisualPictureProperties(
new PIC.NonVisualDrawingProperties()
{
Id = (UInt32Value)0U,
Name = imageFileName
},
new PIC.NonVisualPictureDrawingProperties()),
new PIC.BlipFill(
new A.Blip()
{
Embed = imageID
},
new A.Stretch(
new A.FillRectangle())),
new PIC.ShapeProperties(
new A.Transform2D(
new A.Offset() { X = 0L, Y = 0L },
new A.Extents()
{
Cx = imageWidthEMU,
Cy = imageHeightEMU
}),
new A.PresetGeometry(
new A.AdjustValueList()
) { Preset = A.ShapeTypeValues.Rectangle }))
) { Uri = GraphicDataUri })
)
{
DistanceFromTop = (UInt32Value)0U,
DistanceFromBottom = (UInt32Value)0U,
DistanceFromLeft = (UInt32Value)0U,
DistanceFromRight = (UInt32Value)0U,
});
// Append the reference to body, the element should be in a Run.
run.AppendChild(element);
}
catch (Exception ex)
{
throw;
}
}
这似乎没有给讨论增加任何价值。