将扫描的PDF或tessaract可搜索PDF转换为docx/doc,并使用python维护所有格式和布局

2024-06-16 17:12:34 发布

您现在位置:Python中文网/ 问答频道 /正文

需要将扫描的pdf文件转换为docx文件。我目前使用的方法 1.使用pytessaract pytesseract.image\u转换为\u pdf\u或\u hocr()将扫描的pdf转换为可搜索的pdf 2.然后使用lowriter'lowriter--invisible--convert to docx“{}”将可搜索的pdf转换为docx

但这会导致docx/doc中的格式和布局问题,并且在生成的docx文件中存在文本和图像的重叠。 请帮忙


Tags: 文件to方法imageconvertdocpdf格式
1条回答
网友
1楼 · 发布于 2024-06-16 17:12:34

您可以使用pythons、pdfminer将pdf转换为txt,这在内存方面比tesseract好,它会接收所有文本数据,但会丢失格式,然后您可以使用python Docx将此txt文件转换为Docx

from docx import Document
import re
import os

path = 'your path'
direct = os.listdir(path)

for i in direct:
    document = Document()
    document.add_heading(i, 0)
    myfile = open('/path/to/read/from/'+i).read()
    myfile = re.sub(r'[^\x00-\x7F]+|\x0c',' ', myfile) # remove all non-XML-compatible 
  characters
    p = document.add_paragraph(myfile)
    document.save('/path/to/write/to/'+i+'.docx')

或者,您可以将文档转换为XML并以这种方式读取,您可以通过比较字体大小来保存格式

Conversion Cloud提供Python SDK,用于文本/PDF到文档/DOCX的转换,以及许多其他常见文件格式从一种格式转换为另一种格式,而不依赖任何第三方工具或软件

相关问题 更多 >