/** * */ package at.gv.egiz.pdfas.impl.input; import java.io.ByteArrayInputStream; import java.io.InputStream; import at.gv.egiz.pdfas.performance.PerformanceCounters; import at.gv.egiz.pdfas.framework.input.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 */ public class ByteArrayPdfDataSourceImpl implements PdfDataSource { protected byte[] pdf = null; protected int length = -1; public ByteArrayPdfDataSourceImpl(byte[] pdf) { PerformanceCounters.byteArrays.increment(); this.pdf = pdf; this.length = pdf.length; } public ByteArrayPdfDataSourceImpl(byte[] pdf, int length) { PerformanceCounters.byteArrays.increment(); this.pdf = pdf; this.length = length; } public InputStream createInputStream() { ByteArrayInputStream bais = new ByteArrayInputStream(this.pdf, 0, this.length); return bais; } public int getLength() { return this.length; } }