import os,time from docx import Document from docxcompose.composer import Composer import win32com.client as win32 # 获取要处理的文件夹路径 folder_path = r"C:\Users\Thinkpad\Desktop\wordoutput" datanames = os.listdir(folder_path) list_wordoutname = [] for i in datanames: # 获取文件名称中日期 list_wordoutname.append(folder_path+"\\"+i) print(list_wordoutname) #以下函数用于合并指定文件夹中所有word文件 # 创建新的空白Word文档 merged_doc = Document() def HB_wordwj(files, final_docx): new_document = Document() composer = Composer(new_document) for fn in files: composer.append(Document(fn)) composer.save(final_docx) # 保存合并后的文档 desktop_path = os.path.expanduser("~\Desktop") #获取当前桌面路径 merged_file_name = desktop_path+"\\"+"合并输出文件.docx" print(merged_file_name) HB_wordwj(list_wordoutname,merged_file_name) print("已将文件夹中的所有Word文件合并为", merged_file_name) #------以下程序用于执行word中宏程序,用于调整合并插入的图片大小--------------------- # 创建 Word 应用程序对象 word = win32.gencache.EnsureDispatch('Word.Application') # 打开文件 doc = word.Documents.Open(merged_file_name) try: # 运行宏 doc.Application.Run("setpicsize") finally: # 关闭文件并退出 Word 应用程序 doc.Close() word.Quit()
注:setpicsize宏文件先要放如word中的视图-宏中,宏文件代码如下
Sub setpicsize()
Dim n
On Error Resume Next
For n = 1 To ActiveDocument.InlineShapes.Count
ActiveDocument.InlineShapes(n).Height = 27.31 * 20
ActiveDocument.InlineShapes(n).Width = 19.33 * 20
Next n
End Sub
?