Security News
Cloudflare Adds Security.txt Setup Wizard
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
The docx npm package is a powerful library for creating and manipulating Microsoft Word documents programmatically. It allows developers to generate .docx files with various elements such as text, images, tables, and more, directly from their JavaScript or TypeScript code.
Creating a Simple Document
This feature allows you to create a simple Word document with text. The code sample demonstrates how to create a document with a single paragraph containing both regular and formatted text.
const { Document, Packer, Paragraph, TextRun } = require('docx');
const fs = require('fs');
const doc = new Document({
sections: [
{
properties: {},
children: [
new Paragraph({
children: [
new TextRun('Hello World!'),
new TextRun({
text: ' This is bold and underlined text.',
bold: true,
underline: {}
})
]
})
]
}
]
});
Packer.toBuffer(doc).then((buffer) => {
fs.writeFileSync('MyDocument.docx', buffer);
});
Adding Images
This feature allows you to add images to your Word document. The code sample demonstrates how to insert an image with specified dimensions into a document.
const { Document, Packer, Paragraph, ImageRun } = require('docx');
const fs = require('fs');
const doc = new Document({
sections: [
{
properties: {},
children: [
new Paragraph({
children: [
new ImageRun({
data: fs.readFileSync('path/to/image.png'),
transformation: {
width: 100,
height: 100
}
})
]
})
]
}
]
});
Packer.toBuffer(doc).then((buffer) => {
fs.writeFileSync('DocumentWithImage.docx', buffer);
});
Creating Tables
This feature allows you to create tables within your Word document. The code sample demonstrates how to create a table with two rows and two columns.
const { Document, Packer, Table, TableRow, TableCell, Paragraph } = require('docx');
const fs = require('fs');
const doc = new Document({
sections: [
{
properties: {},
children: [
new Table({
rows: [
new TableRow({
children: [
new TableCell({
children: [new Paragraph('Cell 1')]
}),
new TableCell({
children: [new Paragraph('Cell 2')]
})
]
}),
new TableRow({
children: [
new TableCell({
children: [new Paragraph('Cell 3')]
}),
new TableCell({
children: [new Paragraph('Cell 4')]
})
]
})
]
})
]
}
]
});
Packer.toBuffer(doc).then((buffer) => {
fs.writeFileSync('DocumentWithTable.docx', buffer);
});
officegen is another npm package that allows you to generate Microsoft Office documents, including Word, Excel, and PowerPoint files. Compared to docx, officegen offers a broader range of document types but may not have as many advanced features specifically for Word documents.
mammoth is a library focused on converting .docx documents to HTML and plain text. While it doesn't offer the same document creation capabilities as docx, it is useful for extracting content from existing Word documents.
pizzip is a low-level library for manipulating ZIP files, which can be used in conjunction with other libraries like docxtemplater to create and modify .docx files. It provides more control over the ZIP structure but requires more effort to use for document creation.
Generate .docx files with JS/TS very easily, written in TS.
$ npm install --save docx
$ npm run demo
will run the demo selector app in the demo
folder. It will prompt you to select a demo number, which will run a demo from that folder.
Please refer to the Wiki for details on how to use this library, examples and much more!
Full documentation can be found here: http://dolanmiu.github.io/docx
// Used to create docx files
var docx = require('docx');
// Create document
var doc = new docx.Document();
// Add some content in the document
var paragraph = new docx.Paragraph("Some cool text here.");
// Add more text into the paragraph if you wish
paragraph.addRun(new docx.TextRun('Lorem Ipsum Foo Bar'));
doc.addParagraph(paragraph);
// Used to export the file into a .docx file
var exporter = new docx.LocalPacker(doc);
// Or use the express packer to make the file downloadable.
// res is express' Response object
var exporter = new docx.ExpressPacker(doc, res);
exporter.pack('My First Document');
// If you want to export it as a .pdf file instead
exporter.packPdf('My First Document');
// done! A file called 'My First Document.docx'
// will be in your file system if you used LocalPacker
// Or it will start downloading if you are using Express
Check the Wiki for examples.
Read the contribution guidelines here.
Made with 💖
Huge thanks to @felipeochoa for awesome contributions to this project
FAQs
Easily generate .docx files with JS/TS with a nice declarative API. Works for Node and on the Browser.
The npm package docx receives a total of 152,348 weekly downloads. As such, docx popularity was classified as popular.
We found that docx demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
Security News
The Socket Research team breaks down a malicious npm package targeting the legitimate DOMPurify library. It uses obfuscated code to hide that it is exfiltrating browser and crypto wallet data.
Security News
ENISA’s 2024 report highlights the EU’s top cybersecurity threats, including rising DDoS attacks, ransomware, supply chain vulnerabilities, and weaponized AI.