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