Я пытаюсь создать документ 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 сломан с точки зрения рендеринга и частично нечитаемо. Я не совсем понимаю, могут ли шаблоны обрабатывать произвольное количество значений или значений, которые вложены/парятся таким образом.