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

python 复制代码
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格局一样导致出现文本顺序混乱

python 复制代码
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 文档中提取文本

相关推荐
Ulyanov14 分钟前
从桌面到云端:构建Web三维战场指挥系统
开发语言·前端·python·tkinter·pyvista·gui开发
cypking27 分钟前
二、前端Java后端对比指南
java·开发语言·前端
糠帅傅蓝烧牛肉面30 分钟前
单实例多MCP聚合服务:两种实现方案深度对比
前端·docker·ai
JosieBook1 小时前
【Vue】12 Vue技术—— Vue 事件修饰符详解:掌握事件处理的高级技巧
前端·javascript·vue.js
艾斯特_2 小时前
Echarts常用配置项及解释
前端·javascript·echarts
m0_502724952 小时前
飞书真机调试
开发语言·前端·javascript
我只会写Bug啊3 小时前
复制可用!纯前端基于 Geolocation API 实现经纬度获取与地图可视化
前端·高德地图·地图·百度地图·经纬度
刘一说3 小时前
Vue3 模块语法革命:移除过滤器(Filters)的深度解析与迁移指南
前端·vue.js·js
lkbhua莱克瓦243 小时前
JavaScript核心语法
开发语言·前端·javascript·笔记·html·ecmascript·javaweb
Trae1ounG3 小时前
这是什么dom
前端·javascript·vue.js