Как программно создать документ ODT? - PullRequest
0 голосов
/ 03 июля 2018

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

...