转换docx.到linux中python中的pdf



它不会在目录中创建pdf文件,也会打印-无

import sys
import subprocess
import re

def convert_to(folder, source, timeout=None):
args = [libreoffice_exec(), '--headless', '--convert-to', 'pdf', '--outdir', folder, source]
process = subprocess.run(args, stdout=subprocess.PIPE,
stderr=subprocess.PIPE, timeout=timeout)
filename = re.search('-> (.*?) using filter', process.stdout.decode())
return filename

def libreoffice_exec():
# TODO: Provide support for more platforms
if sys.platform == 'darwin':
return '/Applications/LibreOffice.app/Contents/MacOS/soffice'
return 'libreoffice'
result = convert_to('/directory_to_save_file',  '/File_path', timeout=15)
print(result)

有人能给我一个解决方案,让我可以轻松地将docx转换为pdf吗?提前感谢!

您可以在函数中尝试以下代码

import subprocess
output = subprocess.check_output(['libreoffice', '--convert-to', 'pdf' ,'demo.docx'])
print output

Aspose.Words for Python提供了将DOCX和其他文档格式转换为PDF的能力。但请注意,Aspose。Words是一种商业产品。代码很简单-加载文档并将其保存为PDF:

import aspose.words as aw
doc = aw.Document("in.docx")
doc.save("out.pdf")

可以使用PdfSaveOptions指定其他转换选项,例如PDF兼容:https://docs.aspose.com/words/python-net/convert-a-document-to-pdf/

import aspose.words as aw
doc = aw.Document("C:\Temp\in.docx")
opt = aw.saving.PdfSaveOptions()
opt.compliance = aw.saving.PdfCompliance.PDF_UA1 
doc.save("C:\Temp\out.pdf", opt)

此外,当您将文档转换为PDF时,为了获得准确的结果,原始文档中使用的字体应该在执行转换的环境中可用。否则,字体会被可用的字体替换,这可能会由于不同的字体度量而导致布局差异。https://docs.aspose.com/words/python-net/manipulating-and-substitution-truetype-fonts/

最新更新