PDF 有很多版本。 单就PDF 1.7 的规范就有 978 页。
这个长度使得很多pdf文件很难把一切都做好。因此,很多 PDF 文件并没有严格遵循规范。
如果 PDF 文件不符合规范,则无法始终确定预期效果。将以下损坏的 Python 代码视为示例:
# Broken
function (foo, bar):
# Potentially intended:
def function(foo, bar):
...
# Also possible:
function = (foo, bar)
编写一个解析器你可以走两条路:要么尝试宽容并尝试弄清楚用户的意图,要么你严格并告诉用户他们应该修复他们的东西。
PyPDF2 为您提供了严格或不严格的选项。
PyPDF2 有三个核心对象,它们都有一个strict
的参数:
PdfReader
PdfWriter
PdfMerger
选择 strict=True
意味着如果 PDF 不符合规范,PyPDF2 将引发异常。
选择 strict=False
意味着 PyPDF2 将尝试宽容并做一些合理的事情,但它会记录一条警告消息。这是一种尽力而为的方法。
更多建议: