java - 如何打印使用 iText 创建的 PDF?

标签 java printing pdf-generation itext

您好,我已经创建了一个包含图像的 PDF 文件,我想在创建后打印我的 pdf。如果我在内存中有 PDF 而不是文件,然后将它发送到打印机,那就更好了……有什么想法吗?

我正在使用 iText。检查我的代码:

    import com.lowagie.text.Document;
    import com.lowagie.text.DocumentException;
    import com.lowagie.text.Image;
    import com.lowagie.text.PageSize;
    import com.lowagie.text.Rectangle;
    import com.lowagie.text.pdf.PdfContentByte;
    import com.lowagie.text.pdf.PdfPrinterGraphics2D;
    import com.lowagie.text.pdf.PdfTemplate;
    import com.lowagie.text.pdf.PdfWriter;

    import javax.imageio.ImageIO;

    import java.awt.Color;
    import java.awt.Graphics2D;
    import java.awt.Toolkit;
    import java.awt.image.BufferedImage;
    import java.io.ByteArrayInputStream;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;


        private boolean exportToPdfThroughPNG(String fileName, float width, float height) throws DocumentException, IOException {
        logger.debug("[boolean exportToPdfQuick() throws IOException, DocumentException]");

        BufferedImage pngFile = createPngFile();

        Document document = new Document();
        document.setPageSize(new Rectangle(width, height));
        PdfWriter.getInstance(document, new FileOutputStream(fileName));
        document.open();
        Image image = Image.getInstance(Toolkit.getDefaultToolkit().createImage(pngFile.getSource()), Color.WHITE);
        document.add(image);
        // If some day anyone wants to put text in the pdf. @Eduardo
        // document.add(new Paragraph("title of the process"));
        document.close();

        return true;
    }

提前致谢!

最佳答案

您始终可以使用 ByteArrayOutputStream 而不是 FileOutputStream。

获得 PDF 字节后,这是一个正常的“如何在 Java 中打印”问题。如今,许多打印机(或至少是它们的驱动程序)将直接使用 PDF,因此到那时可能有人会说您已经完成了。

PS:一旦我将您的问题标记为“Java”,它就会使用“import”作为关键字等为您的代码块着色。将来要记住的事情。

关于java - 如何打印使用 iText 创建的 PDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4609667/

相关文章:

javascript - PDFKit:PNG 的未知图像格式错误

java - Selenium 无法通过 id 找到元素

java - 在Java中不使用数组按长度排序字符串

java - iText 7 : This pdf document might not be displayed correctly Firefox

c - 在 C 中用 GtkTreeView 打印窗口?

javascript - window.print() 就像它会打印但什么都不做

javascript - jsPDF:使用自定义字体对齐文本

java - 有没有办法使用 selenium 和 java 从控制台设置启用保留日志来午餐 ChromeDriver?

java - 与 Kafka 消费者匹配的扩展模式

java - Java 中的逐行打印