有人可以给我一个例子,说明如何使用Apache PDFBox在不同的图像中转换pdf(pdf的每一页一个).提前致谢
Til*_*err 97
1.8.*版本的解决方案:
PDDocument document = PDDocument.loadNonSeq(new File(pdfFilename), null);
List<PDPage> pdPages = document.getDocumentCatalog().getAllPages();
int page = 0;
for (PDPage pdPage : pdPages)
{
++page;
BufferedImage bim = pdPage.convertToImage(BufferedImage.TYPE_INT_RGB, 300);
ImageIOUtil.writeImage(bim, pdfFilename + "-" + page + ".png", 300);
}
document.close();
Run Code Online (Sandbox Code Playgroud)
在构建之前,不要忘记阅读1.8依赖关系页面.
2.0版本的解决方案:
PDDocument document = PDDocument.load(new File(pdfFilename));
PDFRenderer pdfRenderer = new PDFRenderer(document);
for (int page = 0; page < document.getNumberOfPages(); ++page)
{
BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB);
// suffix in filename will be used as the file format
ImageIOUtil.writeImage(bim, pdfFilename + "-" + (page+1) + ".png", 300);
}
document.close();
Run Code Online (Sandbox Code Playgroud)
ImageIOUtil类位于单独的下载/工件(pdf-tools)中.在进行构建之前,请阅读2.0依赖关系页面,您将需要额外的带有jbig2图像的PDF文件,用于保存到tiff图像以及读取加密文件.
确保使用您正在使用的任何JDK版本的最新版本,即如果您使用的是jdk8,则不要使用版本1.8.0_5,请使用1.8.0_191或您阅读时的最新版本.早期版本非常慢.
chr*_*s01 14
我今天用 PdfBox 2.0.15 试过了。
import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.rendering.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
public static void PDFtoJPG (String in, String out) throws Exception
{
PDDocument pd = PDDocument.load (new File (in));
PDFRenderer pr = new PDFRenderer (pd);
BufferedImage bi = pr.renderImageWithDPI (0, 300);
ImageIO.write (bi, "JPEG", new File (out));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51497 次 |
| 最近记录: |