无法更改导出的图像DPI

时间:2013-09-28 11:54:23

标签: java bufferedimage

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

但是,导出的图像与之前完全相同,图像上的文字“模糊”

我的问题:我的课程有什么问题吗?我这样做是错误的吗?

相关参考:Set DPI Info in Image

该计划中使用的图书馆:PDFRenderer

用于测试质量的PDF示例:[PDF] PUBLIC DOCUMENTATION LICENSE Version 1.0

0 个答案:

没有答案