PyPDF2中文配置

2021-10-09 10:30:09 字數 1714 閱讀 1764

pypdf2 預設是 latin-1 編碼的,當處理中文文件的時候就會報錯。

本文內容 linux 與 windows 通用 已測試

utils.py內大概240行左右的內容:

r = s.encode(

'latin-1')if

len(s)

<2:

bc[s]

= r return r

修改為

r = s.encode(

'utf-8')if

len(s)

<2:

bc[s]

= rreturn r

generic.py大概480行左右的內容

try

:return nameobject(name.decode(

'utf-8'))

except

(unicodeencodeerror, unicodedecodeerror)

as e:

# name objects should represent irregular characters

# with a '#' followed by the symbol's hex number

ifnot pdf.strict:

warnings.warn(

"illegal character in name object"

, utils.pdfreadwarning)

return nameobject(name)

else

:raise utils.pdfreaderror(

"illegal character in name object"

)

修改為

try

:return nameobject(name.decode(

'utf-8'))

except

(unicodeencodeerror, unicodedecodeerror)

as e:

try:

return nameobject(name.decode(

'gbk'))

except

(unicodeencodeerror, unicodedecodeerror)

as e:

# name objects should represent irregular characters

# with a '#' followed by the symbol's hex number

ifnot pdf.strict:

warnings.warn(

"illegal character in name object"

, utils.pdfreadwarning)

return nameobject(name)

else

:raise utils.pdfreaderror(

"illegal character in name object"

)

文章內容結束,以上內容在2023年01月09日 windows 與 linux 平台下 均測試通過

pyPdf和pyPdf2在合併pdf時的那個異常

當乙個pdf檔案有多page的時候,它將出來見你!方法是取直接修改那個檔案generic.py 1 pypdf 路徑大約在這裡 usr lib python2.7 site packages pypdf generic.py if data.has key key multiple definiti...

Python利用PyPDF2庫獲取PDF檔案總頁碼

python中可以利用pypdf2庫來獲取該pdf檔案的總頁碼,可以根據下面的方法一步步進行下去 1 首先,要安裝pypdf2庫,利用以下命令即可 pip install pypdf22 接著,就是直接編寫 了,其中我新建了乙個py檔案,名為file utils.py,如下 from pypdf2 ...

Python中用PyPDF2拆分pdf提取頁面

有時候我們只需要pdf中的幾頁,或許還想把這幾頁內容整合成新的pdf,那該怎麼做呢?準備工作 安裝擴充套件庫pypdf2,參考命令 pip install pypdf2 如下 from pypdf2 import pdffilereader,pdffilewriter defsplit pdf fi...