我目前正在为客户设计报告,我必须在最后一页的底部放置一个文本。我必须在生成每个季度的16k pdf时执行此操作。
使用了iText 7.1.5,但将在下一版本中升级到最新版本。
在每页上都没有页脚是不可能的,因为该段落最多可以包含14行文本。在文档末尾添加普通段落也不是解决方案,因为我的客户要求文本位于页脚顶部。
预期结果:
当前生成的PDF
PdfADocument pdf = new PdfADocument(...)
...
// handler for adding header and footer on every page
pdf.AddEventHandler(PdfDocumentEvent.END_PAGE, headerFooterHandler);
Document doc = new Document(pdf);
doc.SetTopMargin(ConversionUtility.MillimeterToPoint(48));
doc.SetLeftMargin(ConversionUtility.MillimeterToPoint(26));
doc.SetRightMargin(ConversionUtility.MillimeterToPoint(18));
doc.SetBottomMargin(ConversionUtility.MillimeterToPoint(26));
... Some customer specific code
// paragraphs and data table is added
foreach(var feeLine in feeList.Values) {
switch (feeLine.Type) {
case "U":
case "T1":
case "T2":
case "BS":
doc.Add(GenerateTextBlock(feeLine, CheckSameType(feeLine.Type, feeList, i)));
break;
case "U3":
doc.Add(GenerateTextBlock(feeLine, CheckSameType(feeLine.Type, feeList, i)));
GenerateTableBlockStart(GetColumnCount(feeList[i + 1]));
break;
default:
if (CheckEndOfTable(feeList, i)) {
var table = GenerateTableBlock(feeLine, ColumnCount, true);
doc.Add(table);
table.Complete();
} else {
GenerateTableBlock(feeLine, ColumnCount, false);
}
break;
}
}
headerFooterHandler.WritePageTotal(pdf);
doc.Close();
我需要一些建议/代码,如何找到最后一页上的剩余空间。放置和书写文字没问题。
答案 0 :(得分:1)
您可以使用绝对定位将文本放置在最后一页所需的位置。您只需要找到要放置该段落的位置即可。这可以通过在PDF阅读器(例如Adobe / Foxit Reader)中打开任何pdf并将标尺更改为磅来完成。现在,您所需要做的就是放大并找到要放置文本的位置。例如
site_Foo
答案 1 :(得分:0)