2022-06-19 02:01:54 +01:00
|
|
|
// Simple example to add comments to a document
|
2023-06-05 00:33:43 +01:00
|
|
|
|
2022-06-19 02:01:54 +01:00
|
|
|
import * as fs from "fs";
|
2025-04-16 15:45:36 +08:00
|
|
|
import { Document, Packer, Paragraph, TextRun, CommentRangeStart, CommentRangeEnd, CommentReference, ImageRun } from "docx";
|
2022-06-19 02:01:54 +01:00
|
|
|
|
|
|
|
const doc = new Document({
|
2022-06-22 23:35:46 +01:00
|
|
|
comments: {
|
2023-03-19 00:18:38 +00:00
|
|
|
children: [
|
|
|
|
{
|
|
|
|
id: 0,
|
|
|
|
author: "Ray Chen",
|
|
|
|
date: new Date(),
|
|
|
|
children: [
|
|
|
|
new Paragraph({
|
|
|
|
children: [
|
|
|
|
new TextRun({
|
|
|
|
text: "some initial text content",
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
}),
|
|
|
|
new Paragraph({
|
|
|
|
children: [
|
2025-04-16 15:45:36 +08:00
|
|
|
new ImageRun({
|
|
|
|
type: "jpg",
|
|
|
|
data: fs.readFileSync("./demo/images/cat.jpg"),
|
|
|
|
transformation: {
|
|
|
|
width: 100,
|
|
|
|
height: 100,
|
|
|
|
},
|
|
|
|
}),
|
2023-03-19 00:18:38 +00:00
|
|
|
new TextRun({
|
|
|
|
text: "comment text content",
|
|
|
|
}),
|
|
|
|
new TextRun({ text: "", break: 1 }),
|
|
|
|
new TextRun({
|
|
|
|
text: "More text here",
|
|
|
|
bold: true,
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
},
|
2023-03-30 19:43:09 +01:00
|
|
|
{
|
|
|
|
id: 1,
|
|
|
|
author: "Bob Ross",
|
|
|
|
date: new Date(),
|
|
|
|
children: [
|
|
|
|
new Paragraph({
|
|
|
|
children: [
|
|
|
|
new TextRun({
|
|
|
|
text: "Some initial text content",
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
}),
|
|
|
|
new Paragraph({
|
|
|
|
children: [
|
|
|
|
new TextRun({
|
|
|
|
text: "comment text content",
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 2,
|
|
|
|
author: "John Doe",
|
|
|
|
date: new Date(),
|
|
|
|
children: [
|
|
|
|
new Paragraph({
|
|
|
|
children: [
|
|
|
|
new TextRun({
|
|
|
|
text: "Hello World",
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 3,
|
|
|
|
author: "Beatriz",
|
|
|
|
date: new Date(),
|
|
|
|
children: [
|
|
|
|
new Paragraph({
|
|
|
|
children: [
|
|
|
|
new TextRun({
|
|
|
|
text: "Another reply",
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
},
|
2023-03-19 00:18:38 +00:00
|
|
|
],
|
2022-06-22 23:35:46 +01:00
|
|
|
},
|
2022-06-19 02:01:54 +01:00
|
|
|
sections: [
|
|
|
|
{
|
|
|
|
properties: {},
|
|
|
|
children: [
|
|
|
|
new Paragraph({
|
|
|
|
children: [
|
|
|
|
new TextRun("Hello World"),
|
2022-06-22 23:35:46 +01:00
|
|
|
new CommentRangeStart(0),
|
2022-06-19 02:01:54 +01:00
|
|
|
new TextRun({
|
|
|
|
text: "Foo Bar",
|
|
|
|
bold: true,
|
|
|
|
}),
|
2022-06-22 23:35:46 +01:00
|
|
|
new CommentRangeEnd(0),
|
2022-06-19 02:01:54 +01:00
|
|
|
new TextRun({
|
2022-06-22 23:35:46 +01:00
|
|
|
children: [new CommentReference(0)],
|
2022-06-19 02:01:54 +01:00
|
|
|
bold: true,
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
}),
|
2023-03-30 19:43:09 +01:00
|
|
|
new Paragraph({
|
|
|
|
children: [
|
|
|
|
new CommentRangeStart(1),
|
|
|
|
new CommentRangeStart(2),
|
|
|
|
new CommentRangeStart(3),
|
|
|
|
new TextRun({
|
|
|
|
text: "Some text which need commenting",
|
|
|
|
bold: true,
|
|
|
|
}),
|
|
|
|
new CommentRangeEnd(1),
|
|
|
|
new TextRun({
|
|
|
|
children: [new CommentReference(1)],
|
|
|
|
bold: true,
|
|
|
|
}),
|
|
|
|
new CommentRangeEnd(2),
|
|
|
|
new TextRun({
|
|
|
|
children: [new CommentReference(2)],
|
|
|
|
bold: true,
|
|
|
|
}),
|
|
|
|
new CommentRangeEnd(3),
|
|
|
|
new TextRun({
|
|
|
|
children: [new CommentReference(3)],
|
|
|
|
bold: true,
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
}),
|
2022-06-19 02:01:54 +01:00
|
|
|
],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
});
|
|
|
|
|
|
|
|
Packer.toBuffer(doc).then((buffer) => {
|
2022-06-19 13:12:59 +01:00
|
|
|
fs.writeFileSync("My Document.docx", buffer);
|
2022-06-19 02:01:54 +01:00
|
|
|
});
|