2015-11-05 58 views
0

我是新來的java和我想讓PDFBOX旋轉PDF文件..我似乎無法得到錯誤的權利..我知道它一定是簡單的但它說The operator < is undefined for the argument type(s) int, Dimension上這條線:與pdfbox的旋轉

for (int i = 0; i < pages.size(); i++) {

它通過撞擊尺寸..

我的代碼:

import java.awt.List; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 

import org.apache.pdfbox.cos.COSDocument; 
import org.apache.pdfbox.pdfparser.PDFParser; 
import org.apache.pdfbox.pdmodel.PDDocument; 
import org.apache.pdfbox.pdmodel.PDPage; 


public class PdfRotator { 


private static final String pdfFile = null; 

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

PDDocument document = PDDocument.load("PDFrotatorTEST.pdf"); 



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

List pages = (List) document.getDocumentCatalog().getAllPages(); 

for (int i = 0; i < pages.size(); i++) { 
    PDPage page = (PDPage) ((java.util.List) pages).get(i);// PDPage page = (PDPage) pages.get(i); 
    if ((i + 1) % 2 == 0) { 
     page.setRotation(0); 
    } 
} 

File f = new File(pdfFile);// File f = new File(pdfFile); 
String newFile = f.getParent() + File.separator + "out.pdf"; 
document.save(newFile); 
document.close(); 
} 
} 

任何幫助將不勝感激

+0

它運行時不編譯,編譯但拋出異常,還有其他的東西嗎?請詳細說明,包括實際的編譯錯誤(如果這是問題),堆棧跟蹤(如果它引發異常),實際的錯誤輸出(如果它運行但打印錯誤)。另外,更好地對代碼進行格式化,看起來你已經在頁面聲明之後的所有內容中放入了不必要的代碼塊,但是由於格式化,很難說清楚。 – blm

+0

缺少「main」的行,即public static void main(String [] args)拋出IOException,應該在pdfFile的行下。 –

+0

Doh!當我從另一臺計算機上覆制它時,肯定發生了這種情況。它仍然有錯誤,並且會觸發** size **。 – javajoejuan

回答

2

您導入類List作爲

import java.awt.List; 

但是,這是不是你想要的List。相反,你要

import java.util.List; 

由於OP是對Java,一些背景:

有幾類叫做List Java API中,甚至更多的第三方API。因此,在導入List class時,必須確保導入正確的一個。

特別有:

  • java.awt.List,一個組件顯示的文本項抽象窗口工具包,最古老的Java GUI API滾動列表中的用戶;和
  • java.util.List的訂購集合(也稱爲'序列')的接口來自Java集合框架

在你的代碼正在處理的document.getDocumentCatalog().getAllPages()結果返回PDPage實例在java.util.List對象的列表。


該錯誤消息操作<是未定義的參數類型(一個或多個)INT,尺寸是由於這樣的事實:java.awt.List(如java.util.List)有一個方法size()但此方法返回一個java.awt.Dimension(一類封裝組件的寬度和高度)而不是int

因此,i < pages.size()試圖比較不是天然可比較的實體。

+0

感謝您的幫助和解釋! – javajoejuan