Xfinium 流文档中的分页符



我正在使用Xfinium.PDF为UWP创建一个PdfFlowDocument。我需要插入分页符,但前提是某个部分(包含段落和表格(不适合当前页面。这是一种"保持在一起"的功能。

我怎样才能完成我的任务?

更新:我已将需要保持在一起的内容量最小化为一个表。虽然它是一个流量表,但我知道我需要将其转换为固定大小的表来计算其高度。如果我能在呈现所有流内容后以某种方式找到页面上的当前位置,我将能够计算页面上还剩多少空间。如果有足够的空间容纳表格,我会在页面上呈现它。如果没有,我会发出分页符并将其呈现在下一页上。

渲染流内容后,是否有功能可以找出页面上的当前位置?

您可以通过调用 PdfFlowDocument.StartNewPage 来强制使用分页符。
流内容的大小信息在公共 API 中不可用,您无法在代码中测试内容对象是否适合当前可用空间。
我们将在下一个版本中支持此功能。

创建一个包含单行和单元格的表格。对于单元格,请使用PdfFlowTableCompositeCell。它有一个属性 内容,它是流内容对象的集合。在行集上,EnableRowSplit = false

var table = new PdfFlowTableContent(1);
//column width in %
table.Columns[0].Width = 100;
var row = table.Rows.Add();
row.EnableRowSplit = false;
var cell = new PdfFlowTableCompositeCell();
//text
cell.Content.Add(new PdfFlowTextContent(new PdfFormattedContent(KswModuleTranslator.PdfFaultReportStationAssuranceText)));
//image
var image = new PdfPngImage(new MemoryStream(signatureData.Signature));
var imgDings = new PdfFlowImageContent(image);
cell.Content.Add(imgDings);
//text
cell.Content.Add(new PdfFlowTextContent(new PdfFormattedContent(signatureInfo.SigneeName)));
row.Cells.Add(cell);
document.AddContent(table);

最新更新