2012-03-22 51 views
0

我試圖使用pdfrenderer將PDF文件頁面轉換爲圖像,但是我得到編譯時出現以下錯誤。如何糾正這一點?

我的代碼

File file = new File("image.png"); 
     System.out.println("Inside readFromFiles!!!!!"); 
     String fname = new File(getFilesDir(), "Android Tutorial.pdf") 
       .getAbsolutePath(); 
     FileChannel fChannel = new FileInputStream(fname).getChannel(); 
     ByteBuffer buffer = fChannel.map(FileChannel.MapMode.READ_ONLY, 0, 
       fChannel.size()); 
     System.out.println("Buffer" + buffer); 
     PDFFile pdfFile = new PDFFile(buffer); 
     PDFPage page = pdfFile.getPage(0); 
     System.out.println("page" + page); 
     Rectangle rect = new Rectangle((int) page.getBBox().getWidth(), 
       (int) page.getBBox().getHeight()); 
     System.out.println("Rect" + rect); 
     Image img = page.getImage(rect.width, rect.height, rect, null); 
     System.out.println("img" + img); 
     RenderedImage rImage = (RenderedImage) img; 
     ImageIO.write(rImage, "png", file); 
     System.out.println("Image Created"); 

我得到的錯誤是:

03-22 10:56:16.834: ERROR/AndroidRuntime(9572): FATAL EXCEPTION: main 
    03-2210:56:16.834:ERROR/AndroidRuntime(9572):java.lang.NoClassDefFoundError:java.awt.geom.Rectangle2D$Float 
    03-22 10:56:16.834: ERROR/AndroidRuntime(9572):  at com.sun.pdfview.PDFFile.parseRect(PDFFile.java:1523) 
    03-22 10:56:16.834: ERROR/AndroidRuntime(9572):  at com.sun.pdfview.PDFFile.createPage(PDFFile.java:1419) 
    03-22 10:56:16.834: ERROR/AndroidRuntime(9572):  at com.sun.pdfview.PDFFile.getPage(PDFFile.java:1330) 

    03-22 10:56:16.834: ERROR/AndroidRuntime(9572):  at com.sun.pdfview.PDFFile.getPage(PDFFile.java:1301) 

    03-22 10:56:16.834: ERROR/AndroidRuntime(9572):  at com.example.PdfLibraryActivity.PdfLibraryActivity.readFromFiles(PdfLibraryActivity.java:137) 

    03-22 10:56:16.834: ERROR/AndroidRuntime(9572):  at com.example.PdfLibraryActivity.PdfLibraryActivity.onCreate(PdfLibraryActivity.java:42) 

    03-22 10:56:16.834: ERROR/AndroidRuntime(9572):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 

    03-22 10:56:16.834: ERROR/AndroidRuntime(9572):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 

    03-22 10:56:16.834: ERROR/AndroidRuntime(9572):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 

    03-22 10:56:16.834: ERROR/AndroidRuntime(9572):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 

    03-22 10:56:16.834: ERROR/AndroidRuntime(9572):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
+1

http://stackoverflow.com/questions/3897775/using-awt-with-android – 2012-03-22 05:40:02

回答

4
java.awt.geom.Rectangle2D$Float 

的Java AWT是不是由Android支持。您必須使用Android相關類,並相應地對您的代碼進行更改。

您可以使用awt-android-compat。它有助於在Android平臺上進行AWT渲染。

+0

你得到你想要什麼? – user370305 2012-03-22 10:08:31