使用pypandoc将Markdown转为docx时如何设置局部内容字体大小
问题原因
你使用的HTML <font> 标签不生效,是因为pandoc转换Markdown到docx格式时,默认不会将HTML font标签的样式映射为docx的原生字体格式属性,因此该方法无效。
可行解决方案(生成的docx无兼容问题,可在任意设备正常打开)
推荐使用docx参考模板+自定义样式标记的方案,操作如下:
- 生成pandoc默认的docx参考模板
执行命令导出默认模板文件:pandoc -o custom-reference.docx --print-default-data-file reference.docx - 自定义模板样式
打开生成的custom-reference.docx,在Word的样式面板中新建自定义样式,例如命名为小字号表格,设置你需要的字体大小(如10号/小五),保存模板文件。 - 标记Markdown中需要调整字号的内容
用pandoc支持的围栏div语法包裹目标表格,指定自定义样式类:::: {custom-style="小字号表格"} | 表头1 | 表头2 | | ---- | ---- | | 内容1 | 内容2 | | 内容3 | 内容4 | ::: - 修改pypandoc调用代码,指定参考模板
调用时添加extra_args参数传入参考模板配置:pypandoc.convert_file( 'file.md', 'docx', outputfile="file.docx", extra_args=['--reference-doc', 'custom-reference.docx'] )
方案说明
该方案使用docx原生的自定义样式功能,所有样式配置都会直接嵌入最终生成的docx文件中,不需要依赖任何外部资源,在任意支持docx格式的设备上打开都能正常显示你设置的字体大小。
内容的提问来源于stack exchange,提问作者Will
相关产品推荐
相关产品推荐

