1 '''

2 #python批量将word文档转换成PDF文件3 '''

4 #导入所需库

5 from docx importDocument6 from docx.enum.text importWD_PARAGRAPH_ALIGNMENT7 from docx.shared importPt8 from docx.shared importInches9 from docx.oxml.ns importqn10 from win32com.client importDispatch, constants, gencache11 importos12 importtime13

14 #定义今日黄金价格

15 price = input("请输入今日黄金价格:")16 #定义今日日期

17 today = time.strftime("%Y{y}%m{m}%d{d}",time.localtime()).format(y='年',m='月',d='日')18 #定义客户列表

19 company_list = ['张三','李四','王五','赵六','许七']20

21

22 #开始循环列表,每循环一次创建一个word文档

23 for customer incompany_list:24 #开始创建word文档

25 document =Document()26 #定义文档初始格式

27 document.styles['Normal'].font.name = '微软雅黑'

28 document.styles['Normal'].font.size = Pt(12)29 #设置文档中文字体默认格式

30 document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),u'微软雅黑')31

32 #增加图片

33 document.add_picture('D:/Python代码素材/word自动化办公/banner.jpg', width=Inches(6))34

35 #向文档中增加第一自然段

36 p1 =document.add_paragraph()37 #设置第一自然段格式

38 p1.alignment =WD_PARAGRAPH_ALIGNMENT.CENTER39 #向第一自然段添加内容

40 run1 = p1.add_run('关于下达%s的价格通知' %today )41 #设置内容格式

42 run1.font.name = '黑体'

43 run1.font.size = Pt(25)44 run1.font.bold =True45 #设置中文字体格式

46 run1._element.rPr.rFonts.set(qn('w:eastAsia'),u'黑体')47

48 #设置第一自然段的段前段后距离

49 p1.space_after = Pt(5)50 p1.space_before = Pt(5)51

52 #增加第二自然段

53 p2 =document.add_paragraph()54 #设置第二自然段格式

55 p2.alignment =WD_PARAGRAPH_ALIGNMENT.LEFT56 #增加内容

57 run2 = p2.add_run('尊敬的:' + customer + ', 您好!')58 #设置内容格式

59 run2.font.name = '微软雅黑'

60 run2.font.size = Pt(18)61 run2.font.bold =True62 #设置中文字体格式

63 run2._element.rPr.rFonts.set(qn('w:eastAsia'),u'微软雅黑')64

65 #增加第三自然段

66 p3 =document.add_paragraph()67 #设置第三自然段对齐方式

68 p3.alignment =WD_PARAGRAPH_ALIGNMENT.LEFT69 #增加内容

70 run3 = p3.add_run('为提供优质客户服务,我公司现将%s的黄金价格通知如下!' %today)71 #设置格式

72 run3.font.name = '仿宋_GB2312'

73 run3.font.size = Pt(16)74 run3.font.bold =True75 #设置中文格式

76 run3._element.rPr.rFonts.set(qn('w:eastAsia'),u'仿宋_GB2312')77

78 #增加表格

79 table = document.add_table(rows=3,cols=3,style="Table Grid")80 #合并第一列的单元格

81 table.cell(0, 0).merge(table.cell(0, 2))82 #设置合并后的单元格的格式

83 table.cell(0, 0).paragraphs[0].alignment =WD_PARAGRAPH_ALIGNMENT.CENTER84 #向合并后的单元格内写入内容

85 table_run = table.cell(0, 0).paragraphs[0].add_run('关于下达%s的价格通知' %today)86 #设置字体

87 table_run.font.name = '隶书'

88 table_run.font.size = Pt(15)89 table_run.font.bold =True90 #设置中文字体格式

91 table_run._element.rPr.rFonts.set(qn('w:eastAsia'),u'隶书')92

93 #开始向其他单元格写入内容,设置每个单元格的文字内容居中

94 table.cell(1, 0).text = '日期'

95 table.cell(1, 0).paragraphs[0].alignment =WD_PARAGRAPH_ALIGNMENT.CENTER96 table.cell(1, 1).text = '价格'

