gpt4 book ai didi

java - 如何使用 iText 相对于页面定位文本?

转载 作者:行者123 更新时间:2023-11-30 09:20:22 24 4
gpt4 key购买 nike

如何设置文本的位置,使其相对于页面大小垂直居中?我想定位它,例如从右边开始 x 个点并垂直居中。文本当然旋转了 90 度。

            int n = reader.getNumberOfPages();
PdfImportedPage page;
PdfCopy.PageStamp stamp;
for (int j = 0; j < n; )
{
++j;
page = writer.getImportedPage(reader, j);
stamp = writer.createPageStamp(page);
Rectangle crop = reader.getCropBox(1);
// add overlay text
Phrase phrase = new Phrase("Overlay Text");
ColumnText.showTextAligned(stamp.getOverContent(), Element.ALIGN_CENTER, phrase,
crop.getRight(72f), crop.getHeight() / 2, 90);
stamp.alterContents();
writer.addPage(page);
}

上面的代码让我的文本位置不一致,在某些页面中,只有一部分“覆盖文本”是可见的。请帮忙,我不知道如何正确使用 mediabox 和 cropbox,而且我是 itext 的新手。

谢谢!

最佳答案

关于不一致的位置:应该通过添加垂直偏移来修复:

crop.getRight(72f), crop.getBottom() + crop.getHeight() / 2

你看到了吗?您将 1 英寸边距的右边框作为 x 坐标,但您忘记考虑页面底部的 y 坐标(它并不总是 0)。通常,这应该可以解决定位问题。

关于只有一部分叠加文本可见的事实:我的第一个猜测是您在现有内容下添加内容,但这个猜测是错误的(您使用的是 getOverContent())。你说的第二个问题到底是什么意思?你是说文本被 CropBox 裁剪了吗?您是否正在寻找一种方法来测量 phrase 的内容,以查看它是否适合您添加之前的高度?

关于java - 如何使用 iText 相对于页面定位文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17439520/

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