我需要以页脚形式添加内容,其中段落以现有PDF文件的所有页面为中心。 我已经按照之前的answer进行了操作,但该解决方案并未解决我的问题。尽管代码有效,但我的PDF文件没有足够的底部边距来容纳页脚,因此文本会在内容之上。
添加页脚之前我需要做的是在底部添加一些额外的边距(有效地扩展页面大小)。与此question中的内容类似,但仅需要在底部添加额外的边距。
我也试过this但是没有用。我试图弄清楚自己,但到目前为止没有运气。
答案 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
。