问题描述
我正在尝试使用 PDFplumber 从 pdf 文件中提取文本
import pdfplumber
pdf = pdfplumber.open(r"https://www.lupin.com/pdf/financials/subsidiaries/multicare-pharmaceuticals-philippines-inc-philippines-2018.pdf")
for ps in pdf.pages:
print(ps.extract_text(y_tolerance=20))
(A WhLolUlyI POnwdMIenNapFerid ecnP nhSad Hun3ebc1Insi,aiLt d 2laAiI a0SnuPr1tdyda8P itot eIafo mnLNrusde’pE n2iRnSt0es H1,p o7oIl drNitn Cgs.,B.V.)
1135 Chino Roces Avenue,Makati City,Philippines None None None (SLATU AWPTIhENoMll yPE NOHwTISLn eIOdPF PS FuIINbNsEiAdSiNa,rCIyIN AoCfL L. PuOpiSnI HToIOldNings,B.V.) PDCTDIPRNACnrrreaueuSooeavfsferSnppudeTTehr Enae-enroofercryr tTdttnoeaotaaumaSymdntrllrb i edrCNeAa tlneer asnuosoe tnxdrnsstslr ath e-eaee tcecAtsnequuRSSdtsu rre r rsiiAetptpeesyscamnts ertdseeit veiAtnesapstsbo–slesneitetssst–net No21129678t2201es PP 434 125863 21674007458 0,2367029366 1 26653629047825231406078,43521581332 01450564793 M07073790873arc h 3 1 P P 323 313732 51359221260,1 1685100499 72767656537925485539399,446553288940724576365308101010455 SDSDTDLCENerIhqueeuoaeAaffuern dTeiNrrBc i-eroetetoiIcrot yt tneaLcau erdantsIlre pdTrCtLltoaei aiuito atEnaxFretiblr Sthndle iiea L alnApnirbitt caaN piiiLlerbaiDatitlsaii yy elSbEiatstiabQylitlteeUimesIseTnYts 11211214 PP 444( 134362 7907555,146490647732044012981676,968737381184639575050575) PP 332 ( 341039 5473266,6692396 2801199 1417594,2033441-32631380406151)
解决方法
由于 y_tolerance
的值很高,所以没有出现确切的文本。提取文本时,pdfplumber
添加换行符,其中一个字符的 doctop
与下一个字符的 doctop
之差大于 y_tolerance
。要解决这个问题,您可以像
for ps in pdf.pages:
print(ps.extract_text())
由于右下角的条形码和 PDF 中的项目符号,出现了奇怪的符号。如果您尝试复制任何页面上的条形码,您会得到奇怪的 emoji unicode 字符。如果您不想要它们,您可以简单地更换它们。