有时候因为公文过多,存在数据库中总比存为word文档比较好,通过查询数据库再导出为word或者是用git来管理。pandoc可以把md转为word。
使用
下载后,把解压的文件夹添加到环境变量,在要转换的md文件中执行pandoc -s aa.md -o aa.docx
,就可以了。但是这样转换出来的文本,格式不怎么好看,通过查看官方文档,可以先导出模板pandoc -o custom-reference.docx --print-default-data-file reference.docx
,再修改模板格式,然后利用模板的格式来输出pandoc --reference-doc custom-reference.docx readme.md -o test.docx
- 模板的修改部分,可看官方文档的
--reference-doc
部分 - yaml头部格式
---
title: 标题测试文件
author:
- Author One
- Author Two
keywords: [nothing, nothingness]
---
常见格式
- 在yaml中可以配制文章标题,作者等信息,但是要特别注意的是,yml配置文件遇到“:”或者“-”后面必须留一个空格!这是很难被发现的错误。在转换的时候,如果遇到指定的行报错,八成就是这个问题了
- 设置段落缩进,以wps为例,在模板中,框选正文文本,之后设置正文文本样式
在段落中修改首行缩进
- 修改表格样式,需要点击
找到
其它问题
- 中文乱码问题,大多与字体有关
- 表格不能100%宽度的问题,利用python-docx等包,在转换最后,遍历修改表格宽度为100%即可
docx.getTables().forEach(tbl -> { tbl.setWidthType(TableWidthType.PCT); tbl.setWidth("100%"); });
总结
实际使用下,pandoc对md样式的处理还是有限的,但足够用,可以配合python-docx,实现更多功能