Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » iText »

[iText-questions] concatenating pdf documents

Peter Gershkovich

2007-07-06


What is the best way to concatenate several pdf files into one
document considering that I am getting pdf documents from a database:
Blob report = resultSet2.getBlob( "PdfDocument" );

Then I get binary stream and read it to an output. Below are the
details. I read in the book how one could combine a document using
PdfCopy. Can PdfCopy accept some kind of binary stream?

Below are details of my code. Appreciate your help.
Peter

try
          {

             String[] reportIdArray = reportId.split( "," );

             //get collection of report ids

             InputStream input = null;

             // PdfCopy copy = new PdfCopy( document, output );

             ByteArrayOutputStream byteArrayOutputStream = null;

             for ( String reportPointer : reportIdArray )
             {

                String[] pointerArray = reportPointer.split
( ":" );

                String sqlSelect2 = "select PdfDocument from
" + pointerArray[0] + " where id = ?";

                PreparedStatement prepStatement2 =
conn.prepareStatement( sqlSelect2 );

                prepStatement2.setString( 1, pointerArray[1] );

                ResultSet resultSet2 =
prepStatement2.executeQuery();

                if ( resultSet2.next() )
                {

                  Blob report = resultSet2.getBlob
( "PdfDocument" );
                  // setup the streams

                  input = report.getBinaryStream(); //get
input from blob

                  ByteArrayOutputStream output = new
ByteArrayOutputStream();

                  byte[] rb = new byte[1024];

                  int ch = 0;

                  // get content of a document
                  while ( ( ch = input.read( rb ) ) != -1 )
                  {
                     output.write( rb, 0, ch );
                  }

                  byte[] buf = output.toByteArray();

                  byteArrayOutputStream = new
ByteArrayOutputStream();

                  byteArrayOutputStream.write( buf );

                  input.close();

                  output.close();


                }

                resultSet2.close();


             }

             response.setContentType( "application/pdf" );

             ServletOutputStream out =
response.getOutputStream();

             byteArrayOutputStream.writeTo( out );

             out.flush();



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
iText-questions mailing list
iText-questions@(protected)
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/
©2008 junlu.com - Jax Systems, LLC, U.S.A.