如何设置MigraDoc的页面大小?

时间:2015-09-24 08:53:20

标签: c# migradoc

很抱歉,我只是PDFsharp的初学者。

如何将PageSize设置为文档?让我们说A4。怎么设置呢?这是我的代码。感谢。

    Document document = new Document();

    // Add a section to the document
    Section section = document.AddSection();
    section.AddParagraph("dddddd");


    // Add a section to the document
    var table = section.AddTable();
    table.AddColumn("8cm");
    table.AddColumn("8cm");

    var row = table.AddRow();
    var paragraph = row.Cells[0].AddParagraph("Left text");
    paragraph.AddTab();
    paragraph.AddText("Right text");
    paragraph.Format.ClearAll();
    // TabStop at column width minus inner margins and borders:
    paragraph.Format.AddTabStop("27.7cm", TabAlignment.Right);
    row.Cells[1].AddParagraph("Second column");
    table.Borders.Width = 1;

1 个答案:

答案 0 :(得分:6)

A4是默认尺寸。

每个部分都有PageSetup属性,您可以在其中设置页面大小,边距等。

var section = document.LastSection;
section.PageSetup.PageFormat = PageFormat.A4;
section.PageSetup.TopMargin = "3cm";

您永远不应修改DefaultPageSetup,而是使用Clone()PageFormat不适用于Clone(),因为PageWidthPageHeight设置为默认尺寸A4。
要获取Letter格式,您可以使用此代码覆盖PageWidthPageHeight

var section = document.LastSection;
section.PageSetup = Document.DefaultPageSetup.Clone();
section.PageSetup.PageFormat = PageFormat.Letter; // Has no effect after Clone(), just for documentation purposes.
section.PageSetup.PageWidth = Unit.FromPoint(612);
section.PageSetup.PageHeight = Unit.FromPoint(792);
section.PageSetup.TopMargin = "3cm";

要获取Letter格式,您可以使用此代码重置PageWidthPageHeight以使PageFormat再次发挥作用:

var section = document.LastSection;
section.PageSetup = Document.DefaultPageSetup.Clone();
section.PageSetup.PageWidth = Unit.Empty;
section.PageSetup.PageHeight = Unit.Empty;
section.PageSetup.PageFormat = PageFormat.Letter;
section.PageSetup.TopMargin = "3cm";

如果您的代码使用例如{p>},那么创建Clone()非常有用左右边距来计算表格宽度等。如果明确设置所有边距或不使用边距进行计算,则无需创建克隆 如果您需要Clone(),可以使用此处显示的方法设置页面大小。