我目前正在开展一个将 PDF 导出为一系列高质量图像的项目。到目前为止,我可以导出图像,但我得到的质量不是很好。我已经阅读了类似问题的解决方案并自己尝试过,但它不起作用
这是我的代码,我已经包含了将 PDF 导出为图像所需的代码,以防您可能想测试/找出我在编码中的错误
//Load pdf from path(file)
File file = new File("C:\\TEMP\\office\\a.pdf");
RandomAccessFile raf = new RandomAccessFile(file, "r");
byte[] b = new byte[(int) raf.length()];
raf.readFully(b);
ByteBuffer buf = ByteBuffer.wrap(b);
PDFFile pdffile = new PDFFile(buf);
//Get number of pages
int numOfPages = pdffile.getNumPages();
// Only in this case, I have "hardcoded" 4 in get page just because I wanted a 1-page sample
PDFPage page = pdffile.getPage(4);
//Create new image, according to the rectangle area
Rectangle rect = new Rectangle((int)page.getPageBox().getX(), (int)page.getPageBox().getY(), (int) page.getBBox().getWidth(), (int) page.getBBox().getHeight());
Image img = page.getImage(rect.width, rect.height, rect, null, true, true);
BufferedImage bufferedImage = new BufferedImage(rect.width, rect.height, BufferedImage.TYPE_INT_RGB);
Graphics g = bufferedImage.createGraphics();
g.drawImage(img, 0, 0, null);
g.dispose();
File asd = new File("C:\\TEMP\\office\\img\\Testingx" + 4 + ".png");
//This is the method provided by answer in the reference link,
saveGridImage(asd, bufferedImage);
//The method header of saveGridImage is modified to saveGridImage(File output,BufferedImage gridImage)
但是,导出的图像与以前一样,图像上的文字“模糊”
我的问题:我的程序有问题吗?我做错了吗?
相关参考:在图像中设置 DPI 信息
程序中使用的库:PDFRenderer
用于测试质量的示例 PDF:[PDF] PUBLIC DOCUMENTATION LICENSE 版本 1.0