使用 Python 将 PDF 转换为 .docx

Als*_*lso 5 python pdf doc docx libreoffice

我正在尝试找到一种使用 Python 将 PDF 文件转换为 .docx 文件的方法。

我看过与此相关的其他帖子,但在我的情况下,它们似乎都不能正常工作。

我专门用

import os
import subprocess

for top, dirs, files in os.walk('/my/pdf/folder'):
    for filename in files:
        if filename.endswith('.pdf'):
            abspath = os.path.join(top, filename)
            subprocess.call('lowriter --invisible --convert-to doc "{}"'
                            .format(abspath), shell=True)
Run Code Online (Sandbox Code Playgroud)

这给了我输出[1],但是,我在文件夹中找不到任何 .docx 文档。

我安装了 LibreOffice 5.3。

有什么线索吗?

先感谢您!

小智 8

我用它来处理多个文件

####
from pdf2docx import Converter
import os

# # # dir_path for input reading and output files & a for loop # # #

path_input = '/pdftodocx/input/'
path_output = '/pdftodocx/output/'

for file in os.listdir(path_input):
    cv = Converter(path_input+file)
    cv.convert(path_output+file+'.docx', start=0, end=None)
    cv.close()
    print(file)

Run Code Online (Sandbox Code Playgroud)


Rol*_*ony 4

我不知道如何使用 libreoffice 将pdf文件转换为文件Word
但是,您可以从 a 转换pdf为 a html,然后将 转换html为 a docx
首先,在命令行上运行命令。(以下是在 Linux 上进行的。因此您可能必须填写 soffice 二进制文件的路径名,并在操作系统上使用输入文件的完整路径)

soffice --convert-to html ./my_pdf_file.pdf
Run Code Online (Sandbox Code Playgroud)

然后

soffice --convert-to docx:'MS Word 2007 XML' ./my_pdf_file.html
Run Code Online (Sandbox Code Playgroud)

你最终应该得到:

my_pdf_file.pdf
my_pdf_file.html
my_pdf_file.docx

现在将命令包装在您的subprocess代码中