gpt4 book ai didi

java - iText7 setRotation() 无法正常工作

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

我正在制作一个小型 Java 程序,可以使用 iTextPDF 7 修改现有 PDF,并将更改保存在新 PDF 中。我从旋转功能开始,使用 setRotation()一个 PdfDocument,但我的 PDF 输出旋转角度比我作为参数输入的值小 90 度。

因此 setRotation(90) 不会进行任何更改,
setRotation(180) 进行一次顺时针更改,
setRotation(270) 旋转两圈(180 度旋转)。
等等..

这是我的代码:

import java.io.IOException;

import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;

public class rotateMyPDF {

public static void main(String[] args) throws IOException {

PdfReader in_pdf = new PdfReader("in.pdf");
PdfDocument pdfDoc = new PdfDocument(in_pdf, new PdfWriter("out.pdf"));

for (int i=1; i<=pdfDoc.getNumberOfPages(); i++) {
pdfDoc.getPage(i).setRotation(270); //error here?

}
pdfDoc.close();
System.out.println("done.");
}
}

看起来像是一个错误?或者我的代码有错误?或者这是预期的功能?
如果我输入 setRotation(0),PDF 页面将逆时针旋转 90 度!

最佳答案

您似乎误解了 setRotation 方法。它不会添加当前旋转,但设置旋转值。

因此,如果您的页面已经应用了页面旋转,则使用 setRotation 设置相同的值不会改变任何内容等。

您的源页面似乎已经旋转了 90°。这可以解释观察结果:

So setRotation(90) makes no changes, setRotation(180) does a single clockwise change, setRotation(270) does a double turn (180 degree rotation). etc..

只需首先使用 getRotation 读取当前旋转值,添加所需的额外旋转,然后使用 setRotation 设置该总和。

关于java - iText7 setRotation() 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57329058/

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