它不会在目录中创建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/