提取双栏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 文档中提取文本

相关推荐
benbenAItalk4 小时前
数字人口播视频的批量生产实践:素材规范、任务编排与质量验收
java·前端·音视频
2601_962885724 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
西瓜太郎12345 小时前
Claude Code、Codex CLI、Gemini CLI 能否共用一枚 Key?先看协议选择矩阵
前端·api 网关·claude code·gemini cli·codex cli
陈随易7 小时前
在Finch用了62亿词元,我认为这是新一代Agent工具之神
前端·人工智能·后端
水域安全老周7 小时前
水趣钓鱼救生衣专利拆解:两级锁紧如何解决落水人衣分离
java·前端·网络
计算机魔术师8 小时前
Anthropic CEO突然喊踩刹车,OpenAI罕见力挺:AI这辆车不能只踩油门了
前端
wing988 小时前
从codex转战workbuddy使用一周的感受
前端·人工智能·后端
EatFan8 小时前
Java接入支付宝 JSAPI 支付保姆教程(二):流程讲解与前后端代码讲解
前端·spring boot·后端·微信小程序·小程序·uni-app
梦想平凡9 小时前
百游棋牌源代码开发搭建教程(五):房间创建、座位分配与请求幂等实现
前端·javascript·数据库·源代码管理
IT_陈寒9 小时前
Redis的Set操作居然能把我的服务整挂了?
前端·人工智能·后端