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