pandoc插件导出word格式 正确识别本地图片

pandoc插件可以把OB的md格式导出各种格式,比如Office格式。
当导出docx格式时,本地插入的图片有时无法正确显示,有时却可以正确导出并显示。下面通过一系列实验,找出规律并进行总结,给在这方面有困惑的人参考。

插件安装并配置

首先正确安装并设置pandoc插件,这点无需多说,只说重点几个点

  1. pandoc需要下载客户端并安装,安装后在ob的pandoc插件中指定安装路径

    如图,指定是C:\Program Files\Pandoc\pandoc.exe
    2 文档源格式是以html还是markdown格式导出,这里是能否正确显示图片的关键,下面会重点说

准备md文档 开始测试

  1. 图片格式如果是图床形式,比如http或者https开头测试均可正常导出并识别。
  2. 图片格式如果是本地图片。这里分两种情况
  • wiki格式的图片 格式为![[XXXX.png]] 这类的 需要pandoc中设置源格式html才可以正确识别。

  • md格式的图片 格式为![](XXXXX.png) 这种格式需要pandoc设置源格式为markdown才可以正确识别。

正确识别,不代表导出的word格式能正常显示图片,下面还有几个坑需要注意。

测试总结

为了表述问题更清楚,下面几个前提条件

  1. 测试图片名称为202111241058704.png 并位于库文件夹中的“附件”目录下

  2. Ob库的物理路径为 E:\Obsidian文档库\

  • 引用在线图床的图片,均正确导出。

  • 引用图片如果是file:/// 协议需要删除file:/// 即可正确识别

  • pandoc插件设置文件源格式为html, 文档图片使用![[XX]]的形式,基于库的相对路径插入的图片才能正确识别。比如[[附件/202111241058704.png]]

  • 当设置文件源格式markdown,文章引入图片的格式为![](XXXX.png)。默认pandoc只去库根目录查找图片,如果图片存在其他目录需要使用参数指定,比如添加参数--resource-path="E:\Obsidian文档库\附件\"

  • 当设置文件源格式markdown,文章引入图片的格式为![](附件\XXXX.png)。默认pandoc只去库根目录查找图片,需要添加参数--resource-path="E:\Obsidian文档库\"

目前ob中pandoc插件导出word格式并包含本地图片,只有以上这几种方式可以正确识别并导出。
下面用表格更清楚展示:

插件设置的源格式 md文档中的图片格式 导出结果
html ![[附件/202111241058704.png]] 成功
html ![[202111241058704.png]] 失败
markdown ![](附件/202111241058704.png) 直接导出失败
添加参数--resource-path="E:\Obsidian文档库\" 成功
markdown ![[附件/202111241058704.png]] 导出成功,但wiki格式图片不识别
markdown ![](202111241058704.png) 直接导出失败
添加参数--resource-path="E:\Obsidian文档库\附件\" 成功
markdown ![](file:///E:/Obsidian/XX/202111241058704.png) 失败,删除file:///协议,导出成功
14 个赞

感谢up,超级有用!!!!!!!!!!!!!!!正在疑惑呢!

请问下,我文章做了块嵌入,有没有办法把这些正确的导出呢?就是把预览到的导出出来

正好在找 ob 的pandoc 导出教程,多谢,很有用

这个总结爱了!非常感谢。
请问pandoc转word,有教程吗?还是只能看官方文档。
用了--reference-doc=d:\a.docx参数,仍有以下问题:

  1. 添加封面
  2. 删除Title(用h1代替,为了兼容PDF)
  3. 不识别- [ ]这样的任务格式
  4. 不识别``这样的高亮格式
  5. 不支持 css 高亮
  6. 有序列表的编号,能否增加上级标题的编号,比如1.1.1,而不是1.

建议查看pandoc 官方文档,pandoc的命令 在这里也是生效的。比如可以增加参数 --template 调用word模板 实现自定义样式

1 个赞

总结的非常到位哈