【办公类-22-15】周计划系列(5-6)“周计划-06 周计划打印pdf(docx删除内容转PDF)“ (2024年调整版本)
作品展示
背景需求:
前期用docx(删除第一页反思部分内容)转PDF转png(第一页)的方式获得上传网页用的图片。
【办公类-22-14】周计划系列(5-5)“周计划-05 上传周计划png(docx转PDF转png)“ (2024年调整版本)-CSDN博客文章浏览阅读600次,点赞11次,收藏9次。【办公类-22-14】周计划系列(5-5)“周计划-05 上传周计划png(docx转PDF转png)“ (2024年调整版本)https://blog.csdn.net/reasonsummer/article/details/136660866
去年我用转成了png图片打印的周计划,感觉打印出来的图片会比直接用docx打印的内容模糊一点、字体小一点。
所以今年我想试试 在docx内将第一页反思删除、第2-5页内容删除。然后将docx转成PDF,再合并,打印出来看看这种docx转成PDF直接转的方法下,文字是否会更清晰一点。
素材准备:
第一张表的反思部分不要,第2-4页内容删光
代码展示:
'''周计划第一页的合并打印(docx删除第1页反思,删除第2-4页所有内容,转为PDF,19份PDF合并打印PDF) 作者:阿夏: 时间:2024年3月18日 ''' # 19个docx合并成一个PDF,便于打印 import os from docx2pdf import convert from PyPDF2 import PdfMerger from docx import Document path=r'D:\test\02办公类\91周计划4份_2024年中4班\04 周计划' old=path+r'\06加粗测试' new=path+r'\08docx合并pdf' new_ls=new+r'\零时文件夹' # 检查文件夹是否存在 if not os.path.exists(new_ls): # 如果文件夹不存在,则新建文件夹 os.makedirs(new_ls) # 获取docx文件列表 docx_files = os.listdir(old) docx_files = [f for f in docx_files if f.lower().endswith('.docx')] docx_files = docx_files[:] # 只处理前10个docx文件 # 处理.docx文件 import time from docx import Document from docx.shared import Pt from docx.enum.section import WD_ORIENT from docx.shared import Cm print('--------1、遍历把周计划docx删掉反思内容,另存到jpg上传文件夹---------') folder_path = old for file_name in os.listdir(folder_path): print(file_name) if file_name.endswith('.docx'): file_path = os.path.join(folder_path, file_name) doc = Document(file_path) # 删除第0张表格里反思格子里的内容 table = doc.tables[0] # 假设第一页只有一个表格 cell = table.cell(1, 8) # 获取第1行第8列的单元格 cell.text = '' # 清空单元格内容 # 找到第一个分节符(分页符)后的位置 start_index = 3 # 第1、2行 第3行内容保留(都是第一页上的段落文字 for i, paragraph in enumerate(doc.paragraphs): if paragraph.runs: if paragraph.runs[0].text == '\x0c': # 分页符的Unicode码为'\x0c' start_index = i + 1 break # 删除第一个分节符后的段落,标题日期,这是教案表格还在的 for i in range(start_index, len(doc.paragraphs)): for run in doc.paragraphs[i].runs: run.text = '' # 删除教案表格2-5。删除后会有4个空行 tables = doc.tables[1:] # 表格0是周计划,1-3是教案表格,需要删除 for table in tables: table._element.getparent().remove(table._element) # 删除表格后,会有4个段落空行,把空行删除 for paragraph in doc.paragraphs: if not paragraph.text.strip(): # 如果段落是空行 # 删除空行 p = paragraph._element p.getparent().remove(p) # 这是只有一页周计划了,但是显示是竖版的,需要改成横版 section = doc.sections[0] # 设置页面方向为横版 section.orientation = WD_ORIENT.LANDSCAPE # 设置页面的宽度和高度 section.page_width = Cm(29.7) # 设置页面宽度,842磅为A4纸宽度 section.page_height =Cm(21.0) # 设置页面高度,595磅为A4纸高度 # 设置页面边距为上下左右各1厘米 section.top_margin = Cm(1) section.bottom_margin = Cm(1) section.left_margin = Cm(1) section.right_margin = Cm(1) # 保存新的Word文档 doc.save(new_ls+r'\{}'.format(file_name)) time.sleep(1) # # 将零时文件夹docx文件转换为PDF pdf_files = [] for ls_name in os.listdir(new_ls): print(ls_name) if ls_name.endswith('.docx'):# docx_path = os.path.join(new_ls, ls_name) pdf_file = ls_name[:-5] + '.pdf' pdf_path = os.path.join(new_ls, pdf_file) convert(docx_path, pdf_path) time.sleep(1) pdf_files.append(pdf_path) # 合并PDF文件 merger = PdfMerger() for pdf_file in pdf_files: merger.append(pdf_file) # 保存合并后的PDF文件 output_file = os.path.join(new, '(打印)2024年2月周计划合并版.pdf') merger.write(output_file) merger.close() print('合并完毕,结果保存在{}'.format(output_file)) import shutil # 删除临时文件夹 shutil.rmtree(new_ls)
作品展示:
一共19周的周计划第一页
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。