VVANVI 发表于 2021-11-29 23:33:05

python + 活字格实现 word 转pdf 分享

本帖最后由 VVANVI 于 2021-11-29 23:42 编辑

python + 活字格实现 word 转pdf 分享


具体思路
1   pyhon 代码 实现 word 转pdf
2   封装成服务
3    活字格http命令请求
4   服务端命令下载 转换成pdf 的文件

第一部分 python 代码
'''
win32com 模块主要为 Python 提供调用 windows 底层组件对 word 、Excel、PPT 等进行操作的功能,只能在 Windows 环境下使用,并且需要安装 office 相关软件才行(WPS也行)。
使用 win32com 模块主要是因为 Python 针对 word 文档操作的第三方库相对较少并且功能较弱,Python 有针对 .docx 后缀文件的第三方库如 python-docx、pydocx等等,但是没有针对 .doc 和 .wps 的第三方库,
所以这里就只能使用 win32com 模块。 相对而言 Python 针对 Excel文档操作的第三方库就非常友好
'''



在网上抄word转 PDF代码,然后改造,用Flask封装成服务,pyton 引用包flaskpywin32

from flask import Flask,request
from win32com.client import gencache
from win32com.client import constants, gencache
import pythoncom
app = Flask(__name__)
def createPdf(wordPath):
    """
    word转pdf
    :param wordPath: word文件路径
    :param pdfPath:生成pdf文件路径
    """
    pythoncom.CoInitialize()
    word = gencache.EnsureDispatch('Word.Application')
    doc = word.Documents.Open(wordPath, ReadOnly=1)
    pdfPath = wordPath.split('.')[0]+'.pdf'
    doc.ExportAsFixedFormat(pdfPath,
                            constants.wdExportFormatPDF,
                            Item=constants.wdExportDocumentWithMarkup,
                            CreateBookmarks=constants.wdExportCreateHeadingBookmarks)
    word.Quit(constants.wdDoNotSaveChanges)
@app.route('/')
def hello_world():
   return 'Hello World'
@app.route('/wordtopdf',methods = ['GET'])
def wordtopdf():
    # a = 'D:\wordtopdf\我是一个word.docx'
    path = request.args.get('path')+request.args.get('name').split('|')[0]
    print (path)
    createPdf(path)
    return path.split('.')[0].split('\\')[-1]+'.pdf'
    # return path
if __name__ =='__main__':
    app.run(debug=True)





第二部分 活字格发送请求


完成pdf 转word 工作

第三部分
下载转换后的文件
服务端


页面端

1转PDF请求发送路径和 要转换的文件名

2下载PDF文件


后续附上工程
我在测试时附件在C:/upload/wordtopdf路径


点击下载PDF后附件就能下载,完成word转PDF
我是做的做的get请求, 由于 是自己写的服务, 随便什么请求都可以做!也可以做成post 请求 .随便自己怎么封装



当然批量转也能做 ,用活字格定时任务 ,循环请求 , 不愿意用活字格也可以直接撸代码   直接遍历文件夹一次转换也行

大神勿喷 仅供参考,








紫色幽魂 发表于 2021-11-29 23:40:54

厉害

Alink 发表于 2021-11-30 13:25:11

:)

lovert 发表于 2021-11-30 13:39:51

这个非常好,python能做的事情太多了

vickdracula 发表于 2021-11-30 16:30:30

你们不学好;P

137294886 发表于 2021-12-6 14:36:17

:i0tw:

Tony127 发表于 2021-12-8 08:25:47

学习了,感谢楼主

yetianzi3 发表于 2022-1-4 17:49:52

可以做个DWG转PDF吗

dachongming 发表于 2022-1-15 14:54:46

yetianzi3 发表于 2022-1-4 17:49
可以做个DWG转PDF吗

辛苦作者,慢慢完善:)

dklzhq 发表于 2022-1-26 12:27:09

厉害,学学了,辛苦作者
页: [1] 2
查看完整版本: python + 活字格实现 word 转pdf 分享