我目前正在开发一个将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)
但是,导出的图像与之前完全相同,图像上的文字“模糊”
我的问题:我的课程有什么问题吗?我这样做是错误的吗?
该计划中使用的图书馆:PDFRenderer
用于测试质量的PDF示例:[PDF] PUBLIC DOCUMENTATION LICENSE Version 1.0