news 2026/6/23 23:12:14

python markdown转word【包括字体指定】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python markdown转word【包括字体指定】

文章目录

  • 一、代码示例
  • 二、效果图

一、代码示例

  • 下面代码是转微软雅黑的示例
fromioimportBytesIOimportmarkdownfrombs4importBeautifulSoupfromdocximportDocumentfromdocx.oxml.nsimportqnfromdocx.sharedimportPtdefmd_content_to_docx(md_text):"""将单个 Markdown 文件转换为 Word"""defset_run_font(run,qn_name='w:eastAsia',font_name="微软雅黑"):"""统一设置 Run 对象的字体"""run.font.name=font_name# 解决中文显示问题(Windows 系统)run.font.element.rPr.rFonts.set(qn(qn_name),font_name)html=markdown.markdown(md_text,extensions=['tables','fenced_code'])soup=BeautifulSoup(html,"html.parser")doc=Document()forelementinsoup.children:ifelement.name=="h1":heading=doc.add_heading(level=1)run=heading.add_run(element.get_text())set_run_font(run)elifelement.name=="h2":heading=doc.add_heading(level=2)run=heading.add_run(element.get_text())set_run_font(run)elifelement.name=="h3":heading=doc.add_heading(level=3)run=heading.add_run(element.get_text())set_run_font(run)elifelement.name=="p":para=doc.add_paragraph()run=para.add_run(element.get_text())set_run_font(run)elifelement.name=="ul":forliinelement.find_all("li"):para=doc.add_paragraph(style="List Bullet")run=para.add_run(li.get_text())set_run_font(run)elifelement.name=="ol":forliinelement.find_all("li"):para=doc.add_paragraph(style="List Number")run=para.add_run(li.get_text())set_run_font(run)elifelement.name=="pre":para=doc.add_paragraph()run=para.add_run(element.get_text())set_run_font(run)run.font.size=Pt(10)elifelement.name=="table":rows=element.find_all("tr")ifrows:cols=len(rows[0].find_all(["td","th"]))table=doc.add_table(rows=len(rows),cols=cols)table.style="Table Grid"fori,rowinenumerate(rows):cells=row.find_all(["td","th"])forjinrange(min(cols,len(cells))):cell=table.cell(i,j)cell_text=cells[j].get_text().strip()# 设置单元格字体para=cell.paragraphs[0]run=para.add_run(cell_text)set_run_font(run)# 表头加粗ifcells[j].name=="th":run.bold=Trueelse:text=getattr(element,"get_text",lambda:str(element))()iftext.strip():para=doc.add_paragraph()run=para.add_run(text.strip())set_run_font(run)doc_bytes=BytesIO()doc.save(doc_bytes)returndoc_bytes.getvalue()defget_test_md_content():return"""# 审计行业全景分析报告 ## 一、行业概述 ### 1.1 行业定义与核心价值 审计是指由独立第三方机构依据相关法律法规、会计准则和审计准则,对企业、事业单位及其他经济组织的财务报表、内部控制体系、经营活动合规性等进行审查、监督和评价的专业服务活动。 核心价值体现在: - 提升财务信息透明度与可信度,保护投资者、债权人等利益相关方权益 - 监督企业合规经营,防范财务舞弊与风险 - 为企业优化内部控制、提升管理效率提供专业建议 ### 1.2 行业发展历程 | 发展阶段 | 时间区间 | 核心特征 | 关键事件 | |----------|----------|----------|----------| | 起步阶段 | 1980-2000 年 | 恢复重建审计制度,以国营企业审计为主 | 1983 年成立国家审计署;1993 年注册会计师制度正式实施 | | 快速发展阶段 | 2001-2010 年 | 资本市场推动行业扩张,外资所进入中国市场 | 2001 年安然事件引发审计监管强化;2007 年新会计准则实施 | | 规范发展阶段 | 2011-2020 年 | 监管趋严,行业集中度提升,本土所崛起 | 2012 年会计师事务所 “脱钩改制” 完成;2016 年证监会强化审计执法 | | 高质量发展阶段 | 2021 年至今 | 数字化转型加速,ESG 审计兴起,全球监管协同 | 2023 年《注册会计师行业发展规划(2021-2025 年)》落地;ESG 信息披露强制化 | ## 二、行业分类与业务范围 ### 2.1 按审计主体分类 #### 2.1.1 政府审计 - 执行主体:国家审计署及地方各级审计机关 - 审计对象:各级政府部门、事业单位、国有企业、重点建设项目 - 核心职能:监督财政收支、财务收支的真实性、合法性和效益性 - 典型业务:预算执行审计、政策落实跟踪审计、领导干部经济责任审计 #### 2.1.2 内部审计 - 执行主体:企业 / 组织内部审计部门或岗位 - 审计对象:内部管理制度、业务流程、风险控制体系、部门绩效 - 核心职能:优化内部控制、防范运营风险、提升组织效率 - 典型业务:流程合规审计、风险管理审计、专项业务审计(如采购审计) #### 2.1.3 社会审计(注册会计师审计) - 执行主体:会计师事务所(内资所、外资所) - 审计对象:上市公司、非上市企业、社会组织等 - 核心职能:提供独立审计报告,满足外部信息披露需求 - 典型业务:财务报表审计、IPO 审计、并购重组审计、税务审计 ## 三、行业产业链与市场格局 ### 3.1 产业链结构 #### 3.1.1 上游环节 - 监管机构:财政部、审计署、证监会、中注协等(制定规则、监督管理) - 专业支持:会计准则制定机构、审计准则委员会、软件服务商(审计工具、数据分析工具) - 人才供给:高等院校(会计、审计专业)、职业培训机构(CPA、CIA 等认证) #### 3.1.2 中游环节 - 核心主体:会计师事务所(头部所、区域所、小型所)、内部审计部门、政府审计机关 - 服务模式:线下审计 + 数字化审计融合,远程审计逐步普及 #### 3.1.3 下游环节 - 主要需求方:上市公司、国有企业、民营企业、政府部门、金融机构、投资者 - 需求驱动因素:法律法规要求、资本市场信息披露需求、风险管理需求 ### 3.2 市场格局分析 #### 3.2.1 竞争梯队 | 梯队 | 代表机构 | 市场特征 | 市场份额(2024 年) | |------|----------|----------|--------------------| | 第一梯队 | 四大会计师事务所(普华永道、德勤、安永、毕马威) | 国际化布局,服务大型企业及上市公司,品牌优势显著 | 35% | | 第二梯队 | 本土头部所(立信、天健、信永中和、大华等) | 国内网络完善,服务中小企业及地方国企,政策支持力度大 | 40% | | 第三梯队 | 区域型会计师事务所 | 聚焦特定区域或细分领域,服务小微企业,规模较小 | 20% | | 第四梯队 | 小型事务所及个体执业者 | 提供基础审计及税务服务,业务单一 | 5% | #### 3.2.2 区域分布特征 - 一线城市(北京、上海、深圳、广州):集中了 60% 以上的头部事务所及高端审计业务,金融、科技行业审计需求突出 - 新一线城市(杭州、成都、武汉等):本土事务所区域总部聚集地,制造业、服务业审计需求旺盛 - 三四线城市:以小型事务所为主,主要服务本地中小企业及政府部门委托业务 """if__name__=='__main__':withopen("test.docx","wb")asf:f.write(md_content_to_docx(get_test_md_content()))

