PDFPlumber 返回符号和不准确的文本

问题描述

我正在尝试使用 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 字符。如果您不想要它们,您可以简单地更换它们。