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

将扫描的PDF或tessaract可搜索PDF转换为docx/doc,并使用python维护所有格式和布局,python,python-3.x,image-processing,python-tesseract,pdfminer,Python,Python 3.x,Image Processing,Python Tesseract,Pdfminer,需要将扫描的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文件中存在文本和图像的重叠。 请提供帮助您可以使用pythons、pdfminer将

需要将扫描的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文件中存在文本和图像的重叠。
请提供帮助

您可以使用pythons、pdfminer将pdf转换为txt,这在内存方面比TeserAct更好,它会接收所有文本数据,但会丢失格式,然后您可以使用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并以这种方式读取,您可以通过比较字体大小来保存格式


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

您可以使用pythons、pdfminer将PDF转换为txt,这在内存方面比tesseract更好,它接收所有文本数据,但是丢失了格式,您可以使用pythondocx将这个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并以这种方式读取,您可以通过比较字体大小来保存格式


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

扫描的PDF中也有图像。由于扫描的PDF是来自发票的PDF,因此txt文件无法处理该图像内容。我同意从中提取文本pdfminer将起作用。但是,如果pdf中有图像,它将不起作用。扫描的pdf中也有图像。因为扫描的pdf是来自发票的pdf,所以txt文件无法处理该图像内容。我同意从中提取文本pdfminer将起作用。但是,如果pdf格式的图像不起作用,这是我发现的在保留格式的同时进行OCR转换的最佳方法:这是使用cloud adobe。根据我的个人经验,如果你想保留转换文档中的所有格式,有没有一种不使用任何云引擎的方法,我从来没有找到比这更好的方法。您还可以使用pypdf提取pdf中的所有文本,然后将文本写回docx。但是这种方法会丢失本地文档的所有格式实际上pdf是扫描发票的,它还有徽标、戳记、签名和文本,因此需要在docx文件中保留所有布局和格式。当我谈到格式时,它与您描述的是同一行。i、 e所有徽标、签名等都将保留这是我发现的在保留格式的同时进行OCR转换的最佳方法:这是使用cloud adobe。根据我的个人经验,如果您想保留转换文档中的所有格式,是否有一种不使用任何云引擎的方法,我从来没有找到比这更好的方法。您还可以使用pypdf提取pdf中的所有文本,然后将文本写回docx。但是这种方法会丢失本地文档的所有格式实际上pdf是扫描发票的,它还有徽标、戳记、签名和文本,因此需要在docx文件中保留所有布局和格式。当我谈到格式时,它与您描述的是同一行。i、 e所有标识、签名等将予以保留