如何让MigraDoc生成具有动态页面宽度的PDF



我正在尝试创建一个PDF文档,大约有20列,宽度各不相同。它获取第一页上大约一半的列,然后切掉其余的列。我希望它确定页面宽度,并将剩余的列移到第二页上。有没有办法在呈现或PageSetup中指定这一点?我想我必须计算宽度,创建第一页,然后创建第二页。

Table table = new Table();
PdfDocumentRenderer renderer = new PdfDocumentRenderer(true, PdfSharp.Pdf.PdfFontEmbedding.Always);
renderer.Document = doc;
doc.DefaultPageSetup.Orientation = MigraDoc.DocumentObjectModel.Orientation.Landscape;
//create the columns
for (int i = 1; i < tripReportGrid.Columns.Count; i++)
{
col = table.AddColumn(tripReportGrid.Columns[i].Width);
col.Format.Alignment = ParagraphAlignment.Center;
}
...fill the content same way
renderer.RenderDocument();

页面的宽度是您设置的宽度,如果不设置,则为A4。

您可以将页面宽度设置为任何值。当在屏幕上查看PDF文件时,这可能是可以的。

或者,您只能在一个页面上向一个表中添加尽可能多的列。横向格式的A4为29.7厘米。默认边距为左右2.5厘米。

并且BTW:您永远不应该修改DefaultPageSetup。将DefaultPageSetup的Clone()分配给节的PageSetup,并根据需要进行更改。

最新更新