python實現(xiàn)word 2007文檔轉(zhuǎn)換為pdf文件
在開發(fā)過程中,會遇到在命令行下將DOC文檔(或者是其他Office文檔)轉(zhuǎn)換為PDF的要求。比如在項目中如果手冊是DOC格式的,在項目發(fā)布時希望將其轉(zhuǎn)換為PDF格式,并且保留DOC中的書簽,鏈接等。將該過程整合到構(gòu)建過程中就要求命令行下進行轉(zhuǎn)換。
Michael Suodenjoki展示了使用Office的COM接口進行命令行下的轉(zhuǎn)換。但其導出的PDF文檔沒有書簽。在Office 2007 SP2中,微軟加入了該功能,對應(yīng)的接口是ExportAsFixedFormat。該方法不僅適用于Word,而且也適用于Excel。
一個簡單的Python腳本來展示如何轉(zhuǎn)換DOC為PDF。該腳本需要Office 2007 SP2, Python 2.6與Python for win32(使Python能調(diào)用COM)。這里也可以使用其他支持COM的語言。ExportAsFixedFormat還有其他一些參數(shù),具體參見MSDN相關(guān)文檔。需要注意的是文檔路徑需要為絕對路徑,因為Word啟動后當前路徑不是調(diào)用腳本時的當前路徑。
#-*- coding:utf-8 -*- # doc2pdf.py: python script to convert doc to pdf with bookmarks! # Requires Office 2007 SP2 # Requires python for win32 extension import sys, os from win32com.client import Dispatch, constants, gencache def 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 -1 if __name__=='__main__': rc = main() if rc: sys.exit(rc) sys.exit(0)
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Visual Studio code 配置Python開發(fā)環(huán)境
這篇文章主要介紹了Visual Studio code 配置Python開發(fā)環(huán)境,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09Windows系統(tǒng)中將Python添加到系統(tǒng)環(huán)境詳細圖文教程
當在命令行使用python或pip指令時,可能會遇到pip不是內(nèi)部命令的報錯,這通常是因為在安裝Python時未將其添加至系統(tǒng)環(huán)境變量,或者有多個Python環(huán)境導致路徑不一致,文中將解決辦法介紹的非常詳細,需要的朋友可以參考下2024-10-10