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

How to convert Org mode file to ODT using a template and Pandoc?

我有一个包含以下内容的文件 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: 添加

plan.org都没有解决问题

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

生成 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 returns

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 的格式)。

正在关注

https://pandoc.org/MANUAL.html#character-encoding

尝试

iconv -t utf-8 plan.org | pandoc | iconv -f utf-8

(不好意思没在评论里回答这个问题,我没有50分)