找回密码
 立即注册

QQ登录

只需一步,快速开始

VVANVI 悬赏达人认证
论坛元老   /  发表于:2021-11-29 23:33  /   查看:6441  /  回复:13
本帖最后由 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 引用包  flask  pywin32

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)





第二部分 活字格发送请求
image.png334813536.png

完成pdf 转word 工作

第三部分
下载转换后的文件
服务端
image.png434937438.png

页面端

1  转PDF请求  发送路径和 要转换的文件名
image.png183872374.png
2下载PDF文件
image.png105743102.png

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

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



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

大神勿喷 仅供参考,








word转PDF.gif

wordtopdf.fgcc

326.23 KB, 下载次数: 458

评分

参与人数 4金币 +666 满意度 +15 收起 理由
Chelsey.Wang + 666 赞一个!
lovert + 5
一眼望天涯 + 5
vickdracula + 5

查看全部评分

13 个回复

倒序浏览
紫色幽魂
金牌服务用户   /  发表于: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
5#
你们不学好
回复 使用道具 举报
137294886
金牌服务用户   /  发表于:2021-12-6 14:36:17
6#
回复 使用道具 举报
Tony127
注册会员   /  发表于:2021-12-8 08:25:47
7#
学习了,感谢楼主
回复 使用道具 举报
yetianzi3
中级会员   /  发表于:2022-1-4 17:49:52
8#
可以做个DWG转PDF吗
回复 使用道具 举报
dachongming
金牌服务用户   /  发表于:2022-1-15 14:54:46
9#
yetianzi3 发表于 2022-1-4 17:49
可以做个DWG转PDF吗

辛苦作者,慢慢完善
回复 使用道具 举报
dklzhq
中级会员   /  发表于:2022-1-26 12:27:09
10#
厉害,学学了,辛苦作者
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部