Input Stream Data Provider
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.