97 table.cell(1, 1).paragraphs[0].alignment =WD_PARAGRAPH_ALIGNMENT.CENTER98 table.cell(1, 2).text = '备注'

99 table.cell(1, 2).paragraphs[0].alignment =WD_PARAGRAPH_ALIGNMENT.CENTER100

101 table.cell(2, 0).text =today102 table.cell(2, 0).paragraphs[0].alignment =WD_PARAGRAPH_ALIGNMENT.CENTER103 table.cell(2, 1).text =price104 table.cell(2, 1).paragraphs[0].alignment =WD_PARAGRAPH_ALIGNMENT.CENTER105 table.cell(2, 2).text = '这里是备注'

106 table.cell(2, 2).paragraphs[0].alignment =WD_PARAGRAPH_ALIGNMENT.CENTER107

108 #增加第四自然段

109 p4 =document.add_paragraph()110 #设置第四自然段靠右对齐

111 p4.alignment =WD_PARAGRAPH_ALIGNMENT.RIGHT112 #第四自然段增加内容

113 run4 = p4.add_run('(联系人:小刘 电话:18888888888)')114 #设置字体格式

115 run4.font.name = '幼圆'

116 run4.font.size = Pt(16)117 run4.font.bold =True118 #设置中文字体格式

119 run4._element.rPr.rFonts.set(qn('w:eastAsia'),u'幼圆')120

121 #增加分页符

122 document.add_page_break()123 #在分页后增加第五自然段

124 p5 =document.add_paragraph()125 #设置第五自然段对齐方式

126 p5.alignment =WD_PARAGRAPH_ALIGNMENT.CENTER127 #增加第五自然段内容

128 run5 =p5.add_run()129 run5.font.name = '方正舒体'

130 run5.font.size = Pt(30)131 run5.font.bold =True132 run5._element.rPr.rFonts.set(qn('w:eastAsia'),u'方正舒体')133

134 #判定要存储的文件是否存在,如果存在就删除

135 if os.path.exists('%s-%s-价格通知.docx' %(customer, today)):136 os.remove('%s-%s-价格通知.docx' %(customer, today))137 #休眠五秒以待代码完成

138 time.sleep(1)139

140 #保存文档

141 document.save('%s-%s-价格通知.docx' %(customer, today))142

143 #利用保存后的word文档转换PDF

144 #先找word文档位置

145 docx_path = '%s-%s-价格通知.docx' %(customer, today)146 #要保存pdf文件的位置

147 pdf_path = '%s-%s-价格通知.pdf' %(customer, today)148 #调用gencache指向office功能

149 gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}', 0, 8, 4)150 #调用word控件

151 wd = Dispatch('Word.Application')152 #以只读方式打开word文档

153 doc = wd.Documents.Open(docx_path, ReadOnly=1)154 #导出生成的pdf文档

155 doc.ExportAsFixedFormat(pdf_path, constants.wdExportFormatPDF, Item=wdExportDocumentWithMarkup,156 CreateBookmarks=constants.wdExportCreateHeadingBookmarks)157 wd.Quit(constants.wdDoNotSaveChanges)158 time.sleep(5)159 if os.path.exists('%s-%s-价格通知.docx' %(customer, today)):160 os.remove('%s-%s-价格通知.docx' %(customer, today))161

