我已经使用Open Xml创建了一个Word文档。在创建Web部件中的按钮时创建文档。目前我在文档中创建了一个表来测试它的工作原理。我现在想要做的是能够为新创建的documnet设置页边距。使用Open XML在c#中设置word文档的边距
我不确定如何继续。什么是最简单的方法来实现这一点?
(下面是当前代码我具有与内部表创建word文档)
void GenerateBadges_Click(object sender, EventArgs e)
{
//Creating a word document using the the Open XML SDK 2.0
WordprocessingDocument document = WordprocessingDocument.Create(@"C:\Users\Daniel.Perez
\Documents\sample-badges.docx", WordprocessingDocumentType.Document);
//create a paragraph
MainDocumentPart mainDocumenPart = document.AddMainDocumentPart();
mainDocumenPart.Document = new Document();
Body documentBody = new Body();
mainDocumenPart.Document.Append(documentBody);
//adding a table to the document
Table table = new Table();
TableProperties tblProps = new TableProperties();
TableBorders tblBorders = new TableBorders();
tblBorders.TopBorder = new TopBorder();
tblBorders.TopBorder.Val = new EnumValue<BorderValues>(BorderValues.Single);
tblBorders.BottomBorder = new BottomBorder();
tblBorders.BottomBorder.Val = new EnumValue<BorderValues>(BorderValues.Single);
tblBorders.RightBorder = new RightBorder();
tblBorders.RightBorder.Val = new EnumValue<BorderValues>(BorderValues.Single);
tblBorders.LeftBorder = new LeftBorder();
tblBorders.LeftBorder.Val = new EnumValue<BorderValues>(BorderValues.Single);
tblBorders.InsideHorizontalBorder = new InsideHorizontalBorder();
tblBorders.InsideHorizontalBorder.Val = BorderValues.Single;
tblBorders.InsideVerticalBorder = new InsideVerticalBorder();
tblBorders.InsideVerticalBorder.Val = BorderValues.Single;
tblProps.Append(tblBorders);
table.Append(tblProps);
TableRow row;
TableCell cell;
//first table row
row = new TableRow();
cell = new TableCell(new Paragraph(new Run(new Text("Table to hold the badges"))));
TableCellProperties cellProp = new TableCellProperties();
GridSpan gridSpan = new GridSpan();
gridSpan.Val = 11;
cellProp.Append(gridSpan);
cell.Append(cellProp);
row.Append(cell);
table.Append(row);
//second row
row = new TableRow();
cell = new TableCell();
cell.Append(new Paragraph(new Run(new Text("Inner Table"))));
row.Append(cell);
for (int i = 1; i <= 10; i++)
{
row.Append(new TableCell(new Paragraph (new Run(new Text(i.ToString())))));
}
table.Append(row);
for (int i = 1; i <= 10; i++)
{
row = new TableRow();
row.Append(new TableCell(new Paragraph(new Run(new Text(i.ToString())))));
for (int j = 1; j <= 10; j++)
{
row.Append(new TableCell(new Paragraph(new Run(new Text((i * j).ToString())))));
}
table.Append(row);
}
//add the table to the document - table needs to be wired into the for each loop above
documentBody.Append(table);
//Saving/Disposing of the created word Document
document.MainDocumentPart.Document.Save();
document.Dispose();
}
任何建议,将不胜感激。在此先感谢
你试过了PageMargin吗? http://msdn.microsoft.com/en-us/library/documentformat.openxml.wordprocessing.pagemargin.aspx – mindandmedia 2012-02-24 11:14:11
这显示了如何在开放的Xml中做到这一点,我有兴趣通过代码使用c# – 2012-02-24 11:17:23
http:///stackoverflow.com/questions/8430437/open-xml-sdk-page-margins – mindandmedia 2012-02-24 11:22:00