如何使用模板和 Pandoc 将 Org 模式文件转换为 ODT?

问题描述

我有一个包含以下内容的文件 plan.org

* Hello!

  This is a test.

我想使用 Pandoc 将其转换为 LibreOffice (ODT) 格式,以便根据模板 draft.ottdraft-template.odt 对其进行格式化here .

当我跑步时

cat plan.org | \
    pandoc -f org \
       -t odt \
       --template=draft-template.odt \
       --log=plan.odt.log \
       --fail-if-warnings \
       -o plan.odt

我收到错误

pandoc: Cannot decode byte '\xc6': Data.Text.Internal.Encoding.decodeUtf8: Invalid UTF-8 stream

电话

cat plan.org | \
    pandoc -f org \
       -t odt \
       --reference-doc=draft-template.odt \
       --log=plan.odt.log \
       --fail-if-warnings \
       -o plan.odt

不会产生任何错误,但生成的文档 plan.odt 没有按照 draft-template.odt 进行格式化。

同样的问题

cat plan.org | \
    pandoc -f org \
       -t odt \
       --reference-doc=draft.ott \
       --log=plan.odt.log \
       --fail-if-warnings \
       -o plan.odt

如何确保生成的文件 plan.odt 使用的是 draft.ottdraft-template.odt 中指定的字体?

我在 MacOS BigSur 11.1 下使用 pandoc 2.11.3.1,compiled with pandoc-types 1.22,texmath 0.12.0.3,skylighting 0.10.2,citeproc 0.3.0.1,ipynb 0.1.0.1

更新 1:添加

  • #+ODT_STYLES_FILE: "draft-template.odt"
  • #+ODT_STYLES_FILE: "draft.ott"

plan.org没有解决问题。

更新 2:我尝试使用 pandoc -D odt > template.odt 导出默认模板,然后将 Courier New 替换为 Courier Prime 中的 template.odt,然后生成 ODT文件使用

pandoc plan.org \
   -f org \
   -t odt \
   --standalone \
   --template=template.odt \
   --log=plan.odt.log \
   --fail-if-warnings \
   -o plan.odt

仍然没有运气。

更新 3: file plan.org 返回

plan.org: ASCII text

更新 4:电话

iconv -t utf-8 plan.org | \
pandoc plan.org \
   -f org \
   -t odt \
   --standalone \
   --template=template.odt \
   --log=plan.odt.log \
   --fail-if-warnings \
   -o plan.odt

不起作用(plan.odt 没有 template.odt 中的格式)。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)