首页 > 编程语言 >Python pdf 转 docx

Python pdf 转 docx

时间:2024-08-25 21:47:56浏览次数:14  
标签:docx name Python doc cv file pdf page

本文介绍了用 pdf2docx 将 pdf 转成 docx 的方法,发现转换的时间较长,而且没有进度,仅在控制台有输出,而 convert 的逐页转换会生成多个 docx, 因此写了个逐页转换的 demo
首先是基本的使用

import pdf2docx
from docxcompose import composer
from pdf2docx import parse

def convert(file_name, doc_file_name):
    cv = pdf2docx.Converter(file_name)
    cv.convert(doc_file_name)
    cv.close()

修改后

import pdf2docx
from docx import Document

if __name__ == '__main__':
    file_name = 'E:\\西瓜书配套南瓜书.pdf'
    doc_file_name = 'E:\\西瓜书配套南瓜书.docx'
    cv = pdf2docx.Converter(file_name)
    cv.parse(0, None, None, **cv.default_settings)
    # 解析也需要一定时间,这里也可以设个 10% 类似这样的
    docx_file = Document()
    for page in cv.pages:
        if not page.finalized:
            continue
        try:
            page.make_docx(docx_file)
        except Exception as e:
            print('Ignore page  due to making page error: ', e)
        # 可以在这里根据页数计算出粗略的进度
    docx_file.save(doc_file_name)
    cv.close()

利用 pdf2docx 逐页转换生成多个 docx 再进行合并版(有点取巧了)

page_num = 5
    for i in range(0, page_num):
        page_file_name = 'E:\\temp\\%s.docx' % (str(i))
        cv.convert(page_file_name, start=i, end=i + 1)
        if i == 0:
            document = docx.Document("E:\\temp\\0.docx")
            mer = composer.Composer(document)
        else:
            doc = docx.Document(page_file_name)
            doc.add_page_break()
            mer.append(doc)
        progress = (i + 1) / page_num
        print(progress)
    cv.close()
    mer.save(doc_file_name)
    shutil.rmtree('E:\\temp')

标签:docx,name,Python,doc,cv,file,pdf,page
From: https://www.cnblogs.com/wzxzx/p/18379598

相关文章

  • 27.Python练习题
    1,列举布尔值为False的值0False‘’   [] {}None 2,写函数:根据范围获取其中3和7整除的所有数的和,并返回调用者:符合条件的数字个数以及符合条件的数字的总和如:deffunc(start,end): 3,函数的默认返回值是什么?None 4,简述break\continue\return的区别Bre......
  • TPS561201DDCR同步降压稳压器IC芯片中文资料PDF档数据手册引脚图产品参数
    TPS561201的说明TPS561201和TPS561208是采用SOT-23封装的简单易用型1A同步降压转换器。此器件被优化为使用尽可能少的外部组件即可运行,并且可以实现低待机电流。这些开关模式电源(SMPS)器件采用D-CAP2模式控制,从而提供快速瞬态响应,并且在无需外部补偿组件的情况......
  • 使用 Python 构建简易图书馆借阅系统
    本文将介绍一个简单的图书管理系统的实现。这个系统用Python编写,可以帮助我们管理图书馆中的图书,包括新增图书、借阅图书、归还图书以及显示图书馆当前藏书的状态。引言图书馆是提供信息和知识的重要场所。为了更好地管理图书馆中的图书,我们需要一个简单易用的管理系统。下......
  • python数据分析中包含很多图像?如何使用这些图像进行数据分析呢?
    在Python中进行数据分析时,选择不同的图案来分析数据可以帮助我们更好地理解数据的特征和关系。以下是一些常见的数据分析图形和它们的应用场景:条形图(BarPlot):适合表示类别型数据的分布或比较不同类别的数据。可以使用水平或垂直的条形图。折线图(LinePlot):适合表示随时间变化......
  • 基于python+flask框架的医疗健康信息管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着科技的飞速发展和人口老龄化的加剧,医疗健康领域面临着前所未有的挑战与机遇。传统的医疗健康管理模式已难以满足日益增长的健康管理需......
  • 基于python+flask框架的赛事管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着体育产业的蓬勃发展,各类赛事活动层出不穷,从地方性小型比赛到国际级大型赛事,都面临着参赛者众多、赛事组织复杂、信息管理繁琐等挑战。......
  • 基于python+flask框架的鹿野巷咖啡店销售管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今快节奏的城市生活中,咖啡已成为许多人日常生活中不可或缺的一部分,它不仅是一种饮品,更是一种生活态度和社交方式。随着咖啡文化的普及......
  • 基于python+flask框架的网课个性化推荐系统的设计与实现(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,网络教育已成为现代教育体系中的重要组成部分。尤其在疫情期间,网课以其便捷性、灵活性和资源丰富的特点,受到了广......
  • 【python】Python中小巧的异步web框架Sanic快速上手实战
    ✨✨欢迎大家来到景天科技苑✨✨......
  • C/C++、Java、Python全面比较
    以下是对C/C++、Java、Python三种编程语言的全面比较,以表格形式呈现:特性/语言C/C++JavaPython类型系统静态类型静态类型动态类型内存管理手动管理自动管理(垃圾回收)自动管理(垃圾回收)编译/解释编译型编译型(通过JVM解释执行)解释型性能高(直接编译成机器码)中等(通过JIT优化)较低(解......