欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python讀取pdf內(nèi)容

林子帆2年前20瀏覽0評論

python讀取pdf內(nèi)容?

代碼示例:

#!/usr/bin/env python3

#-*- coding:utf-8 -*-

# pip3 install pdfminer3k

from pdfminer.converter import PDFPageAggregator

from pdfminer.layout import LAParams, LTTextBoxHorizontal

from pdfminer.pdfparser import PDFParser, PDFDocument

from pdfminer.PDFinterp import PDFResourceManager, PDFPageInterpreter, PDFTextExtractionNotAllowed

from pdfminer.pdfdevice import PDFDevice

def read_pdf(pdf_name, result_name):

# 以二進制讀模式打開

fp = open(pdf_name, 'rb')

# 用文件對象來創(chuàng)建一個pdf文檔分析器

parser = PDFParser(fp)

# 創(chuàng)建一個pdf文檔

doc = PDFDocument()

# 連接分析器 與文檔對象

parser.set_document(doc)

doc.set_parser(parser)

# 提供初始密碼,如果沒有密碼 就創(chuàng)建一個空的字符串

doc.initialize('')

# 檢測文檔是否提供txt轉(zhuǎn)換,不提供就拋出異常

if not doc.is_extractable:

raise PDFTextExtractionNotAllowed

# 創(chuàng)建PDf 資源管理器 來管理共享資源

rsrcmgr = PDFResourceManager()

# 創(chuàng)建一個PDF設(shè)備對象

laparams = LAParams()

device = PDFPageAggregator(rsrcmgr, laparams=laparams)

# 創(chuàng)建一個PDF解釋器對象

interpreter = PDFPageInterpreter(rsrcmgr, device)

with open(result_name,"w",encoding="u8") as fd_out:

# 循環(huán)遍歷列表,每次處理一個page的內(nèi)容

for i,page in enumerate(doc.get_pages(),1):

index = "===========《第{}頁》===========".format(i)

print(index)

fd_out.write(index + "\n")

interpreter.process_page(page)

# 接受該頁面的LTPage對象

layout = device.get_result()

for x in layout:

# 這里layout是一個LTPage對象 里面存放著 這個page解析出的各種對象 一般包括LTTextBox,

# LTFigure, LTImage, LTTextBoxHorizontal 等等 想要獲取文本就獲得對象的text屬性

if not isinstance(x, LTTextBoxHorizontal):

continue

results = x.get_text()

print(results)

fd_out.write(results)

if __name__ == '__main__':

pdf_name = 'test.pdf'

result = 'test.txt'

read_pdf(pdf_name, result)

java 二進制讀寫,python讀取pdf內(nèi)容