Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当现有PDF文档中的页面旋转为空时,该怎么办?_Java_Pdf_Itext - Fatal编程技术网

Java 当现有PDF文档中的页面旋转为空时,该怎么办?

Java 当现有PDF文档中的页面旋转为空时,该怎么办?,java,pdf,itext,Java,Pdf,Itext,您好,我需要将pdf从水平视图旋转到垂直视图。我使用iText模板将页面旋转90度。下面是代码片段: PdfReader reader = new PdfReader(pdfContent); decryptReader(reader); int n = reader.getNumberOfPages(); PdfImportedPage page; for (int i = 1; i <= n; i++) {

您好,我需要将pdf从水平视图旋转到垂直视图。我使用iText模板将页面旋转90度。下面是代码片段:

PdfReader reader = new PdfReader(pdfContent);
        decryptReader(reader);
        int n = reader.getNumberOfPages();
        PdfImportedPage page;
        for (int i = 1; i <= n; i++) {
            PdfDictionary pageDict = reader.getPageN(i);
            PdfNumber pageRotation = pageDict.getAsNumber(PdfName.ROTATE); //this part always gets me null so it doesn't pass the if requirement.
            page = writer.getImportedPage(reader, i);
            Image image = Image.getInstance(page);
            if(pageRotation != null) {
如何修复pageRotation中的空值?

这是来自(适用于变量名)


正如您所看到的,由于调用而得到null是完全可以的,这仅仅是因为在该页面上没有有效的旋转(还没有)。如果有旋转,你会得到旋转,只需再加上90°。

是的-正如所解释的那样,这样做是合法的,没有问题的。谢谢你的回答,简,我不知道这个问题如此微不足道。我仍在努力理解这里的问题;-)哇!我很荣幸。你建这个图书馆做得很好。
 private void decryptReader(PdfReader reader) {
    try{
       Field f = reader.getClass().getDeclaredField("encrypted");
       f.setAccessible(true);
       f.set(reader, false);
    }catch(Exception e){
       LOG.error("Error descrypting pdf document", e);
    }
}
PdfNumber pageRotation = pageDict.getAsNumber(PdfName.ROTATE);
if (pageRotation == null) {
    pageDict.put(PdfName.ROTATE, new PdfNumber(90));
}
else {
    pageDict.put(PdfName.ROTATE, new PdfNumber((pageRotation .intValue() + 90) % 360));
}