NO.031-PDF转Word———By.杭州组
评论
收藏

NO.031-PDF转Word———By.杭州组

经验分享
启航
2023-09-27 09:40·浏览量:908
启航
发布于 2023-09-27 09:40908浏览

作者:启航

关键词:pdf2docx、PDF、Word


一、问题背景

客户想要把网页上面下载下来的PDF文件转为Word文件进行保存留档。

二、解决思路

目前影刀没有特定的PDF转Word指令,但是我们可以写一个。

使用pdf2docx库可以处理包含复杂布局和格式的PDF文件,并保留原始的字体、颜色、大小和格式等属性,将PDF文件转换成可编辑的Word文档。

pdf2docx简介:

   ●基于PyMuPDF提取文本、图片、矢量等原始数据

   ●基于规则解析章节、段落、表格、图片、文本等布局及样式

   ●基于 python-docx 创建Word文档

from pdf2docx import Converter

# 例1 转换所有页面
# pdf_file:需要转换的PDF路径;docx_file:转换后word路径
def pdf_docx(pdf_file,docx_file):
    #将pdf转换为word
    cv = Converter(pdf_file)
    cv.convert(docx_file)      
    cv.close()
pdf_docx(r"C:\Users\25569\Desktop\test.pdf",r'C:\Users\25569\Desktop\test.docx')

# 例2 转换指定页面
def pdf_docx(pdf_file,docx_file):
    #将pdf转换为word
    cv = Converter(pdf_file)
    # 从第二页转换到末尾
    cv.convert(docx_file, start=1)
    #从第一页(默认情况下)转换到第三页(end=3,排除)
	cv.convert(docx_file,end=3)
	#从第二页和第三页转换(指定开始页数和结束页数)
	cv.convert(docx_file,start=1,end=3)
    cv.close()
pdf_docx(r"C:\Users\25569\Desktop\test.pdf",r'C:\Users\25569\Desktop\test.docx')

# 例3 转换加密的pdf
# password:PDF密码
def pdf_docx(pdf_file,docx_file,password):
    cv = Converter(pdf_file, password)
    cv.convert(docx_file)
    cv.close()
pdf_docx(r"C:\Users\25569\Desktop\test.pdf",r'C:\Users\25569\Desktop\test.docx','1234')

1.安装pdf2docx包

2.新建一个python模块,输入下面代码,也可以从上面的例子中复制

 from pdf2docx import Converter
# pdf_file:需要转换的PDF路径;docx_file:转换后word路径
def pdf_docx(pdf_file,docx_file):
    #将pdf转换为word
    cv = Converter(pdf_file)
    cv.convert(docx_file)      
    cv.close()

3.调用这个函数,设置好输入参数

三、效果展示

左边PDF右边转换的Word

四、缺点

1.目前暂不支持扫描PDF文字识别

2.仅支持从左向右书写的语言(因此不支持阿拉伯语)

3.不支持旋转的文字

4.基于规则的解析无法保证100%还原PDF样式

五、注意

使用的时候可能会出现如下报错,这不是错误,只是报告没有具有该名称的字体。使用一种内置字体,例如“helv”(Helvetica)即可

操作方法:

1.找到流程文件所在的文件夹

2.返回到文件夹路径的上一级:

3.搜索constants.py(也可以直接根据路径去找\venv\Lib\site-packages\pdf2docx\common)

4.点击constants.py文件,使用记事本打开(也可使用其他方式打开)


5.文件最下面加上DEFAULT_FONT_NAME = 'helv',保存关闭


收藏4
全部评论1
最新
发布评论
评论