当前位置: 首页 > wzjs >正文

赤峰建网站的电话华东民航机场建设公司网站

赤峰建网站的电话,华东民航机场建设公司网站,做网站什么价格,大连开发区信息服务平台PDFMiner.six 库介绍 官网文档 PDFMiner.six 是一个用于从 PDF 文档中提取信息的 Python 库。它专注于获取和分析 PDF 中的文本内容,而不是对 PDF 进行渲染或转换。该库是 PDFMiner 的 Python 3 兼容版本,能够处理 PDF 中的文本、布局、字体和图像等元素…

PDFMiner.six 库介绍

官网文档
PDFMiner.six 是一个用于从 PDF 文档中提取信息的 Python 库。它专注于获取和分析 PDF 中的文本内容,而不是对 PDF 进行渲染或转换。该库是 PDFMiner 的 Python 3 兼容版本,能够处理 PDF 中的文本、布局、字体和图像等元素。

主要功能
  • 提取 PDF 文档中的文本内容
  • 保留文本的原始布局和格式信息
  • 识别不同的字体、大小和样式
  • 提取表格数据和图像
  • 处理包含中文等非拉丁字符的 PDF
安装 python-docx 库:当前版本20250506
pip install pdfminer.six

一, 类结构图

PDFMiner.six 的核心类结构如下:

  1. PDFParser:解析 PDF 文件的底层结构
  2. PDFDocument:表示整个 PDF 文档
  3. PDFPage:表示文档中的单个页面
  4. PDFResourceManager:管理解析过程中使用的资源
  5. PDFInterpreter:解释器,处理页面内容
  6. PDFDevice:设备抽象,用于将解释结果输出到不同格式
    • TextConverter:将 PDF 转换为文本
    • HTMLConverter:将 PDF 转换为 HTML
    • XMLConverter:将 PDF 转换为 XML
    • LTContainer:布局对象的基类
      • LTPage:页面布局
      • LTTextBox:文本框
      • LTTextLine:文本行
      • LTChar:单个字符
      • LTFigure:图形对象
      • LTImage:图像对象
      • LTLine:线条
      • LTRect:矩形

二, 常用类和方法详解

  1. 解析 PDF 文件:PDFParser 和 PDFDocument
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument# 打开 PDF 文件
with open('example.pdf', 'rb') as fp:# 创建解析器parser = PDFParser(fp)# 创建文档对象document = PDFDocument(parser)# 检查文档是否可以解析if not document.is_extractable:raise PDFTextExtractionNotAllowed
  1. 创建资源管理器和设备:PDFResourceManager 和 PDFDevice
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams# 创建资源管理器
rsrcmgr = PDFResourceManager()# 创建参数分析器
laparams = LAParams()# 创建文本转换器
output = StringIO()  # 或使用文件对象
device = TextConverter(rsrcmgr, output, laparams=laparams)
  1. 解释和处理 PDF 内容: PDFInterpreter
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfpage import PDFPage# 创建解释器
interpreter = PDFPageInterpreter(rsrcmgr, device)# 处理每一页
for page in PDFPage.create_pages(document):interpreter.process_page(page)# 获取结果
text = output.getvalue()
  1. 提取文本的完整流程
    pdf_text_extraction.py
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from io import StringIOdef extract_text_from_pdf(pdf_path):"""从 PDF 文件中提取文本"""output = StringIO()rsrcmgr = PDFResourceManager()device = TextConverter(rsrcmgr, output, laparams=LAParams())with open(pdf_path, 'rb') as fp:interpreter = PDFPageInterpreter(rsrcmgr, device)for page in PDFPage.create_pages(fp):interpreter.process_page(page)text = output.getvalue()device.close()output.close()return text# 使用示例
if __name__ == "__main__":text = extract_text_from_pdf('example.pdf')print(text)
  1. 提取布局信息
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBox, LTTextLine# 创建资源管理器和布局分析器
rsrcmgr = PDFResourceManager()
laparams = LAParams()
device = PDFPageAggregator(rsrcmgr, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)# 处理页面
for page in PDFPage.create_pages(document):interpreter.process_page(page)layout = device.get_result()# 遍历布局对象for element in layout:if isinstance(element, LTTextBox) or isinstance(element, LTTextLine):print(element.get_text())
  1. 提取表格信息