二、效果图

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 1:38:13

设备频繁掉线怎么办,一文搞懂Open-AutoGLM连接优化的8个关键步骤

第一章:Open-AutoGLM设备连接管理概述在现代智能硬件系统中,Open-AutoGLM作为一款支持多模态交互的开源框架,其设备连接管理机制是保障稳定通信与高效数据交换的核心模块。该模块负责协调主机与终端设备之间的连接建立、状态监控、异常恢复及…

作者头像 李华
网站建设 2026/6/23 17:06:17

【稀缺资料】Open-AutoGLM接口调用延迟降低95%的完整技术路径

第一章:Open-AutoGLM接口调用效率提升的背景与意义在大模型应用快速发展的背景下,Open-AutoGLM作为支持自动化任务生成与执行的核心接口,其调用效率直接影响系统的响应速度与用户体验。随着业务场景复杂度上升,频繁的远程调用、高…

作者头像 李华
网站建设 2026/6/23 12:24:12

版本冲突频发?Open-AutoGLM智能合并策略让协作开发效率翻倍

第一章:版本冲突频发?Open-AutoGLM智能合并策略让协作开发效率翻倍在多开发者并行开发的现代软件项目中,Git版本冲突成为制约迭代速度的主要瓶颈。Open-AutoGLM通过引入基于语义理解的智能合并引擎,显著降低人工干预成本&#xff…

作者头像 李华
网站建设 2026/6/23 21:48:42

Linly-Talker在潜水探险中的装备使用说明

Linly-Talker在潜水探险中的装备使用说明引言 在远洋科考船的甲板上,风浪未息,潜水员正紧张地检查装备。此时,指挥中心的大屏亮起——一位面容沉稳的“虚拟安全官”开始播报今日下潜的关键参数:最大深度32米、停留时间18分钟、气体…

作者头像 李华
网站建设 2026/6/23 22:37:15

Linly-Talker在有声书朗读中的章节过渡处理

Linly-Talker在有声书朗读中的章节过渡处理 在数字阅读愈发普及的今天,越来越多用户选择“听书”来替代传统阅读。但你是否曾因有声书中突兀的章节切换而分神?前一秒还在紧张追捕,下一秒却直接跳入新场景,毫无铺垫——这种断裂感正…

作者头像 李华
网站建设 2026/6/23 22:36:40

Linly-Talker在桥牌叫牌体系教学中的逻辑演绎

Linly-Talker在桥牌叫牌体系教学中的逻辑演绎 在一场高水平的桥牌比赛中,南家开叫1♠,北家跳叫4♠——这个看似简单的叫品背后,可能隐藏着“牺牲叫”的战术决策、对将牌配合的精准判断,甚至是心理博弈的试探。但对于初学者而言&am…

作者头像 李华