Я пытаюсь создать документ ODT с использованием Node.js, и я немного растерялся из-за того, как я могу это сделать, или являются ли шаблоны подходящей альтернативой.
Документ, который я хочу создать, прост: содержание, заголовок 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');
К сожалению, библиотек LibreOffice / ODT, доступных для JS, не так много, и ни одна из них не может запросить оглавление.
Таким образом, моя вторая идея состояла в том, чтобы, возможно, создать шаблон ODT и просто передать значения, чтобы заполнить значения, требуемые шаблоном. Но найти документацию о том, как это сделать, было непросто, особенно с веб-сайтом LibreOffice , неработающим с точки зрения рендеринга и частично нечитаемым . Мне не совсем понятно, могут ли шаблоны обрабатывать передаваемые произвольные числа значений или значений, которые вкладывают / объединяют таким образом.