c# openxml 添加图片居中
时间: 2023-11-22 19:50:24 浏览: 46
以下是使用C# Open XML添加图片并居中的示例代码:
```csharp
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using A = DocumentFormat.OpenXml.Drawing;
using DW = DocumentFormat.OpenXml.Drawing.Wordprocessing;
using PIC = DocumentFormat.OpenXml.Drawing.Pictures;
public void AddCenteredImage(string imagePath, string documentPath)
{
using (WordprocessingDocument document = WordprocessingDocument.Open(documentPath, true))
{
MainDocumentPart mainPart = document.MainDocumentPart;
// 创建一个段落
Paragraph paragraph = new Paragraph();
// 创建一个段落属性
ParagraphProperties paragraphProperties = new ParagraphProperties();
Justification justification = new Justification() { Val = JustificationValues.Center };
// 将段落属性添加到段落
paragraphProperties.Append(justification);
paragraph.Append(paragraphProperties);
// 创建一个Run
Run run = new Run();
// 创建一个Drawing
Drawing drawing = new Drawing();
// 创建一个Inline
Inline inline = new Inline();
// 创建一个Graphic
Graphic graphic = new Graphic();
// 创建一个GraphicData
GraphicData graphicData = new GraphicData() { Uri = "http://schemas.openxmlformats.org/drawingml/2006/picture" };
// 创建一个Picture
PIC.Picture picture = new PIC.Picture();
// 创建一个BlipFill
PIC.BlipFill blipFill = new PIC.BlipFill();
// 创建一个Blip
A.Blip blip = new A.Blip() { Embed = mainPart.GetIdOfPart(mainPart.AddImagePart(ImagePartType.Jpeg)) };
// 创建一个Stretch
A.Stretch stretch = new A.Stretch();
A.FillRectangle fillRectangle = new A.FillRectangle();
// 将Blip添加到BlipFill
blipFill.Append(blip);
blipFill.Append(stretch);
// 将BlipFill添加到Picture
picture.Append(blipFill);
picture.Append(fillRectangle);
// 创建一个ShapeProperties
PIC.ShapeProperties shapeProperties = new PIC.ShapeProperties();
// 创建一个Transform2D
A.Transform2D transform2D = new A.Transform2D();
// 创建一个Offset
A.Offset offset = new A.Offset() { X = 0, Y = 0 };
// 创建一个Extent
A.Extents extents = new A.Extents() { Cx = 914400, Cy = 914400 };
// 将Offset和Extent添加到Transform2D
transform2D.Append(offset);
transform2D.Append(extents);
// 将Transform2D添加到ShapeProperties
shapeProperties.Append(transform2D);
// 将ShapeProperties添加到Picture
picture.Append(shapeProperties);
// 将Picture添加到GraphicData
graphicData.Append(picture);
// 将GraphicData添加到Graphic
graphic.Append(graphicData);
// 将Graphic添加到Inline
inline.Append(graphic);
// 将Inline添加到Drawing
drawing.Append(inline);
// 将Drawing添加到Run
run.Append(drawing);
// 将Run添加到段落
paragraph.Append(run);
// 将段落添加到文档主体
mainPart.Document.Body.Append(paragraph);
// 保存文档
mainPart.Document.Save();
}
}
```
请注意,您需要将`imagePath`替换为您要添加的图片的路径,将`documentPath`替换为您要保存的Word文档的路径。