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)
我不知道如何使用 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
代码中