0

我目前正在开展一个将 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

4

0 回答 0