用python将图片转为word文档

博主分享了如何使用Python和tesseract-ocr将模糊图片转换为可编辑的Word文档的过程,涉及工具安装、代码实现和处理常见问题的方法,耗时1小时完成基本功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天突发需求要打印一张图片上的文档,图片拍太昏暗,完全不具有可读性,于是想试试转为word文档,编辑以后再打印,百度了一下,找到了一个大神的文档”使用python在实现图片(包括扫描件的图片类pdf)转换成word文档过程中的常见问题_py617的博客-优快云博客_python 图片转word“,根据这个文档,基本搞定了需求,但不知道是图片太模糊还是没使用什么高级设置,总之对导出的文档还是得作一些编辑工作才能使用。

根据原文档操作的话,基本框架就有了,但还需要处理一些报错,于是将我的一些处理记录下来,写一篇文章存档:

一、安装必要的工具和库:

1、Python      建议安装3.7或以上版本(我自己安装的是3.8版本,pycharm和anaconda3)

2、tesseract-ocr      这个一定要装,基本算是整个项目的核心工具了,下载地址: https://github.com/UB-Mannheim/tesseract/wiki ,安装最新版本

3、库支持:(如果下载较慢,可以在命令后用-i加入临时国内源,如 -i https://pypi.tuna.tsinghua.edu.cn/simple)

        pip install pillow

        pip install opencv-python

        pip install fitz

        pip install PyMuPDF

        pip install pytesseract

        pip install python-docx

二、可运行的简单代码:

import os
import pytesseract
import cv2 as cv
import fitz
from PIL import Image
from PIL import ImageFile
import docx
from docx.oxml.ns import qn

ImageFile.LOAD_TRUNCATED_IMAGES = True
Image.MAX_IMAGE_PIXELS = None

text = pytesseract.image_to_string(Image.open(r"F:/png2word/test.png"), lang='chi_sim+eng')

doc = docx.Document()        # 创建一个新的word文档
doc.add_paragraph(text)     # 往文档里添加识别出来的文字
doc.add_page_break()        # 添加分页符,等于在word里按多了一次Ctrl+Enter

# 下面两行设置了文档字体全篇为宋体,缺一行不可
doc.styles['Normal'].font.name = u'宋体'
doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')

doc.save(os.getcwd() + '\\test.docx')  # 保存文档

三、结语:

花了一个小时,装好了缺失的工具和库以后,只能说基本可以用了,感谢

py617大神和度娘!

### Python 实现 PDF Word 的功能 在 Python 中,可以使用多个库来完成 PDF 到 Word换任务。以下是几个常用的库及其简单介绍: #### 使用 `pdf2docx` 库 `pdf2docx` 是一个专门用于将 PDF 文件换为 DOCX 文件的 Python 库[^3]。它支持多种复杂的布局结构,并能较好地保留原始文档中的样式。 安装方法如下: ```bash pip install pdf2docx ``` 下面是一个简单的代码示例展示如何使用该库进行文件换: ```python from pdf2docx import Converter def convert_pdf_to_word(pdf_file, docx_file): cv = Converter(pdf_file) cv.convert(docx_file, start=0, end=None) # 将整个PDF文件换成Word cv.close() # 示例调用 convert_pdf_to_word('example.pdf', 'output.docx') ``` #### 使用 PyMuPDF (Fitz) PyMuPDF 或 Fitz 是另一个强大的工具包,能够处理各种类型的文档操作,包括从 PDF 提取文本并保存到其他格式中去[^4]。虽然其主要用途不是直接做 PDF 至 Word化,但是通过中间步骤也可以达到目的。 首先需要提取 PDF 页面上的文字和其他元素,之后再写入 Microsoft Office 文档兼容的形式里头比如 .rtf 或者借助 pandas 和 openpyxl 等进一步加工成为真正的 MS Word 可读形式。 安装命令如下所示: ```bash pip install pymupdf ``` 这里给出一段基础示范程序片段: ```python import fitz # 这就是 PyMuPDF def extract_text_from_pdf(pdf_path): document = fitz.open(pdf_path) text = "" for page_num in range(len(document)): page = document.load_page(page_num) text += page.get_text() return text text_content = extract_text_from_pdf("input.pdf") with open("output.txt", "w") as f: f.write(text_content) print("Text extracted and saved.") ``` 注意这仅导出了纯文本数据而非完整的富媒体内容;如果追求更高保真度,则需探索更高级别的 API 接口或者商业解决方案。 --- ### 总结 对于希望快速简便地实现 PDF 向 Word 格式的变需求来说,推荐优先尝试开源项目如 **pdf2docx** ,因为它已经封装好了大部分复杂逻辑供开发者轻松调用。而当面临更加定制化的要求时,考虑采用像 PyMuPDF 那样的底层框架自行构建解析流程会更为灵活一些。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值