c 调用openoffice word转pdf_批量 Word 转 PDF 方法
生活随笔
收集整理的這篇文章主要介紹了
c 调用openoffice word转pdf_批量 Word 转 PDF 方法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
-?START?-手上有近百個(gè) Word 文檔需要轉(zhuǎn)為 PDF, 怎么辦?難道要一個(gè)一個(gè)的導(dǎo)出嗎?確實(shí),Office2010 以后版本的 Word 可以直接導(dǎo)出 PDF,是時(shí)候讓 Python 來(lái)替我們干這個(gè)重復(fù)性的活了!直接上代碼:from win32com.client import Dispatch,constants,gencacheimport timeimport os
path = os.getcwd()
start_time = time.time()
files = os.listdir(path)
gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}',0,8,4)
wd = Dispatch('Word.Application')for file in files:if file.split('.')[-1] in ['docx','doc']:
word_path = path + '\\'+ file
file_list = (file.split('.')[-2::-1])[::-1]
pdf_file = "".join(file_list)
pdf_path = path + '\\'+ pdf_file + '.pdf'
print('正在轉(zhuǎn)換:')
print('《{}》'.format(file))
doc = wd.Documents.Open(word_path,ReadOnly=1)
doc.ExportAsFixedFormat(pdf_path,constants.wdExportFormatPDF,Item=constants.wdExportDocumentWithMarkup,CreateBookmarks=constants.wdExportCreateHeadingBookmarks)
print('上述文件轉(zhuǎn)換完成!')
print('')
wd.Quit(constants.wdDoNotSaveChanges)
end_time = time.time()
print("該文件夾下的Word文件已轉(zhuǎn)為PDF,用時(shí):{:.2f}秒!".format(z,end_time-start_time))
time.sleep(5)
path = os.getcwd()
files = os.listdir(path)
file_list = (file.split('.')[-2::-1])[::-1]
pdf_file = "".join(file_list)
pdf_path = path + '\\'+ pdf_file + '.pdf'(file.split('.')[-2::-1]):按照逆序,取出除了后綴名稱外的內(nèi)容。 (file.split('.')[-2::-1])[::-1]:轉(zhuǎn)為正序,即正常的文件名稱。 pdf_file = "".join(file_list):將列表拼接成一個(gè)字符串。 pdf_path = path + '\\'+ pdf_file + '.pdf':最后給文件名稱加上.pdf的后綴。 這樣就完成了 Word、PDF 的路徑計(jì)算。
wd = Dispatch('Word.Application')#啟用 Word
doc = wd.Documents.Open(word_path,ReadOnly=1)# 只讀方式打開(kāi) Word 文檔
wd.Quit(constants.wdDoNotSaveChanges)# 關(guān)閉 Word關(guān)鍵操作就是下面這行代碼,它定義了按特定格式導(dǎo)出的參數(shù),模擬人工操作。doc.ExportAsFixedFormat(pdf_path,constants.wdExportFormatPDF,Item=constants.wdExportDocumentWithMarkup,CreateBookmarks=constants.wdExportCreateHeadingBookmarks)-?END -
「??創(chuàng)造真正有價(jià)值的內(nèi)容??」今天也是分享知識(shí)快樂(lè)的一天評(píng)論區(qū)等你!點(diǎn)個(gè)「三連=留言+在看+點(diǎn)贊」
path = os.getcwd()
start_time = time.time()
files = os.listdir(path)
gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}',0,8,4)
wd = Dispatch('Word.Application')for file in files:if file.split('.')[-1] in ['docx','doc']:
word_path = path + '\\'+ file
file_list = (file.split('.')[-2::-1])[::-1]
pdf_file = "".join(file_list)
pdf_path = path + '\\'+ pdf_file + '.pdf'
print('正在轉(zhuǎn)換:')
print('《{}》'.format(file))
doc = wd.Documents.Open(word_path,ReadOnly=1)
doc.ExportAsFixedFormat(pdf_path,constants.wdExportFormatPDF,Item=constants.wdExportDocumentWithMarkup,CreateBookmarks=constants.wdExportCreateHeadingBookmarks)
print('上述文件轉(zhuǎn)換完成!')
print('')
wd.Quit(constants.wdDoNotSaveChanges)
end_time = time.time()
print("該文件夾下的Word文件已轉(zhuǎn)為PDF,用時(shí):{:.2f}秒!".format(z,end_time-start_time))
time.sleep(5)
?代碼解釋?
這個(gè)程序可以操作任意文件夾,不受文件夾所在位置的影響。只需要將它丟在需要轉(zhuǎn)換的 Word 文件文件夾里,它就可以讀取出所在文件夾下所有的 Word 文件,并進(jìn)行轉(zhuǎn)換。主要用到了下面幾個(gè)方法:1、獲取任意文件夾下文件名稱
import ospath = os.getcwd()
files = os.listdir(path)
- os.getcwd() :獲取程序所在文件的路徑,結(jié)果存入 path 中;
- os.listdir():獲取 path 路徑下的所有文件名稱,結(jié)果存入 files 中。
2、篩選出 Word 文件
for file in files:if file.split('.')[-1] in ['docx','doc']:使用字符串的split函數(shù),用.號(hào)將文件名稱分割。file.split('.')[-1]:將 Word 文件的名稱以.號(hào)分割,形成一個(gè)列表,取出這個(gè)列表的最后一項(xiàng)(即 Word 文件后綴名稱),判斷其是不是docx或doc,如果是,則說(shuō)明是 Word 文件,則生成兩個(gè)路徑:3、計(jì)算出 Word、PDF 的路徑
word_path = path + '\\'+ filefile_list = (file.split('.')[-2::-1])[::-1]
pdf_file = "".join(file_list)
pdf_path = path + '\\'+ pdf_file + '.pdf'
- word_path:Word 文件路徑,用來(lái)告訴程序打開(kāi)哪一個(gè) Word 文件;
- pdf_path:PDF 文件路徑,用來(lái)告訴程序,轉(zhuǎn)換后的 PDF 文件名稱和存儲(chǔ)路徑。
4、調(diào)用 Word 功能
下面這些代碼的功能是調(diào)用 Word 程序:gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}',0,8,4)# 這是指向注冊(cè)表的鍵,我們要調(diào)用它。wd = Dispatch('Word.Application')#啟用 Word
doc = wd.Documents.Open(word_path,ReadOnly=1)# 只讀方式打開(kāi) Word 文檔
wd.Quit(constants.wdDoNotSaveChanges)# 關(guān)閉 Word關(guān)鍵操作就是下面這行代碼,它定義了按特定格式導(dǎo)出的參數(shù),模擬人工操作。doc.ExportAsFixedFormat(pdf_path,constants.wdExportFormatPDF,Item=constants.wdExportDocumentWithMarkup,CreateBookmarks=constants.wdExportCreateHeadingBookmarks)-?END -
「??創(chuàng)造真正有價(jià)值的內(nèi)容??」今天也是分享知識(shí)快樂(lè)的一天評(píng)論區(qū)等你!點(diǎn)個(gè)「三連=留言+在看+點(diǎn)贊」
總結(jié)
以上是生活随笔為你收集整理的c 调用openoffice word转pdf_批量 Word 转 PDF 方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 成都大熊猫基地买票分上午下午吗
- 下一篇: 输卵管切除还能接上吗