Einstellung der Rand des word-Dokuments in c# die Verwendung von Open XML
Habe ich eine Word-Dokument mit Open Xml. Das Dokument wird erstellt, wenn eine Schaltfläche in einer web-Teil geschaffen. Derzeit habe ich eine Tabelle in das Dokument um zu testen, ob es funktioniert. Was ich jetzt machen möchte, ist in der Lage sein, um die Seitenränder für die neu erstellte documnet.
Ich bin nicht sicher, wie es weitergehen soll. Was wäre der einfachste Weg, dies zu erreichen?
(unten ist der aktuelle code, den ich habe, schafft das word-Dokument mit einer Tabelle drin)
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();
}
Anregungen wird sehr geschätzt werden. Vielen Dank im Voraus
- haben Sie versucht, PageMargin? msdn.microsoft.com/en-us/library/...
- dies zeigt, wie es in open Xml, ich bin daran interessiert, über den code hinter der Verwendung von c#
- stackoverflow.com/questions/8430437/open-xml-sdk-page-margins
- "PageSetup" wie im genannten Beispiel wird nicht anerkannt, visual studio 2010, irgendwelche Ideen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Obwohl die Frage ist schon ziemlich alt und unbeantwortet gelassen, nur um komplett den Faden und denen zu helfen, landen könnte, auf dieser Seite später, ich bin Entsendung der gelöst-code:
Hinweis: Sie können konvertieren von Open XML in C# - code mit "Open XML SDK 2.0 Productivity Tool". Öffnen Sie einfach jede offene Datei im XML-format (document/spreadsheet etc.) in das tool und klicken Sie auf "Spiegeln Code" Schaltfläche in der Symbolleiste.