#docx #html-to-docx
#docx #html-to-docx
Вопрос:
Я пытаюсь экспортировать веб-приложение в MS Word с помощью Docx.js в браузере, но основные функции, такие как таблица или медиа, не распознаются браузером. Кто-нибудь сталкивался с этой проблемой, и если да, то что можно исправить ?.
Я получаю следующее сообщение об ошибке в консоли: «Неперехваченная ошибка ссылки: таблица не определена»
Ниже приведен мой пример кода:
<html>
<h1>DOCX browser Word document generation</h1>
<button type="button" onclick="generate()">Click to generate document</button>
<script>
function generate() {
const doc = new docx.Document();
const table = new Table({
rows: [
new TableRow({
children: [
new TableCell({
children: [new Paragraph("Hello")],
}),
new TableCell({
children: [new Paragraph("World!!!")],
}),
],
}),
new TableRow({
children: [
new TableCell({
children: [new Paragraph("bla bla bla")],
}),
new TableCell({
children: [new Paragraph("bla bla bla")],
}),
],
}),
],
});
doc.addSection({
properties: {},
children: [table],
});
docx.Packer.toBlob(doc).then(blob => {
console.log(blob);
saveAs(blob, "example.docx");
console.log("Document created successfully");
});
}
</script>
Ответ №1:
У меня была аналогичная проблема в node. Я получал ReferenceError: HeadingLevel is not defined
. Исследуя это, я обнаружил, что эта проблема открыта в github https://github.com/dolanmiu/docx/issues/485 . Поэтому я думаю, что вам нужно явно вызвать docx
перед любым из объявлений docx. Например.
rows: [
new docx.TableRow({
children: [
new docx.TableCell({
children: [new docx.Paragraph("Hello")],
}),
new docx.TableCell({
children: [new docx.Paragraph("World!!!")],
}),
],
}),
new docx.TableRow({
children: [
new docx.TableCell({
children: [new docx.Paragraph("bla bla bla")],
}),
new docx.TableCell({
children: [new docx.Paragraph("bla bla bla")],
}),
],
}),
],
});
Комментарии:
1. Да, вы правы. На самом деле я решил это днем позже. Создатель Docx фактически ответил на вопрос, который я отправил в GitHub. Я просто забыл пометить это как разрешенное. Спасибо за подтверждение!