【办公类-21-01】20240117育婴师操作题word合并1.0

文章讲述了学校老师在学习育婴员课程过程中遇到的问题,需将不同格式的Word文档(doc和docx)转换为docx并合并,过程中遇到字体格式丢失问题,以及后续计划改进格式保留和自动化转换PDF的需求。
摘要由CSDN通过智能技术生成

背景需求:

最近学校组织老师们学习“育婴员”高级,每周学习2题操作,所以我是把每个学习内容单独做在一个word文件里

d3039bfb03bc4148b21aaf657cdb0f02.png

上周8套保健操作学完了,需要整理,并将8份Word文件合并

7960bf7caa7d4b5b808208ed5f3d83e4.png

第一步:doc装docx

合并时程序报错,我才发现这8份里面有的是docx,有的是doc,所以需要全部转成docx

6184b55b35954cf8bdced08f60131859.png

'''doc转docx'''

import os
from win32com import client as wc
import time
#  注意:目录的格式必须写成双反斜杠
path="C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\育婴师操作题目\\"  # 使用绝对地址(可更改)
files=[]
for file in os.listdir(path):
    # 找出文件中以.doc结尾并且不以~$开头的文件(~$是为了排除临时文件)
    if file.endswith('.doc') and not file.startswith('~$'): 
        files.append(path+file)
        for file in files:
            word = wc.Dispatch("Word.Application")
            print("已处理文件:"+files[0])
            # 打开文件
            doc = word.Documents.Open(files[0])
            # 将文件另存为.docx
            doc.SaveAs("{}x".format(files[0]), 12)    # 12表示docx格式
            doc.Close()
            # 删除原doc文件
            os.remove(files[0])
            # 在files数组中删除第一个文件地址(已处理的文件地址)
            del files[0]
            word.Quit()
            time.sleep(0.5) # 暂停0.5秒

26653ba28a70448a81141b845ab018a3.png

第二步,word合并在一起

问了AI对话大师找了很多代码,测试很多次,发现合并后,原来每个word里面的红蓝字体都消失了……

现在是最后的结果

1、获取8份文件的路径

132912579bf94f479203cea927f585c7.png

2d420d90da6540d1a95f6ac70236e6f1.png

2、读取第一份01酒精擦浴,作为模板

be03f2d526da43eeaa1f9a53677a92d0.png

然后把第2-8个文件内容复制到酒精擦浴内容的的后面

fc00c9380f1a4f97a048f29c4e281ae6.png

第3步:由于每份的字体、间距不同,所以最后合并版里面也需要整理统一格式

00a787dffe1849e7b7407bd4dbb2a997.png

fd9ff4509c424549a341f89936610334.png

结果展示:

389299f3cade457091ded4cd1149f32f.png

5f7c7e7ae46c46e485e0e0b10e101c4a.png

6d525cadfde044c792583958869ea4d4.png

代码展示:

'''

目的:1.0育婴师操作题8套Word合并在一起,便于打印整理.
作者:阿夏(AI对话大师)
日期:2024年1月17日


'''

from docx import Document
import os
from docx.enum.text import WD_BREAK# 换页符号
from docx.enum.section import WD_SECTION
from docx.shared import Pt,Inches, Cm

# 指定要读取的文件夹路径
folder_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\育婴师操作题目'
# 获取文件夹内所有文件名
file_names = os.listdir(folder_path)
# 拼接文件路径
doc_paths = [os.path.join(folder_path, file_name) for file_name in file_names]
# ['C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\育婴师操作题目\\01酒精擦浴 - 副本.docx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\育婴师操作题目\\01酒精擦浴.docx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\育婴师操作题目\\02小儿发高热置冰袋降温.docx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\育婴师操作题目\\03小儿在喂食时突然惊厥如何处理.docx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\育婴师操作题目\\04怎样做晨检,怎样问简单病史,怎样处理.docx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\育婴师操作题目\\05咽喉和气管异物急救方法.docx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\育婴师操作题目\\06下肢股骨骨折的包扎.docx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\育婴师操作题目\\07心脏按摩和人工呼吸操作.docx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\育婴师操作题目\\08休克的急救处理程序.docx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\育婴师操作题目\\模板.docx']



# 打开一个新的文档
merged_doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\育婴师操作题目\01酒精擦浴.docx')

# 要复制的多个Word文件列表
file_list = doc_paths

for file in file_list[1:]:
    doc = Document(file)
    # # 在每个文件内容之前插入分页符号
    # if merged_doc.paragraphs: 
    #     merged_doc.add_paragraph().add_run().add_break(WD_BREAK.PAGE)
    
    
    # 复制文件的内容和格式到合并文档
    for element in doc.element.body:        
        merged_doc.element.body.append(element)

merged_doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\育婴师操作题目\20240117育婴师三级保健操作题8道(需要彩色打印).docx')

gs_doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\育婴师操作题目\20240117育婴师三级保健操作题8道(需要彩色打印).docx')
# 遍历文档中的所有段落和运行
for paragraph in gs_doc .paragraphs:
    for run in paragraph.runs:
        # 将字体改为宋体,字号改为20磅
        run.font.name = '宋体'
        run.font.size = Pt(12)
        paragraph.paragraph_format.line_spacing = Pt(24)

#             # 设置整个文档的页边距为1英寸
# section = gs_doc.sections[0]
# section.left_margin = Cm(1)
# section.right_margin =Cm(1)
# section.top_margin = Cm(1)
# section.bottom_margin = Cm(1)
gs_doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\育婴师操作题目\20240117育婴师三级保健操作题8道(需要彩色打印).docx')



问题:

1、字体、字体大小、行距可以用代码设置,

2、但是页边距、分页符还是手动调整的。不方便。

3、手动另存为pdf

067f948585d94ceaa770eff5d6269125.png

后续继续探索Word合并的格式保留问题、自动格式,自动转pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值