2011-01-05 2 views
3

Привет, я создал файл PDF с изображением в нем, я хочу напечатать мой PDF после создания. Лучше, если у меня есть PDF в памяти вместо файла, а затем отправить его на принтер ... Любая идея?Как распечатать PDF-файл, созданный с помощью iText?

Я использую 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; 
    } 

Заранее благодарен!

+0

Работает ли это на Windows или на другой платформе? –

ответ

1

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

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

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

+0

Спасибо, Марк, я так устал на работе, что, наконец, я смог решить эту проблему ... PS: Я не эксперт с помощью этого редактора! Прости! – MadMad666

Смежные вопросы