简体   繁体   English

java.lang.NoClassDefFoundError:java.awt.geom.Rectangle2D $ Double尝试使用pdfrenderer将pdf页面解析为图像

[英]java.lang.NoClassDefFoundError: java.awt.geom.Rectangle2D$Double while trying to parse a pdf page to image using pdfrenderer

I'm trying to convert a pdf file page into an image using pdfrenderer ,But I'm getting the below error on compilation. 我正在尝试使用pdfrenderer将pdf文件页面转换为图像,但是在编译时出现以下错误。 How to rectify this? 如何纠正呢?

my code 我的代码

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

The errors I get are: 我得到的错误是:

    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)
java.awt.geom.Rectangle2D$Float

Java awt is not supported by Android. Android不支持Java awt。 You have to use Android related class and make changes on your code accordingly to it. 您必须使用与Android相关的类,并相应地对代码进行更改。

You can use awt-android-compat for that. 您可以为此使用awt-android-compat It facilitate AWT rendering on the Android platform. 它有助于在Android平台上进行AWT渲染。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM