I was able to create and place a barcode on a PDF created with Acrobat 6.
However, when I run the same code with a PDF created by Acrobat 4.0, I
receive the following error when attempting to close the PdfStamper:
'java.lang.ArrayIndexOutOfBoundsException: 6'  

Any ideas would be greatly appreciated.

Thanks
Noah

A simplified version of the code I am attempting to run:

/*
 * Barcode.java
 *
 * Created on January 21, 2004, 11:37 AM
 */

import java.util.*;
import java.sql.*;
import java.io.*;

import com.lowagie.text.*;
import com.lowagie.text.pdf.*;

public class Barcode {

    public static void main(String args[]) {
            

    try {
        byte[] pdfBytesOut = null;
        PdfReader reader = null;
        ByteArrayOutputStream pdfOutput  = null;
        PdfStamper stamper = null;
        
        System.out.println("Start");

        String filename = "c:\\temp\\Blank_v4.pdf";   // a PDF made via
Acrobat 4.0
//        String filename = "c:\\temp\\Blank_v6.pdf";   // a PDF made via
Acrobat 6
        
        FileInputStream inStream = new FileInputStream( filename );
        int byteCount = inStream.available();
        byte[] pdfBytes = new byte[byteCount];
        inStream.read(pdfBytes, 0, byteCount);
                
        // read the PDF into an object
        reader = new PdfReader( pdfBytes );
                    
        // make the output object
        pdfOutput = new ByteArrayOutputStream();
                
        stamper = new PdfStamper(reader, pdfOutput);       

        // add any barcodes to the PDF
        try {

            PdfContentByte cb = stamper.getOverContent(1);

            BarcodeEAN codeEAN = new BarcodeEAN();
            codeEAN.setCodeType(codeEAN.EAN13);
            codeEAN.setCode("9780201615883");

            PdfTemplate barCodeTemplate =
codeEAN.createTemplateWithBarcode(cb, null, null);
                
            cb.addTemplate(barCodeTemplate, barCodeTemplate.getWidth() *
0.02f, 0, 0, barCodeTemplate.getHeight() * 0.03f, 20f, 200f );
        }
        catch( Exception e ){
            System.out.println( "Unable to add barcodes to PDF: " +
e.toString() );
        }

        // close the stamper object
        try{
            /******* THIS LINE FAILS *******/
            stamper.close();     
        }
        catch( Exception e ){
            System.out.println( "Unable to close the PdfStamper: " +
e.toString() );
        }
        
        System.out.println("End");
        
        }
        catch( Exception e ) {
            System.out.println( "Error: " + e.toString() );
        }
    }
}


Attachment: Blank_v4.pdf
Description: Adobe PDF document

Attachment: Blank_v6.pdf
Description: Adobe PDF document

Reply via email to