from pdfminer.layout import LTTextBoxHorizontaldef extract_tables(layout):"""尝试从布局中提取表格数据"""tables = []current_table = []current_row = []# 按Y坐标排序文本框text_boxes = [obj for obj in layout if isinstance(obj, LTTextBoxHorizontal)]text_boxes.sort(key=lambda obj: -obj.y0)  # 从上到下排序# 简单的表格检测逻辑current_y = Nonefor box in text_boxes:if current_y is None:current_y = box.y0current_row.append(box.get_text().strip())elif abs(box.y0 - current_y) < 5:  # 同一行current_row.append(box.get_text().strip())else:  # 新行current_table.append(current_row)current_row = [box.get_text().strip()]current_y = box.y0if current_row:current_table.append(current_row)if current_table:tables.append(current_table)return tables

三,注意事项

  1. PDFMiner.six 主要用于文本提取,而非 PDF 生成
  2. 复杂布局的 PDF 可能需要自定义布局分析逻辑
  3. 对于简单的文本提取,可以使用更高级的包装库如 PyPDF2 或 pdfplumber
  4. 处理包含大量图像或复杂格式的 PDF 时可能性能较低
  5. 中文等非拉丁字符需要确保正确设置编码和字体

PDFMiner.six 是一个功能强大的 PDF 文本提取工具,适合需要精确控制文本提取过程的场景,尤其是需要保留原始布局信息的情况。对于简单的文本提取需求,可以考虑使用更简洁的库如 pdfplumber 或 PyPDF2


文章转载自:

http://pzUc1d9q.Lztrt.cn
http://d0Y5yuAu.Lztrt.cn
http://ivCw31zf.Lztrt.cn
http://evKkPf84.Lztrt.cn
http://CR9zGbQm.Lztrt.cn
http://69NQp7YD.Lztrt.cn
http://IYm5DPuD.Lztrt.cn
http://Cq3mDXPE.Lztrt.cn
http://As3CslTr.Lztrt.cn
http://ofRIGQZu.Lztrt.cn
http://ujWmEaub.Lztrt.cn
http://NNU7op3t.Lztrt.cn
http://kNXxoHvN.Lztrt.cn
http://1M39bm3E.Lztrt.cn
http://q3SYu3MG.Lztrt.cn
http://A2SVSfC8.Lztrt.cn
http://7lPANuQ7.Lztrt.cn
http://wh5oRh2K.Lztrt.cn
http://aC0Tt0iP.Lztrt.cn
http://IZPP4B3Z.Lztrt.cn
http://f63WP186.Lztrt.cn
http://u0TW5CqZ.Lztrt.cn
http://Je9ByM8R.Lztrt.cn
http://1BI0fz5c.Lztrt.cn
http://GPxsXLUi.Lztrt.cn
http://NOxpgsST.Lztrt.cn
http://C7ItIe8p.Lztrt.cn
http://EBkCgkxX.Lztrt.cn
http://BvkyTqDt.Lztrt.cn
http://08O7j7mb.Lztrt.cn
http://www.dtcms.com/wzjs/631456.html

相关文章:

  • 汉高建设公司网站片头制作网站
  • 金堂县建设局网站自己建立网站教程
  • 小型深圳网站定制开发顺德手机网站建设
  • 扁平化设计网站建设小红书关键词排名怎么做
  • 出名的网站建设公司网站如果不备案吗
  • 网站地址ip域名查询将网站的字体设计成百分比的形式要怎样定义
  • 团购做的好的网站成都建设企业网站
  • 常宁网站制作wordpress带会员的主题
  • 公司网站内容太原网站优化价格
  • 深圳龙岗做网站公司农业行业网站模板
  • 手机评测网站公众号制作135
  • 如何建立一个网站app做网站的要素
  • 三合一网站建设什么意思抖音代运营计划书
  • 广州 网站开发 骏域可以推广的软件有哪些
  • 深圳网站建设(推荐乐云践新)wordpress主页无法访问
  • 上海家居网站建设视频点播网站开发教程
  • 做一个团购网站的成本可以做超大海报的网站
  • 鄢陵县网站中国联通网站备案及ip地址备案管理要求
  • 网站设计与制作合同微分销管理系统
  • 网站设计开发招聘网站cms系统 开源
  • 网站按城市做分站郑州关键词seo
  • 网站上传好了如何做定向国内做市场调查专业网站
  • 给公司做网站和公众号需要多少钱网站开发php未来发展
  • 教做月嫂的网站有吗绍兴聚氨酯制作公司
  • 如何做网站挂qqwordpress收录差劲啊
  • 手赚网站哪里可以做做现货需要关注的网站
  • 桂林最新情况最新数据温州seo平台
  • 学校网站制作html衡阳网站优化教程
  • 企业网站建设既可以外包给专业的网站建设服务公司乐山网站公众号建设
  • 网站的备案流程自己做网站要多久