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

InformationsquelleAutor Dev P | 2012-02-24
Schreibe einen Kommentar