美好的一天同事程序员。我是java的新手,我需要从pdf的特定部分创建一个Image。
目前,我正在使用pdfbox。
这是我从pdf创建图像的代码(它正在工作,但它会创建整个pdf页面的图像):
PDDocument document = PDDocument.load(new File(PDFFILE));
PDFRenderer pdfRenderer = new PDFRenderer(document);
for (int page = 0; page < document.getNumberOfPages(); ++page)
{
BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB);
ImageIOUtil.writeImage(bim, path + "-" + (page+1) + ".png", 300);
}
document.close();
问题:
我需要根据特定位置(如矩形)的pdf创建图像。
有没有办法使用pdfbox执行此操作,还是有其他库可以执行此操作?我尝试过搜索,但无法找到解决办法 谢谢。
答案 0 :(得分:3)
这是解决方案:感谢mkl的想法
private void PdfToImage(String PDFFILE){
try{
PDDocument document = PDDocument.load(new File(PDFFILE));
PDPage pd;
PDFRenderer pdfRenderer = new PDFRenderer(document);
for (int page = 0; page < document.getNumberOfPages(); ++page)
{
pd = document.getPage(page);
pd.setCropBox(new PDRectangle(100, 100,100,100));
BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB);
ImageIOUtil.writeImage(bim, outputpath + (page+1) + ".png", 300);
}
document.close();
}catch (Exception ex){
JOptionPane.showMessageDialog(null, ex.getStackTrace());
}
}