使用Hummus-recipe NPM库报错TypeError: Unable to start parsing PDF file怎么办
问题场景
在使用hummus-recipe库处理PDF文件时,执行以下初始化代码:
const HummusRecipe = require('hummus-recipe'); const pdfDoc = new HummusRecipe(inputFilePath, outputFilePath);
抛出错误:TypeError: Unable to start parsing PDF file,已知触发原因为输入PDF不符合标准PDF格式,对应排查与解决方法如下:
排查步骤
- 验证文件基础有效性:确认
inputFilePath指向的文件存在、大小不为0、未被其他进程占用,先用本地PDF阅读器(Chrome、Adobe Acrobat等)尝试打开文件,若无法打开直接判定为文件本身损坏。 - 核查PDF属性:安装poppler工具包后执行
pdfinfo 输入文件路径.pdf命令,重点查看两个字段:Encrypted:若值为yes说明该PDF为加密文件,hummus-recipe默认无法直接解析加密PDFPDF version:若版本高于1.7,大概率存在兼容性问题
- 检查PDF结构完整性:用文本编辑器打开PDF文件前3行,标准PDF第一行必须为
%PDF-版本号(如%PDF-1.7),若无此行说明文件头损坏;若文件头正常但仍报错,大概率是PDF的XRef交叉引用表存在非标准结构。
解决方案
- 加密PDF处理:确认持有PDF的操作权限后,用解密工具移除文件密码后再进行处理
- 低版本损坏PDF修复:使用Ghostscript执行修复命令,自动重构标准PDF结构:
gs -o 修复后文件输出路径.pdf -sDEVICE=pdfwrite 原输入PDF路径.pdf - 高版本PDF兼容处理:用Adobe Acrobat打开文件后,选择「另存为」-「优化的PDF」,将兼容版本选择为PDF 1.7,移除所有自定义拓展属性后再处理
- 若以上操作都无效,可尝试升级或降级hummus-recipe版本,部分旧版本对合规PDF的解析存在已知bug
内容的提问来源于stack exchange,提问作者AxelBlaze
相关产品推荐
相关产品推荐

