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...