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
本文介绍了java.lang.NoClassDefFoundError的:java.awt.geom.Rectangle2D中$双,而试图PDF页面解析图像使用pdfrenderer的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想一个PDF文件页面转换成使用 pdfrenderer
的图像,但我得到的编译下面的错误。如何纠正呢?搜索结果
我的code
文件file =新的文件(image.png);
的System.out.println(内部readFromFiles !!!!!);
字符串FNAME =新的文件(getFilesDir()的Android 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的Android的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屋!
查看全文