是否有可能以某种方式告诉pandoc
将样式名称从原始 HTML 转移到 .docx?
我知道为了调整实际样式,我应该reference.docx
使用pandoc
. 但是,reference.docx
仅限于它所具有的样式:标题、正文、块文本等。
我想:
在输入 HTML 中指定“myStyle”样式(通过“class”属性,通过任何其他 HTML 属性,甚至通过用 Lua 编写的过滤器代码),
<html>
<body>
<p>Hello</p>
<p class="myStyle">World!</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
添加自定义“myStyle”以reference.docx
使用 Word,
运行html->docx
转换并期望pandoc
生成一个带有“myStyle”的段落元素(而不是,我相信它默认BodyText
设置),因此最终结果如下所示(为了简洁起见,结果内部的内容被剪切):word/document.xml
output.docx
<w:p>
<w:pPr>
<w:pStyle w:val="BodyText" />
</w:pPr>
<w:r>
<w:txml:space="preserve">Hello</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="myStyle" />
</w:pPr>
<w:r>
<w:txml:space="preserve">World!</w:t>
</w:r>
</w:p>
Run Code Online (Sandbox Code Playgroud)
有一些证据 styleId
可以传递,但我不太理解,也找不到任何有关它的文档。
Lua 中的过滤文档指出,您可以attrs
在操作 a 时访问pandoc.div
,但它没有说明任何 attr 是否会被 pandoc 以任何有意义的方式解释。
最后,找到了我需要的 \xe2\x80\x93 Custom styles。它是有限的,但比我之前到达的要好,当然也比什么都没有好得多:)
\n我将在这里留下分步指南,以防有人偶然发现类似的问题。
\n首先,生成一个reference.docx
这样的文件:
pandoc --print-default-data-file reference.docx > styles.docx\n
Run Code Online (Sandbox Code Playgroud)\n然后在 MS Word 中打开该文件(我使用的是 macOS 版本),您将看到以下内容:
\n\n单击右侧的“新样式...”按钮,然后创建您喜欢的样式。就我而言,我将文本样式更改为蓝色粗体:
\n\n由于我正在从 HTML 转换为 DOCX,因此这是我的input.html
:
<html>\n <body>\n <div>Page 1</div>\n <div custom-style="eugene-is-testing">Page 2</div>\n <div>Page 3</div>\n </body>\n</html>\n
Run Code Online (Sandbox Code Playgroud)\n跑步:
\npandoc --standalone --reference-doc styles.docx --output output.docx input.html\n
Run Code Online (Sandbox Code Playgroud)\n最后,享受一下结果:
\n\n 归档时间: |
|
查看次数: |
664 次 |
最近记录: |