• 利用pandoc将markdown转换为word文档


    pandoc可以完成多种文件类型的相互转换,支持的文件格式参见官方网站:https://pandoc.org/index.html。本博客参考了官方文档以及社区讨论,将介绍如何利用pandoc将markdown转换为word文档。


    基本使用

    1. Installing页面选择合适的版本下载

    2. 命令行运行基本参数

      • 使用参数-f FORMAT-t FORMAT指定源和目标文件格式;pandoc支持识别文档后缀,一般可以省略
      • 使用参数-o FILE指定输出文件
    3. 一个例子

      省略文件格式,使用命令pandoc 课程回顾与总结.md -o 课程回顾与总结.docx,得到的结果如下:

      课程回顾与总结.md 课程回顾与总结.docx

    修改word文档格式

    使用参数--reference-doc=FILE可以指定docx输出文件的格式参考对象,从而修改word文档的格式。

    1. 获取模板

      首先使用命令pandoc -o custom-reference.docx --print-default-data-file reference.docx拷贝一份默认的参考文件模板,取名为custom-reference.docx

    2. 修改模板样式

      用word打开custom-reference.docx,修改各部分对应样式。例如,将光标移动到Heading 2,找到对应的样式,右键进行修改:

      下图修改了Heading 1Heading 2,将字体修改为黑体,颜色修改为黑色:

      custom-reference.docx修改前 custom-reference.docx修改后

      如果要修改输出文件中的表格样式,直接给模板中的表格更换样式,不能达成效果。根据Github上的讨论得知,必须修改名为Table的表格样式,才能控制输出文件的表格样式。

    3. 再次转换文件

      使用命令pandoc 课程回顾与总结.md -o 课程回顾与总结.docx --reference-doc=custom-reference.docx,此次运行结果和之前对比如下,注意到一级标题和二级标题变成黑色:

      默认格式 修改格式后

    合并多个markdown文件,自动生成目录

    pandoc可以接受多个文件为输入,例如pandoc file1.md file2.md file3.md -o result.docx;另外有一些参数可以用于自动生成目录。

    1. 生成目录

      • 使用参数--toc自动生成目录

        同时可以修改格式参考文件中,TOC标题/TOCHeader的样式,选中段前分页,这样之后手动插入文档封面会比较方便。

      • 使用参数--toc-depth=NUMBER指定目录包含的标题深度

        如果每一篇markdown的文章标题都是一级标题,使用--toc-depth=1可以生成最简单的目录。

      • 使用参数--reference-doc=FILE指定格式参考文件,并给格式参考文件添加页码

        如此生成的文件也会有页码。

    2. 文件分页

      pandoc读入了多个文件,输出时各个文件的内容是连续的;希望每个文件能从新的一页开始,检索互联网得到两种解决方式:


    markdown预处理

    提前处理markdown源文件,或者根据结果修改markdown文件,以得到排版较好的word文件。

    1. 合理使用标题层次

      合并多篇markdown时,注意统一标题层次。

    2. 合理使用markdown语法

      例如,避免仅仅为了排版美观而使用引用语法;markdown引用在word文件中显示效果不同,错误使用可能会产生奇怪的效果。

    3. 注意缩进和空行

      使用缩进和空行以体现段落关系。观察下面两个结果:

      markdwon word
    4. 避免手动换行排版

      markdown中不要为了让每行文字数量相同而手动使用回车换行。

    5. 替换html标签(暂时没有找到支持的方式)

      如果使用了html表格/图片等,需要替换成相应的markdown语法。


    操作指南:汇总软工实践课程博客

    1. 下载群文件:文档封面和提前处理好的格式参考文件custom-reference.docx

      • 后者参考了福大毕业论文撰写规范,提前调整了部分格式
      • 后者仅修改了前四级标题格式;如果有需求,需要自行修改其他部分的格式
    2. 整理好历次作业的markdown文件

      • 参考markdown预处理中的内容修改源文件
      • 用作业的名字给每篇博客添加一级标题,用于生成目录,同时产生分页效果
    3. 在命令行运行pandoc hw1.md hw2.md hw3.md -o result.docx --reference-doc=custom-reference.docx --toc --toc-depth=1

      • 命令中markdown文件的名字、数量和顺序,以及输出文件的名字,根据自己的情况填充
    4. 核查所有内容是否正确显示;如果不是,调整markdown源文件,再次生成结果

    5. 根据实际情况,调整有问题的文字格式/图片/表格/代码段/列表缩进

    6. 修改目录标题Table of Contents目录

    7. 手动插入封面并填写相关信息

    8. 有必要时,调整页码(例如去除封面和目录部分的页码)


    总结

    个人感觉pandoc对于docx的格式控制是有限的。如果对word操作很熟练,使用pandoc的基本转换功能就可以,后续的格式/目录/页码都能够在word文档中完成。如果不熟悉word,或者希望pandoc提供一些便利,这篇博客的其他部分可以提供一些帮助。

  • 相关阅读:
    vue与react的区别
    for(key in obj)
    github上传项目
    第一个blog
    黑客几乎绝不用鼠标?
    中国白帽黑客调查
    编程新手六部曲
    程序猿看了要xiao了
    程序是如何执行的?
    IT 技术人需要思考的 15 个问题
  • 原文地址:https://www.cnblogs.com/kofyou/p/14932700.html
Copyright © 2020-2023  润新知