【发布时间】:2018-12-11 03:12:26
【问题描述】:
我正在尝试使用 Node.js 生成一个 ODT 文档,但我对如何做以及模板是否是合适的替代方案有点迷茫。
我要创建的文档很简单:目录、标题 1 以及每个标题后面的段落。
我的书简单地用以下程序表示:
const chapters = [
{
title: "It Begins", paragraphs: [
"On the first day...",
"Things were looking good...",
"Blah blah blah..."
]
},
{
title: "Second Chapter", paragraphs: [
"Blah blah blah..."
]
}
];
理想情况下,我只需要类似的东西
const doc = new ODTFile();
chapters.forEach(chapter => {
doc.insert('Heading 1', chapter.title);
chapter.paragraphs.forEach(para => doc.insert('paragraph', para));
});
doc.generateTableOfContents();
doc.writeFile('foo.odt');
不幸的是,可供 JS 使用的 LibreOffice/ODT 库似乎并不多,而且没有一个可以请求生成目录。
所以我的第二个想法可能是创建一个 ODT 模板,然后传入值来填充模板所需的值。但是查找有关如何执行此操作的文档一直很棘手,尤其是使用 LibreOffice 网站broken in terms of rendering and partly unreadable。我不太清楚模板是否可以处理传递任意数量的值或以这种方式嵌套/配对的值。
【问题讨论】:
-
寻找相同的东西 - 我注意到 github.com/loveencounterflow/coffeelibre 似乎 Python 从 stackoverflow.com/questions/11638170/… 和 christopher5106.github.io/office/2015/12/06/… 更受欢迎 - 即便如此,文档也没有那么完善。
标签: node.js libreoffice odt