linux环境基于python语言docx转pdf
2024-09-02 07:16:10
windows平台因借助win32com具有多种方法将word转为pdf,但linux环境不具备此环境,win32com包也将import失败,那该如何做呢?
# -*- coding: utf-8 -*-
"""
linux platform word to pdf
"""
import subprocess
import os
try:
from comtypes import client
except ImportError:
client = None
try:
from win32com.client import constants, gencache
except ImportError:
constants = None
gencache = None
def doc2pdf_linux(docPath, pdfPath):
"""
convert a doc/docx document to pdf format (linux only, requires libreoffice)
:param doc: path to document
"""
cmd = 'libreoffice6.3 --headless --convert-to pdf'.split() + [docPath] + ['--outdir'] + [pdfPath]
p = subprocess.Popen(cmd, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
p.wait(timeout=30)
stdout, stderr = p.communicate()
if stderr:
raise subprocess.SubprocessError(stderr)
def doc2pdf(docPath, pdfPath):
"""
convert a doc/docx document to pdf format
:param doc: path to document
"""
docPathTrue = os.path.abspath(docPath) # bugfix - searching files in windows/system32
if client is None:#判断环境,linux环境这里肯定为None
return doc2pdf_linux(docPathTrue, pdfPath)
word = gencache.EnsureDispatch('Word.Application')
doc = word.Documents.Open(docPathTrue, ReadOnly=1)
doc.ExportAsFixedFormat(pdfPath,
constants.wdExportFormatPDF,
Item=constants.wdExportDocumentWithMarkup,
CreateBookmarks=constants.wdExportCreateHeadingBookmarks)
word.Quit(constants.wdDoNotSaveChanges)
if __name__ == '__main__':
wordpath='/var/db/Report_20191206105753.docx'
pdfpath='/var/db'
doc2pdf(wordpath,pdfpath)
最新文章
- [翻译svg教程]Path元素 svg中最神奇的元素!
- Using Recursive Common table expressions to represent Tree structures
- iOS __strong __weak @Strongify @Weakify
- mybatis.net insert 返回主键
- Visual Studio 编译项目失败,提示找不到文件
- PHP合并数组保留key值
- build/core/config.mk
- php之上传小案例,根据时间:月日分创建目录并随机生成文件名
- 专题笔记--Java 类集框架
- gcc 的编译过程
- html css <;input>; javaScript .数据类型 JS中的函数编写方式 BOM总结 DOM总结
- UE4笔记:利用Widget设计一个切换材质功能
- email program (客户端)演变过程有感
- OpenStack--Havana
- sigmod函数
- 后端自测必备神器-PostMan
- N! (数组)
- 详解--从地址栏输入url到页面展现中间都发生了什么?
- 第2章 Python基础-字符编码&;数据类型 综合 练习题
- 二:maven构建module
热门文章
- Mysql安装 ---->; 基于源码包安装
- centos解决bash: telnet: command not found...&;&; telnet: connect to address 127.0.0.1: Connection refused拒绝连接
- bootstrap中col-xs-*和col-sm-* 和col-md-*是怎么样对应的
- 重新理解CEO的学习能力----HHR计划----以太入门课--第一课
- 导出EXCEL设置单元格格式
- 七 Spring的IOC的注解方式
- spring cloud spring boot JPA 克隆对象修改属性后 无法正常的执行save方法进行保存或者更新
- 吴裕雄--天生自然ORACLE数据库学习笔记:管理控制文件和日志文件
- 06. Z字型变换
- 「NOIP2009」Hankson的趣味题