Abstract data provider that handles serving a PDF document from an InputStream. Since viewing the PDF
document needs random access, this class wraps the logic for re-opening the stream for backwards-seek operations.
Subclasses need to override the
openInputStream() method, which needs to return a new
InputStream instance every time it is called.
read(long size, long offset)
(long size, long offset)
Returns the current position inside the read
InputStream. Every read operation on the data provider
will increase this position. To reset the read position to
- The current input stream position (in bytes).
Subclasses need to override this method and return a readable input stream which servers the PDF document. This
method must return a new
InputStream instance every time it is called. This is
InputStreamDataProvider can actually "simulate" random data access on the underlying stream.
- A new instance of the InputStream that servers the PDF document.
||If the implementation fails to open the input stream for reading.
Close the internal input stream and reopen it. This is used to rewind the stream, if it is necessary to "seek
backwards". Subclasses may call this method to safely rewind the stream to the beginning.
||If the implementation fails to close or open the input stream for reading.