使用 java 将 PDF 转为图片
Pdf to image using java
你好程序员朋友们。我是 java 的新手,我需要从 pdf 的特定部分创建图像。
目前,我正在使用 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 做到这一点,或者是否有其他图书馆可以做到这一点?我尝试搜索但找不到解决方案。
谢谢。
这是解决方案:感谢 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());
}
}
你好程序员朋友们。我是 java 的新手,我需要从 pdf 的特定部分创建图像。
目前,我正在使用 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 做到这一点,或者是否有其他图书馆可以做到这一点?我尝试搜索但找不到解决方案。
谢谢。
这是解决方案:感谢 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());
}
}