JavaFX如何在将PDF转换为图像时不会丢失图像质量

时间:2018-04-13 15:48:12

标签: image javafx printing

我在这里找到了一个很好的答案,用JavaFX打印非节点对象:
JavaFX printing non node objects

我将报告代码(我使用了这个代码):

PrinterJob job = PrinterJob.createPrinterJob();
PDFFile pdfFile = ... ;
if (job != null) {
    boolean success = true ;
    for (int pageNumber = 1; pageNumber <= pdfFile.getNumPages() ; pageNumber++) {
        PDFPage page = pdfFile.getPage(pageNumber, true);
        Rectangle2D bounds = page.getBBox();
        int width = (int) bounds.getWidth();
        int height = (int) bounds.getHeight();
        java.awt.Image img = page.getImage(width, height, bounds, null, true, true);
        BufferedImage bImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        bImg.createGraphics().drawImage(img, 0, 0, null);
        javafx.scene.image.Image fxImg = SwingFXUtils.toFXImage(bImg, null);
        ImageView imageView = new ImageView(fxImg);
        success = success & job.printPage(imageView);
    }

    if (success) {
        job.endJob();
    }
}

我现在的问题是图像质量。前提是我不需要最好的图像质量,但我们需要的只是一个可读的&#34;内容。 我试图加倍java.awt.Image的宽度和高度,然后重新调整bufferedImage,但没有任何反应。

有可能改善&#34;只是一点点&#34;打印的图像? 我找到了ghost4j,但我不想因为这个原因让项目太重。

提前致谢

0 个答案:

没有答案