你的問題事實上包含幾部分:將 PDF 轉化為純文字格式抽取其中部分內容格式化寫入到 excel 中轉換 PDF 有很多庫可以完成,如下是透過 pdfminer 的示例:from cStringIO import StringIOfrom pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreterfrom pdfminer.converter import TextConverterfrom pdfminer.layout import LAParamsfrom pdfminer.pdfpage import PDFPagedef convert_pdf_2_text(path):rsrcmgr = PDFResourceManager()retstr = StringIO()device = TextConverter(rsrcmgr, retstr, codec="utf-8", laparams=LAParams())interpreter = PDFPageInterpreter(rsrcmgr, device)with open(path, "rb") as fp:for page in PDFPage.get_pages(fp, set()):interpreter.process_page(page)text = retstr.getvalue()device.close()retstr.close()return text需要指出的是,pdfminer 不但可以將 PDF 轉換為 text 文字,還可以轉換為 HTML 等帶有標籤的文字。上面只是最簡單的示例,如果每頁有很獨特的標誌,你還可以按頁單獨處理。
你的問題事實上包含幾部分:將 PDF 轉化為純文字格式抽取其中部分內容格式化寫入到 excel 中轉換 PDF 有很多庫可以完成,如下是透過 pdfminer 的示例:from cStringIO import StringIOfrom pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreterfrom pdfminer.converter import TextConverterfrom pdfminer.layout import LAParamsfrom pdfminer.pdfpage import PDFPagedef convert_pdf_2_text(path):rsrcmgr = PDFResourceManager()retstr = StringIO()device = TextConverter(rsrcmgr, retstr, codec="utf-8", laparams=LAParams())interpreter = PDFPageInterpreter(rsrcmgr, device)with open(path, "rb") as fp:for page in PDFPage.get_pages(fp, set()):interpreter.process_page(page)text = retstr.getvalue()device.close()retstr.close()return text需要指出的是,pdfminer 不但可以將 PDF 轉換為 text 文字,還可以轉換為 HTML 等帶有標籤的文字。上面只是最簡單的示例,如果每頁有很獨特的標誌,你還可以按頁單獨處理。