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

提取双栏pdf的文字时 输出文件顺序混乱

from spire.pdf.common import *
from spire.pdf import *
import os

def extract_text_from_pdf(pdf_path, output_dir, is_simple_extraction=True):
    # 创建一个 PDF 文档对象
    pdf = PdfDocument()

    # 加载 PDF 文件
    pdf.LoadFromFile(pdf_path)

    # 确保输出目录存在
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    # 创建一个TXT文件来保存提取的文本
    extracted_text_path = os.path.join(output_dir, "extract_text.txt")
    extractedText = open(extracted_text_path, "w", encoding="utf-8")

    # 创建PdfTextExtractOptions 对象
    extractOptions = PdfTextExtractOptions()
    extractOptions.IsSimpleExtraction = is_simple_extraction

    # 遍历文档的每一页
    for i in range(pdf.Pages.Count):
        # 获取页面
        page = pdf.Pages.get_Item(i)
        # 创建PdfTextExtractor 对象
        textExtractor = PdfTextExtractor(page)
        # 从页面提取文本
        text = textExtractor.ExtractText(extractOptions)
        # 将文本写入TXT文件
        extractedText.write(text)

    # 释放资源
    extractedText.close()
    pdf.Close()

# 调用函数,确保路径正确
extract_text_from_pdf('input\\BLIP-2.pdf', "./text", is_simple_extraction=True)

最开始我用的spire pdf 直接提取 发现输出的文本格局会和原来pdf格局一样导致出现文本顺序混乱

from spire.pdf.common import *
from spire.pdf import *
import os

def extract_text_from_pdf(pdf_path, output_dir, is_simple_extraction=True):
    # 创建一个 PDF 文档对象
    pdf = PdfDocument()

    # 加载 PDF 文件
    pdf.LoadFromFile(pdf_path)

    # 确保输出目录存在
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    # 创建一个TXT文件来保存提取的文本
    extracted_text_path = os.path.join(output_dir, "extract_text.txt")
    extractedText = open(extracted_text_path, "w", encoding="utf-8")

    # 创建PdfTextExtractOptions 对象
    extractOptions = PdfTextExtractOptions()
    extractOptions.IsSimpleExtraction = is_simple_extraction

    # 遍历文档的每一页
    for i in range(pdf.Pages.Count):
        # 获取页面
        page = pdf.Pages.get_Item(i)
        # 创建PdfTextExtractor 对象
        textExtractor = PdfTextExtractor(page)
        # 从页面提取文本
        text = textExtractor.ExtractText(extractOptions)
        # 将文本写入TXT文件
        extractedText.write(text)

    # 释放资源
    extractedText.close()
    pdf.Close()

# 调用函数,确保路径正确
extract_text_from_pdf('input\\BLIP-2.pdf', "./text", is_simple_extraction=True)

只要设置PdfTextExtractOptions.IsSimpleExtraction = True 就可以实现按照pdf文字输入顺序提取文字         想法来源:Python 从 PDF 文档中提取文本


http://www.kler.cn/a/398073.html

相关文章:

  • Python3.11.9+selenium,选择证书用多线程+键盘enter解决
  • Redis性能优化——针对实习面试
  • IDEA leetcode插件代码模板配置,登录闪退解决
  • 营销手段的变革:开源 AI 智能名片与 S2B2C 商城小程序在新趋势下的机遇与挑战
  • SpringMVC数据校验、数据格式化处理、国际化设置
  • RHCE的学习(20)
  • opencv(c++)----图像的读取以及显示
  • Springboot maven常见依赖、配置文件笔记
  • vue | 劫持原理
  • 【HarmonyOS NEXT】实战——登录页面
  • k8s1.21.1 etcd服务备份恢复
  • 理解 HTML5 Canvas 中逻辑像素与物理像素的关系
  • GStreamer 简明教程(九):Seek 与跳帧
  • 基于Spring Boot的船运物流管理系统的设计与实现,LW+源码+讲解
  • shell编程--传参与数学运算
  • 开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-串行调用多个tools(三)
  • HTTP 协议及内外网划分详解
  • pdf的统计图表数据提取;图表转excel
  • 大模型(LLMs)进阶篇
  • 环境贴图选用方式
  • 【MyBatis源码】深入分析TypeHandler原理和源码
  • python实现十进制转换二进制,tkinter界面
  • C++ 数组与结构 编程练习
  • vscode报错:Connecting with SSH time-out.
  • [vulnhub] Chronos: 1
  • linux系统kkFileView 配置https预览文件