at.gv.egiz.pdfas.impl.input
Class ByteArrayPdfDataSourceImpl

java.lang.Object
  extended byat.gv.egiz.pdfas.impl.input.ByteArrayPdfDataSourceImpl
All Implemented Interfaces:
DataSource, PdfDataSource

public class ByteArrayPdfDataSourceImpl
extends Object
implements PdfDataSource

Implements a PdfDataSource that holds the whole PDF document in a byte array.

Note that holding the data in a byte array is very memory consuming for large documents.

Author:
wprinz

Field Summary
protected  byte[] pdf
           
 
Constructor Summary
ByteArrayPdfDataSourceImpl(byte[] pdf)
           
ByteArrayPdfDataSourceImpl(byte[] pdf, int length)
           
 
Method Summary
 InputStream createInputStream()
          Creates a new InputStream that allows to read out the document's binary data from the beginning.
 byte[] getAsByteArray()
          Returns the data of this DataSource as a byte array.
 int getLength()
          Returns the length (number of bytes) of the stream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pdf

protected byte[] pdf
Constructor Detail

ByteArrayPdfDataSourceImpl

public ByteArrayPdfDataSourceImpl(byte[] pdf)

ByteArrayPdfDataSourceImpl

public ByteArrayPdfDataSourceImpl(byte[] pdf,
                                  int length)
Method Detail

createInputStream

public InputStream createInputStream()
Description copied from interface: DataSource
Creates a new InputStream that allows to read out the document's binary data from the beginning.

Specified by:
createInputStream in interface DataSource
Returns:
Returns the InputStream with the binary data.

getLength

public int getLength()
Description copied from interface: DataSource
Returns the length (number of bytes) of the stream.

Specified by:
getLength in interface DataSource
Returns:
Returns the length (number of bytes) of the stream.

getAsByteArray

public byte[] getAsByteArray()
Description copied from interface: DataSource
Returns the data of this DataSource as a byte array.

Calling this method indicates that you need a byte array for random read access. The DataSource implementation should of course cache this byte array to avoid too much memory usage.

Performance analysis has shown that the libraries internally convert the streams to byte arrays and that file system access is very slow.

Specified by:
getAsByteArray in interface DataSource
Returns:


Copyright © 2006-2010. All Rights Reserved.