如何使用模板和 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.ott
或 draft-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.ott
或 draft-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
导出默认模板,然后在 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分)
我有一个包含以下内容的文件 plan.org
:
* Hello!
This is a test.
我想使用 Pandoc 将其转换为 LibreOffice (ODT
) 格式,以便根据模板 draft.ott
或 draft-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.ott
或 draft-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
导出默认模板,然后在 template.odt
中将 Courier New
替换为 Courier Prime
然后使用
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分)