利用Python将word 2007的文档转为pdf文件
来源:互联网 发布:淘宝手机排行怎么看 编辑:程序博客网 时间:2024/04/30 03:05
在开发过程中,会遇到在命令行下将DOC文档(或者是其他Office文档)转换为PDF的要求。比如在项目中如果手册是DOC格式的,在项目发布时希望将其转换为PDF格式,并且保留DOC中的书签,链接等。将该过程整合到构建过程中就要求命令行下进行转换。
Michael Suodenjoki展示了使用Office的COM接口进行命令行下的转换。但其导出的PDF文档没有书签。在Office 2007 SP2中,微软加入了该功能,对应的接口是ExportAsFixedFormat。该方法不仅适用于Word,而且也适用于Excel。
面是一个简单的Python脚本来展示如何转换DOC为PDF。该脚本需要Office 2007 SP2, Python 2.6与Python for win32(使Python能调用COM)。这里也可以使用其他支持COM的语言。ExportAsFixedFormat还有其他一些参数,具体参见MSDN相关文档。需要注意的是文档路径需要为绝对路径,因为Word启动后当前路径不是调用脚本时的当前路径。
#-*- coding:utf-8 -*-# doc2pdf.py: python script to convert doc to pdf with bookmarks!# Requires Office 2007 SP2# Requires python for win32 extensionimport sys, osfrom win32com.client import Dispatch, constants, gencachedef doc2pdf(input, output): w = Dispatch("Word.Application") try: doc = w.Documents.Open(input, ReadOnly = 1) doc.ExportAsFixedFormat(output, constants.wdExportFormatPDF, Item = constants.wdExportDocumentWithMarkup, CreateBookmarks = constants.wdExportCreateHeadingBookmarks) return 0 except: return 1 finally: w.Quit(constants.wdDoNotSaveChanges)# Generate all the support we can.def GenerateSupport(): # enable python COM support for Word 2007 # this is generated by: makepy.py -i "Microsoft Word 12.0 Object Library" gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}', 0, 8, 4)def main(): if (len(sys.argv) == 2): input = sys.argv[1] output = os.path.splitext(input)[0]+'.pdf' elif (len(sys.argv) == 3): input = sys.argv[1] output = sys.argv[2] else: input = u'BA06007013.docx'#word文档的名称 output = u'BA06007013.pdf'#pdf文档的名称 if (not os.path.isabs(input)): input = os.path.abspath(input) if (not os.path.isabs(output)): output = os.path.abspath(output) try: GenerateSupport() rc = doc2pdf(input, output) return rc except: return -1if __name__=='__main__':rc = main()if rc:sys.exit(rc)sys.exit(0)
试一试,还真不错,比Adobe的软件效果还好!
- 利用Python将word 2007的文档转为pdf文件
- 如何将PDF转为可编辑的Word文档
- 怎么将word文档转为pdf
- OpenOffice 将word文档转为pdf再转为图片
- 将Word转为带书签的PDF
- 分享将pdf转为word的方法
- Python脚本利用openoffice将office文档转为html或者pdf。
- 将图片转为PDF文档的方法
- PHP 利用 Apache OpenOffice 将word、excel转为pdf
- 将PDF文件转换成可编辑的word文档
- 利用word将PDF转换DOC文件的方法
- 如何将PDF转为word
- 利用wxPython将word 文档转换为pdf文档
- word文档转为pdf格式的一些小窍门
- Python 将一个目录下的所有word文档转为txt
- 能将word转为pdf的转换软件
- 利用OpenOffice将word等office文档转换成PDF
- jdcob实现word转pdf时不能由ps文档转为pdf文档的问题
- hdoj 1757 A Simple Math Problem(转化为矩阵+矩阵乘法)
- 阮一峰:jQuery最佳实践
- jQuery性能优化的28个建议
- Android sdk安装
- 写给自己,写给项目经理转产品经理的人,呃,项目经理刚转产品经理的人
- 利用Python将word 2007的文档转为pdf文件
- The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local Machine 完美解决
- MediaWiki编辑工具
- [Erlang 学习笔记]ubuntu 11.10 搭建erlang环境
- oracle嵌套循环连接外部表和内部表的识别
- 如何使用Python 下载FTP的文件
- Nginx启动出错 error while loading shared libraries: libpcre.so.1
- C语言 用异或(^)交换2个数,不用其他变量
- cocos2d-x,CCMenu::initWithItems,无语啊