供应商发来十页的合同 PDF,识别结果只有第一页,后面九页一个字都没有,响应里的 pages 字段是 1。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,接口默认只处理第一页,多页要显式传 page_start 和 page_end,或者先拆成图片。这两个参数写在可选参数表最后,很容易漏。

「PDF 多页识别」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。

from pypdf import PdfReader
n = len(PdfReader('contract.pdf').pages)
print(n)

权限不要一口气开到最大,先加到够用再往上试,范围小才好收。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。

改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。

具体做法是,显式传 page_start 和 page_end;处理前读出总页数做校验;返回后比对页数和结果页数;超过二十页先拆分再并发提交。

最后用这个标准收尾,十页 PDF 返回十条结果 页数与文件一致。

作者 9823189