PDF 有很多版本。 單就PDF 1.7 的規(guī)范就有 978 頁。
這個長度使得很多pdf文件很難把一切都做好。因此,很多 PDF 文件并沒有嚴格遵循規(guī)范。
如果 PDF 文件不符合規(guī)范,則無法始終確定預期效果。將以下?lián)p壞的 Python 代碼視為示例:
# Broken
function (foo, bar):
# Potentially intended:
def function(foo, bar):
...
# Also possible:
function = (foo, bar)
編寫一個解析器你可以走兩條路:要么嘗試寬容并嘗試弄清楚用戶的意圖,要么你嚴格并告訴用戶他們應該修復他們的東西。
PyPDF2 為您提供了嚴格或不嚴格的選項。
PyPDF2 有三個核心對象,它們都有一個?strict
?的參數(shù):
?
PdfReader
??
PdfWriter
??
PdfMerger
?
選擇 ?strict=True
? 意味著如果 PDF 不符合規(guī)范,PyPDF2 將引發(fā)異常。
選擇 ?strict=False
? 意味著 PyPDF2 將嘗試寬容并做一些合理的事情,但它會記錄一條警告消息。這是一種盡力而為的方法。
更多建議: