gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:20:48 25 4
gpt4 key购买 nike

我需要以页脚的形式添加内容,其中段落以现有 PDF 文件的所有页面为中心。我已经关注了之前的answer但该解决方案并不能解决我的问题。尽管代码有效,但我的 PDF 没有足够的下边距来容纳页脚,因此文本位于内容的顶部。

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

我也尝试过this但没有用。我正在尝试自己解决这个问题,但到目前为止还没有运气。

最佳答案

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

PDF 文档的页面大小是使用 /MediaBox 定义的。可以使用 /CropBox 对其进行裁剪。在我给出的答案中,我们像这样更改 /MediaBox:

PdfArray mediabox = pageDict.getAsArray(PdfName.MEDIABOX);
llx = mediabox.getAsNumber(0).floatValue();
mediabox.set(0, new PdfNumber(llx - 36));

llx 的值是左下 X 坐标的坐标,我们减去半英寸(36 个用户单位)。

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

PdfArray mediabox = pageDict.getAsArray(PdfName.MEDIABOX);
lly = mediabox.getAsNumber(1).floatValue();
mediabox.set(1, new PdfNumber(llx - 36));

这就是马克在回答问题 How do I resize an existing PDF with Coldfusion/iText 时所做的事情。

当然,如果有裁剪框,​​这不会有任何效果。如果有裁剪框,​​您还需要更改裁剪框的 llx 值:

PdfArray cropbox = pageDict.getAsArray(PdfName.CROPBOX);
if (cropbox != null) {
lly = cropbox.getAsNumber(1).floatValue();
cropbox.set(1, new PdfNumber(llx - 36));
}

显然,添加页脚时需要考虑到更改。在我的示例中,底部坐标不再是 lly 而是 lly - 36

关于java - 如何扩展现有 PDF 的页面大小以在 iText 中添加页脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49930283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com