如何用Node.js解压PDF中的图片?Zlib错误问题排查
问题:PDF提取图片数据流执行Zlib解压失败
我从网上下载了一张图片,用Chrome的打印页面功能生成了对应的PDF。单独对原图片执行压缩再解压操作完全正常:
const deflate = zlib.createDeflate(); const inp = fs.createReadStream('output.png'); const out = fs.createWriteStream('encoded.txt'); inp.pipe(deflate).pipe(out); // 文件已压缩,正常 const inflate = zlib.createInflate(); const input = fs.createReadStream('decoded.txt'); const output = fs.createWriteStream('decoded.png'); input.pipe(inflate).pipe(output); // 文件与原图片完全一致,符合预期
但对从PDF中提取的图片数据流执行相同操作时失败,仅抛出无明确提示的Uncaught Error: Zlib error。我猜测图片格式可能损坏,或许需要将PDF中的元数据纳入图片处理,但不确定具体原因。
补充说明:我已截取掉图片流前后的内容,仅保留图片数据。以下是PDF中图片流对象前的部分内容:
4 0 obj << /Type /XObject /Subtype /Image /Width 1500 /Height 970 /ColorSpace [/ICCBased 5 0 R] /BitsPerComponent 8 /Filter /FlateDecode /Length 320983 >> stream
请问我遗漏了什么?
内容的提问来源于stack exchange,提问作者Andrew Still
相关产品推荐
相关产品推荐

