我正在做一个小的Java程序,可以修改现有的PDF,并将更改保存在新的PDF,使用iTextPDF 7.我开始用一个旋转的功能,使用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.");
}
}
好像是个bug?还是我的代码有错误?或者这是预期的功能?
如果我把setRotation(0)
,PDF 页面逆时针旋转 90 度!
您似乎误解了该setRotation
方法。它不会添加到当前旋转中,但会设置旋转值。
因此,如果您的页面已经应用了页面旋转,则设置相同的值setRotation
不会改变任何内容等。
您的源页面似乎已经旋转了 90°。这将解释观察:
所以
setRotation(90)
不做任何改变,setRotation(180)
做一个顺时针改变,setRotation(270)
做一个双转(180 度旋转)。等等..
只需首先使用 读取当前旋转值getRotation
,添加所需的额外旋转,然后使用 设置该总和setRotation
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句