java.lang.NoClassDefFoundError的:java.awt.geom.Rectangle2D中$双,而试图PDF页面解析图像使用pdfrenderer [英] java.lang.NoClassDefFoundError: java.awt.geom.Rectangle2D$Double while trying to parse a pdf page to image using pdfrenderer

查看:340
本文介绍了java.lang.NoClassDefFoundError的:java.awt.geom.Rectangle2D中$双,而试图PDF页面解析图像使用pdfrenderer的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想一个PDF文件页面转换成使用 pdfrenderer 的图像,但我得到的编译下面的错误。如何纠正呢?搜索结果
 我的code

 文件fil​​e =新的文件(image.png);
        的System.out.println(内部readFromFiles !!!!!);
        字符串FNAME =新的文件(getFilesDir()的Andr​​oid Tutorial.pdf)
                .getAbsolutePath();
        FileChannel fChannel =新的FileInputStream(FNAME).getChannel();
        ByteBuffer的缓冲= fChannel.map(FileChannel.MapMode.READ_ONLY,0,
                fChannel.size());
        的System.out.println(缓冲+缓冲液);
        PDFFile pdfFile =新PDFFile(缓冲);
        PDFPage页= pdfFile.getPage(0);
        的System.out.println(页+页);
        矩形RECT =新的Rectangle((INT)page.getBBox()的getWidth()
                (INT)page.getBBox()的getHeight())。
        的System.out.println(矩形+ RECT);
        图片IMG = page.getImage(rect.width,rect.height,矩形,NULL);
        的System.out.println(img目录+ IMG);
        锐美的RenderedImage =(的RenderedImage)IMG;
        ImageIO.write(锐美,PNG,文件);
        的System.out.println(形象创造);

我得到的错误是:

 十月3日至22日:56:16.834:ERROR / AndroidRuntime(9572):致命异常:主要
    03-2210:56:16.834:ERROR/AndroidRuntime(9572):java.lang.NoClassDefFoundError:java.awt.geom.Rectangle2D$Float
    10月3日至22日:56:16.834:ERROR / AndroidRuntime(9572):在com.sun.pdfview.PDFFile.parseRect(PDFFile.java:1523)
    10月3日至22日:56:16.834:ERROR / AndroidRuntime(9572):在com.sun.pdfview.PDFFile.createPage(PDFFile.java:1419)
    10月3日至22日:56:16.834:ERROR / AndroidRuntime(9572):在com.sun.pdfview.PDFFile.getPage(PDFFile.java:1330)    10月3日至22日:56:16.834:ERROR / AndroidRuntime(9572):在com.sun.pdfview.PDFFile.getPage(PDFFile.java:1301)    10月3日至22日:56:16.834:ERROR / AndroidRuntime(9572):在com.example.PdfLibraryActivity.PdfLibraryActivity.readFromFiles(PdfLibraryActivity.java:137)    10月3日至22日:56:16.834:ERROR / AndroidRuntime(9572):在com.example.PdfLibraryActivity.PdfLibraryActivity.onCreate(PdfLibraryActivity.java:42)    10月3日至22日:56:16.834:ERROR / AndroidRuntime(9572):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)    10月3日至22日:56:16.834:ERROR / AndroidRuntime(9572):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)    10月3日至22日:56:16.834:ERROR / AndroidRuntime(9572):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)    10月3日至22日:56:16.834:ERROR / AndroidRuntime(9572):在android.app.ActivityThread.access $ 1500(ActivityThread.java:117)    10月3日至22日:56:16.834:ERROR / AndroidRuntime(9572):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:931)


解决方案

  java.awt.geom.Rectangle2D中$浮动

的Java AWT不是由Android支持。您必须使用Android相关的类对您$ C $的变化C.因此它。

您可以使用该 AWT的Andr​​oid的COMPAT 。它方便了Android平台上的AWT渲染。

I'm trying to convert a pdf file page into an image using pdfrenderer ,But I'm getting the below error on compilation. 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. You have to use Android related class and make changes on your code accordingly to it.

You can use awt-android-compat for that. It facilitate AWT rendering on the Android platform.

这篇关于java.lang.NoClassDefFoundError的:java.awt.geom.Rectangle2D中$双,而试图PDF页面解析图像使用pdfrenderer的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