Skip to main content
Skip table of contents

How to convert PdfStamper to a byte array?

In my application, I need to read the existing PDF and add barcodes to this PDF and pass it to output stream. Here the existing pdf is like a template. I am using iText jar for adding barcode.

I want to know the possibilities of converting PdfStamper object to byte array or PdfContentByte to byte array. Can anyone help on this?

Posted on StackOverflow on Oct 27, 2014 by user1636102

I assume that you want to write to a ByteArrayOutputStream instead of to a FileOutputStream. There are different examples on how to do that on the iText web site. Note that there is no PdfStamper in iText 7, we simply use PdfDocument instance.

See for instance the FormServlet example where it says:

// We create an OutputStream for the new PDF
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        // Now we create the PDF
        PdfDocument pdfDoc = new PdfDocument(new PdfReader(is, null), new PdfWriter(baos));

Then later in the example, we do this:

// We write the PDF bytes to the OutputStream
        OutputStream os = response.getOutputStream();
        baos.writeTo(os);

If you want a byte[], you can simply do this:

byte[] pdfBytes = baos.toByteArray();

I hope your question wasn't about writing a PdfContentByte stream to a byte[] because that wouldn't make sense: a content stream doesn't contain any resources such as fonts, images, form XObjects, etc...

Click this link if you want to see how to answer this question in iText 5.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.