python自动办公 pdf_Python将word文档批量转PDF相关推荐

  1. 关于python:如何将Word文档批量转换为PDF文档

    Q:         我们在实际工作中很容易发现,有些时候我们需要将Word文档转换为PDF文档,如果只是一个文件,我们也只是需要通过Word提供的转换为PDF文档的功能就可以实现了.但是WPS需要收 ...

  2. 【WPS办公】将Word文档输出为PDF格式

    一.所用软件及操作系统 软件: WPS Office办公软件 操作系统: MacOS 13(Ventura) 二.转换步骤 1.使用WPS Office打开一个Word文档: 2.依次选择" ...

  3. Word文档批量转PDF

    最近学习到Word的一个新知识,很是强大.话不多说,现在就给给为观众老爷露上一手. 1.打开一个Word文档 2.按Alt+F11打开代码处理页面 点击ThisDocument打开编辑面板 输入以下代 ...

  4. python学习之word文档转换成pdf文档

    平时办公的时候总有word文档转换pdf的操作,关键wps等转换工具都还是收费的.这里利用python代码把多个word文档转换合并成pdf文档的实现.代码运行需要几个必要库,没有下载安装的小伙伴可以 ...

  5. Word处理控件Aspose.Words功能演示:在 Python 中比较两个 Word 文档

    在各种情况下执行 Word 文档的比较以确定差异.各种在线工具允许您比较 Word 文档,但是,您可能需要在应用程序中实现比较功能.为实现它,本文展示了如何在 Python 中比较两个 Word 文档 ...

  6. 【Python】导出docx格式Word文档中的文本、图片和附件等

    [Python]导出docx格式Word文档中的文本.图片和附件等 零.需求 为批量批改学生在机房提交的实验报告,我需要对所有的实验文档内容进行处理.需要批量提取Word文档中的图片和附件以便进一步检 ...

  7. python word排版_使用Python通过win32 COM实现Word文档的写入与保存方法

    通过win32 COM接口实现软件的操作本质上来看跟直接操作软件一致,这跟我之前经常用的通过各种扩展的组件或者库实现各种文件的处理有较大的差异.如果有过Windows下使用Word的经历,那么使用wi ...

  8. python实现生成word文档并转为pdf

    python实现生成word文档,格式转为pdf 使用的是python-docx模块,在生成word文档后转为pdf格式是使用的是docx2pdf中的convert(使用convert转换时,要先创建 ...

  9. 自定义maven插件:自动生成API的word文档

    继上次开发完Maven插件开发:根据库表生成实体类&根据实体类生成库表之后,博主对开发maven插件喜爱得一塌糊涂.这不,今天给大家带来了<自定义maven插件:自动生成API的word ...

最新文章

  1. ntdll.dll学习总结
  2. [知识图谱]利用py2neo从Neo4j数据库获取数据
  3. Qt Creator使用Clang代码模型解析C ++文件
  4. 手把手教你玩转ARP包(一)
  5. SAP 不同 ABAP 系统里同一 Customizing activity 的显示差异分析
  6. 连通图遍历策略之广度优先搜索(C语言)
  7. Python panads数据处理二
  8. 贴片电容的0.65T,0.8T,1.25T,2.5T是什么意思
  9. python程序可以在任何安装了解释器_Windows安装多个python解释器
  10. python数码管应用到物流_使用Python,实现程序运行计时的数码管表示
  11. 前端之JQuery:JQuery文档操作
  12. gatewayworker配置php,tp5整合GatewayWorker
  13. 阿里总裁马云对于第5个经济体技术有着独特的见解
  14. 手把手教你给电脑安装manjaroLinux操作系统
  15. UVA - 10105 Polynomial Coefficients
  16. 万兆网络传输速度测试_iperf测试万兆网卡tcp性能
  17. docker创建jenkins、jenkins配置邮件模板、jenkins升级、jenkins更改插件源
  18. 克劳士比语录(转载)
  19. 实验室方法检出限和定量限标准做法
  20. Python全栈之路---day01(背景、语法初识)

热门文章

  1. linux内核 list.h,Linux内核list.h链表分析
  2. springboot定时发送短信_SpringBoot第十七篇:定时任务
  3. python中的异常分类_列举 5 个 Python 中的异常类型以及其含义【面试题详解】
  4. CSS格式化、兼容及常用样式(switch开关记得收藏)
  5. 利用三层判断sql数据库中编码是否已经存在(个人拙作,不喜勿喷)
  6. 图数据库neo4j的安装与基本使用(一)
  7. Android多国语言文件夹命名方式
  8. ARM中汇编程序实例小笔记
  9. Linux下通过ODBC连接mysql orical sqlServer数据库
  10. python如何绘制蜘蛛图_python常见的十种可视化图库方法展示