【问题标题】:java.lang.NoClassDefFoundError: java.awt.geom.Rectangle2D$Double while trying to parse a pdf page to image using pdfrendererjava.lang.NoClassDefFoundError: java.awt.geom.Rectangle2D$Double 尝试使用 pdfrenderer 将 pdf 页面解析为图像
【发布时间】:2012-03-22 17:17:07
【问题描述】:

我正在尝试使用 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)

【问题讨论】:

标签: java android


【解决方案1】:
java.awt.geom.Rectangle2D$Float

Android 不支持 Java awt。您必须使用 Android 相关类并相应地对您的代码进行更改。

您可以为此使用awt-android-compat。它有助于在 Android 平台上进行 AWT 渲染。

【讨论】:

    猜你喜欢
    • 2012-10-06
    • 2015-12-28
    • 2017-04-18
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 2015-09-18
    相关资源
    最近更新 更多