日期:2014-05-19  浏览次数:21439 次

java 开发一个应用把PDF转图片,图片失真严重
java 开发一个应用把PDF转图片
我用了两种方法
一:pdfbox插件,但是
[code=Java][/code]BufferedImage pdfSinglePageImage = pdfSiglePage.convertToImage(); 
会报错,大概是因为字体原因,错误如下:
[code=Java][/code]Exception in thread "main" java.lang.ExceptionInInitializerError
at org.apache.pdfbox.pdmodel.font.PDType1Font.<init>(PDType1Font.java:181)
at org.apache.pdfbox.pdmodel.font.PDType1Font.<clinit>(PDType1Font.java:61)
at org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:108)
at org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:75)
at org.apache.pdfbox.pdmodel.PDResources.getFonts(PDResources.java:115)
at org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:243)
at org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:225)
at org.apache.pdfbox.pdfviewer.PageDrawer.drawPage(PageDrawer.java:107)
at org.apache.pdfbox.pdmodel.PDPage.convertToImage(PDPage.java:722)
at org.apache.pdfbox.pdmodel.PDPage.convertToImage(PDPage.java:693)
at PDFtest1.myPdfTest.main(myPdfTest.java:121)
Caused by: java.util.MissingResourceException: Glyphlist not found: org/apache/pdfbox/resources/glyphlist.txt
at org.apache.pdfbox.encoding.Encoding.loadGlyphList(Encoding.java:114)
at org.apache.pdfbox.encoding.Encoding.<clinit>(Encoding.java:73)
... 11 more
二:我用PDFRenderer 插件开发的,一部分PDF文件都能转,有一部分不能转,
但是转成功的图片失真很严重啊,我用的是PNG格式的,jpg失真更严重
我用acrobat的另存为功能时候,图片还是很清晰的。
请问大家有没有更好建议啊,保证图片清晰呢?
或者java条用acrobat的另存为功能,行不行?


------解决方案--------------------
失真很正常,JAVA不擅长干这些,受限太多。。。

只要不失身,就没问题
------解决方案--------------------
小菜鸟不懂,但是不失身真的不错