帮我解决一下word文档合并问题,文档是带有图片及特殊格式的,我用以下代码执行时,只有第一个文档是完整的,后面的文档都全在一起了,特别是图片都叠在一起了.
我需要的是合并"订单文件"夹下的所有docx文档为一个文档,该文件夹下的文档也是生成的数量不确定,文档有长有短.需要保留所有格式及图片,合并时是以新页面合并,不是在挤在一个页面上的.
示例文件:https://www.alipan.com/s/Bj559apBTee
import os
from docx import Document
from docxcompose.composer import Composer
# 设置路径
original_docx_path = '订单文件' # 需要合并文件夹
new_docx_path = '新文档.docx' # 合并后的文件
# 列出目录中的所有 .docx 文件
all_word_files = [f for f in os.listdir(original_docx_path) if f.endswith('.docx')]
# 确保有文件可以处理
if not all_word_files:
raise FileNotFoundError("在指定目录中未找到 .docx 文件。")
# 为每个文件创建完整路径
all_file_paths = [os.path.join(original_docx_path, file_name) for file_name in all_word_files]
# 初始化主文档
master = Document(all_file_paths[0])
composer = Composer(master)
# 合并其他文档
for i, file_path in enumerate(all_file_paths[1:], start=1):
try:
word_document = Document(file_path)
word_document.add_page_break()
# 追加文档
composer.append(word_document)
except KeyError as e:
print(f"合并文档时出错:{file_path} - {e}")
continue
# 保存合并后的文档
composer.save(new_docx_path)