我正在开发一个用Java读取和渲染PDF文件的库。PDF流应该是增量读取的,但我不知道使用FlateCode过滤器会如何工作,因为数据的压缩方式。只有当整个流被读取和解码,而不仅仅是一部分时,我才能解码数据。
有可能增量读取这样的数据吗?还是我需要先把它全部解码?
是的,deflate流可以增量解压缩。通常就是这样做的,使用zlib中的inflate()
函数。Java中zlib的膨胀的接口是Inflater
类(不幸的是拼写错误——它应该是充气器)。