gpt4 book ai didi

java - itext7 的绝对位置

转载 作者:行者123 更新时间:2023-12-02 11:43:10 26 4
gpt4 key购买 nike

我在 itext7 中添加相对于页面大小具有绝对位置的图像时遇到问题。

在 itext5 中,我使用下面的代码来确定图像相对于我将其添加到的页面的位置

for (int i = 0; i < numberOfPages;) {
page = copy.getImportedPage(reader, ++i);

if(page.getBoundingBox().getWidth() != 595.00f) {
img.setAbsolutePosition(page.getBoundingBox().getWidth() - (595-img.getAbsoluteX()),img.getAbsoluteY());
}
if(page.getBoundingBox().getHeight() != 842.00f) {
img.setAbsolutePosition(img.getAbsoluteX(), page.getBoundingBox().getHeight() - (842-img.getAbsoluteY()));
}

stamp = copy.createPageStamp(page);
stamp.getOverContent().addImage(img);
stamp.alterContents();
copy.addPage(page);
}

现在对于itext7我正在使用

public static void addImageToPDF(String inputFilePath, Image img) throws IOException, DocumentException {    

File inFile = new File(inputFilePath);
File outFile = new File(inputFilePath + "_image.pdf");

PdfDocument pdfDoc = new PdfDocument(new PdfReader(inFile), new PdfWriter(outFile));

Document document = new Document(pdfDoc);
int numberOfPages = pdfDoc.getNumberOfPages();

Rectangle pageSize;

// Loop over the pages of document
for (int i = 1; i <= numberOfPages; i++) {

pageSize = pdfDoc.getPage(i).getPageSize();

if(pageSize.getWidth() != 595.00f) {
img.setFixedPosition(pageSize.getWidth() - (595-img.getImageWidth()),img.getImageHeight());
}
if(pageSize.getHeight() != 842.00f) {
img.setFixedPosition(img.getImageWidth(), pageSize.getHeight() - (842-img.getImageHeight()));
}

document.add(img);
}
}

我需要将图像添加到相对于页面的右上角,但现在它将其添加到右侧屏幕的中间。

添加图像时有没有办法在 itext7 中设置绝对位置?图像并不总是处于精确宽度和高度的同一位置,因此使用固定位置对我来说是一个问题。

最佳答案

我不明白为什么你的 for 循环中需要两个case。如果您的目标是将图像放置在页面的右上角位置,并且您知道图像的宽度和高度以及页面的宽度和高度,那么您需要做的就是计算传递给 setFixedPosition方法。

setFixedPosition 接受 xy 坐标,它们是 PDF 坐标系中图像的左下坐标,即从左到右、从上到下。

因此,您需要从页面宽度中减去图像宽度,并对高度执行相同的操作,从而得到以下一行:

img.setFixedPosition(pageSize.getWidth() - img.getImageWidth(), pageSize.getHeight() - img.getImageHeight());

关于java - itext7 的绝对位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48387035/

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