之前都是使用PDFBOX0.8版本来实现PDF转为Image,0.8版本的PDFBox转为Image还有N多问题,比如部分扫描PDF无法转换、缺少字体等等问题。而且我们是修改PDFBox源代码来解决上述问题,但是还是不能解决全部问题。
JPedal是一个商业的处理PDF软件,但是JPedal有一个裁切版,裁切版JPedal使用LGPL协议进行开源,可免费使用。如下摘抄官方说明:
JPedal is a commercial PDF library, so it is not free (and it cannot realistically be because no income means no money to fund development and support). OEM customers also get access to the source code so they have free access to the product in the sense they are not limited – they can alter it if they want. Commercial users get free support in the sense we charge everyone a yearly fee to cover general support costs.
We also have a cutdown version of the PDF viewer which we release under an LGPL license. This means that you can access the source code and the jar and use them without any payment. You just have to abide by the LGPL license. In this sense it is totally free.
We build it from the full version and remove items (so it gets most bug fixes and some features). So it is free in that sense. Our hope is that it will encourage lots of people to use it, to do interesting things with it and some may become commercial clients. And we like to have a free entry-level version – it appeals to the rebel in our nature
And being a cut-down version of a commercial product means you are likely to see updates – there are several ‘dead’ free Java PDF libraries because they do not generate any revenues to put back into development and support.
选择使用JPedal替换Pdfbox出于如下方面考虑:
第一:解决扫描类PDF、缺少字体问题,不用修改源代码,解决软件后续维护升级问题。
第二:转换效率高。一个70页PDF,使用PDFBox转换时间为27秒左右,而且使用JPedal的转换时间才16秒,大大地缩短转换时间。
第三:由于只需要把PDFBox转换为Image,暂无其他需求,故裁切版JPedal已可满足需求。
下面使用JPedal 转换为图片的代码:
/** instance of PdfDecoder to convert PDF into image */
PdfDecoder decode_pdf = new PdfDecoder(true);
/** set mappings for non-embedded fonts to use */
PdfDecoder.setFontReplacements(decode_pdf);
/** open the PDF file - can also be a URL or a byte array */
decode_pdf.openPdfFileFromInputStream(in, false);
// decode_pdf.openPdfFile("C:/myPDF.pdf", "password"); //encrypted
// file
// decode_pdf.openPdfArray(bytes); //bytes is byte[] array with PDF
// decode_pdf.openPdfFileFromURL("http://www.mysite.com/myPDF.pdf",false);
/** get page 1 as an image */
// page range if you want to extract all pages with a loop
// int start = 1, end = decode_pdf.getPageCount();
int pageCount = decode_pdf.getPageCount();
if (curPage > pageCount || curPage <= 0)
curPage = pageCount;
BufferedImage img = null;
img = decode_pdf.getPageAsImage(curPage );
pageCnt=String.valueOf(pageCount);
FileOutputStream out;
out = new FileOutputStream(file);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(img);
out.close();
分享到:
相关推荐
这里提到的"icepdf、pdfbox、jpedal_lgpl"都是Java平台上的开源库,专门用于处理PDF文档。 1. **icepdf**: Icepdf是一款轻量级的Java PDF阅读器和渲染引擎,由Objectplanet公司开发并维护。它提供了PDF文档的查看...
0.使用了 jpedal、pdfbox、PDFRenderer、icepdf,前3个包和代码都有,最后个只有包 1.pdf转图片常用的四种方式,包和代码全有(icepdf只有包),注释也很清晰, 2.是做个老项目时找来的,要对jdk1.5用,所以基本下载...
在压缩包中,`jpedal.jar` 是jpedal的核心库文件,包含了所有必要的类和资源,可以将其添加到Java项目的类路径中,以便使用jpedal的功能。使用时,开发者通常会通过创建`JPedalViewer`对象来打开和显示PDF文档,或者...
描述中提到的“包含所有jpedal依赖”,意味着这个压缩包提供了运行或开发使用JPedal库所需的所有外部库和资源。 标签“java pdf”指出了此软件包与Java编程语言和PDF(Portable Document Format)格式的关联。在...
使用`jpedal_lgpl`进行转换需要编程技能,主要是Java。以下是一段简化的示例代码,展示如何将PDF转换为JPG: ```java import org.jpedal.JPedal; import org.jpedal.objects.PDFFile; // 加载PDF文件 PDFFile pdf...
JPedal完美破解和利用Jpedal进行PDF图片转换实例。
JPedal LGPL 4.92b23是这个库的一个版本,遵循GNU Lesser General Public License (LGPL)协议,允许开发者在开源或商业项目中使用该库。这个版本的JPedal提供了对PDF文件的深度解析能力,支持多种图像格式输出,包括...
JPedal是一款强大的PDF解析器,它允许开发者在Java应用程序中处理PDF文档,包括阅读、渲染、转换和提取PDF内容。这个"JPedal Source源码Eclipse项目"提供了JPedal库的完整源代码,使得开发人员可以深入理解其内部...
jpedal-lgpl-4.74b27.jar
JPedal是一个收费的PDF处理类,在官网下载的只能试用30天,非常讨厌,本花了点心血破解了,赚点资源分
jpedal 纯java 对pdf进行操作
该依赖包包含icepdf-core.jar、jpedal_lgpl.jar、pdfbox-1.7.1.jar、poi-2.5.1-final-20040804.jar、poi-2.5.1-final-20040804.jar、xfire-core-1.2.6.jar包。
jpedal_lgpl.jar
应用JPedal系统库实现将PDF文档转换为图片程序,其中的jpedal-server.jar为JPedal系统库文件,加入到系统的编译环境中,PDFPagesToHiResImages.java为代码示例,TestPDFPagesToHiResImages.java为测试的程序代码,...
LGPL版本不是破解版本,也不是试用版本不必考虑30天试用问题,开源免费版本,使用稳定,乱码问题解决。
以上就是使用icepdf、pdfbox和jpedal_lgpl这三种Java库将PDF转换为图像的基本方法。每个库都有其特点,选择哪一种取决于具体的需求,例如性能、易用性、功能需求以及许可限制。在实际项目中,开发者可以根据实际情况...
1. `gpl.txt`:通常包含开源软件的GPL(GNU General Public License)许可协议,这可能表明JPedal遵循此开源许可,允许用户自由使用、修改和分发源代码。 2. `readmeBeforeCompiling.txt`:这份文档可能包含了编译...
本文将详细介绍三种常用的Java库——icepdf、pdfbox和jpedal,来实现这一功能。 首先,我们来看icepdf库。icepdf提供了一个开源版和一个收费版,它具有较好的转换效果,能正确显示中文字符,尽管有时可能会因为字体...
例如,一个软件可能会先使用JPedal解析PDF文档,提取其中的图像,然后利用JAI进行图像的进一步处理,如调整大小、改变格式等。这种组合可以提供一个强大而全面的图像和PDF处理解决方案。由于它们都是基于Java的,...