Как распечатать PDF, созданный с помощью iText? - PullRequest
3 голосов
/ 06 января 2011

Привет! Я создал файл 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;
    }

Заранее спасибо!

1 Ответ

1 голос
/ 07 января 2011

Вы всегда можете использовать ByteArrayOutputStream вместо FileOutputStream.

После того, как у вас есть PDF-байты, это обычный вопрос «как печатать на Java».Многие принтеры (или, по крайней мере, их драйверы) будут принимать PDF напрямую в эти дни, поэтому в этот момент можно утверждать, что вы закончили.

PS: Как только я отметил ваш вопрос «Java», он раскрасил ваш кодиспользуя «импорт» в качестве ключевого слова и так далее.Что-то, о чем нужно помнить в будущем.

...