iText7 setRotation() 无法正常工作
iText7 setRotation() not working properly
我正在制作一个 Java 小程序,它可以修改现有的 PDF,并使用 iTextPDF 7 将更改保存在新的 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 小程序,它可以修改现有的 PDF,并使用 iTextPDF 7 将更改保存在新的 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
.