如何扩展现有PDF的页面大小以在iText中添加页脚

时间:2018-04-19 21:07:27

标签: java pdf itext

我需要以页脚形式添加内容,其中段落以现有PDF文件的所有页面为中心。 我已经按照之前的answer进行了操作,但该解决方案并未解决我的问题。尽管代码有效,但我的PDF文件没有足够的底部边距来容纳页脚,因此文本会在内容之上。

添加页脚之前我需要做的是在底部添加一些额外的边距(有效地扩展页面大小)。与此question中的内容类似,但仅需要在底部添加额外的边距。

我也试过this但是没有用。我试图弄清楚自己,但到目前为止没有运气。

1 个答案:

答案 0 :(得分:1)

如果您知道如何在这个问题中解释如何在侧面添加额外空间:How to extend the page size of a PDF to add a watermark?那么您应该知道如何在底部添加额外空间。你的问题是重复的。

使用/login定义PDF文档的页面大小。它可以使用/MediaBox进行裁剪。在我给出的答案中,我们更改/CropBox,如下所示:

/MediaBox

PdfArray mediabox = pageDict.getAsArray(PdfName.MEDIABOX); llx = mediabox.getAsNumber(0).floatValue(); mediabox.set(0, new PdfNumber(llx - 36)); 的值是左下角X坐标的坐标,我们减去半英寸(36个用户单位)。

如果要更改底部边框,则必须更改左下角的Y坐标:

llx

Mark在回答问题How do I resize an existing PDF with Coldfusion/iText

时所做的事情

当然,如果有裁剪框,​​这将不会产生任何影响。如果有裁剪框,​​您还需要更改裁剪框的PdfArray mediabox = pageDict.getAsArray(PdfName.MEDIABOX); lly = mediabox.getAsNumber(1).floatValue(); mediabox.set(1, new PdfNumber(llx - 36)); 值:

llx

显然,添加页脚时需要考虑更改。在我的示例中,底部坐标不再是PdfArray cropbox = pageDict.getAsArray(PdfName.CROPBOX); if (cropbox != null) { lly = cropbox.getAsNumber(1).floatValue(); cropbox.set(1, new PdfNumber(llx - 36)); } ,而是lly