2015-12-17 53 views
1

你好,我需要旋轉pdf從水平到垂直的看法。我使用iText模板旋轉頁面90度。下面的代碼片段:在現有PDF文檔中頁面旋轉爲空時該怎麼辦?

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) { 

的decryptReader功能:

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); 
    } 
} 

如何解決在pageRotation空?

回答

1

這是iText Example for rotating PDF:(適用於您的變量名)

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)); 
} 

正如你可以看到,它的完全沒得到空作爲呼叫是簡單的結果,因爲在效果上是沒有旋轉該頁面(還)。如果有的輪換,那麼您會收到該輪換,並且會簡單地將90°添加到該旋轉中。

+0

是的 - 正如解釋說這是合法的,可以這麼做 – Jan

+1

謝謝你的回答,Jan,我不知道這個問題太微不足道了。我仍然試圖瞭解這裏提出的問題;-) –

+0

哇。我很榮幸。你在建立這個圖書館方面做了很棒的工作。 – Jan

相關問題