Update documentation

This commit is contained in:
Dolan
2018-08-21 21:46:12 +01:00
parent eb9cc767c6
commit 6f0f3ccca7

View File

@ -2,7 +2,48 @@
> Packers are the way in which `docx` turns your code into `.docx` format. It is completely decoupled from the `docx.Document`. > Packers are the way in which `docx` turns your code into `.docx` format. It is completely decoupled from the `docx.Document`.
## File System Packer ## Version 4
Packers in `version 4` and above are now one single `Packer`. It works in both a node and browser environment (Angular etc). Now, the packer returns a `Buffer`, `Blob` or `base64 string`. It is up to you to take that and persist it with node's `fs`, send it down as a downloadable file, or anything else you wish. As of version 4, this library will not have options to export to PDF.
### Export as Buffer
This will return a NodeJS `Buffer`. If this is used in the browser, it will return a `UInt8Array` instead.
```js
const packer = new docx.Packer();
packer.toBuffer(doc).then((buffer) => {
fs.writeFileSync("My Document.docx", buffer);
});
```
### Export as a `base64` string
```js
const packer = new docx.Packer();
packer.toBase64String(doc).then((string) => {
console.log(string);
});
```
### Export as Blob
This is useful if you want to send it as an downloadable in a browser environment.
```js
const packer = new docx.Packer();
packer.toBlob(doc).then((blob) => {
// saveAs from FileSaver will download the file
saveAs(blob, "example.docx");
});
```
## Version 3 and below
### File System Packer
```js ```js
const docx = require("docx"); const docx = require("docx");
@ -13,7 +54,7 @@ exporter.pack("My Document");
// Word Document is in file system // Word Document is in file system
``` ```
## Buffer Packer ### Buffer Packer
```js ```js
const docx = require("docx"); const docx = require("docx");
@ -23,7 +64,7 @@ const exporter = new docx.BufferPacker(doc);
const buffer = exporter.pack(); const buffer = exporter.pack();
``` ```
## Stream Packer ### Stream Packer
Creates a `node` `Readable` stream Creates a `node` `Readable` stream
@ -35,7 +76,7 @@ const exporter = new docx.StreamPacker(doc);
const stream = exporter.pack(); const stream = exporter.pack();
``` ```
## Express Packer ### Express Packer
The old express packer is now deprecated and may disappear soon, so you should upgrade. The old express packer is now deprecated and may disappear soon, so you should upgrade.
@ -56,13 +97,13 @@ const exporter = new docx.StreamPacker(doc);
const stream = exporter.pack(); const stream = exporter.pack();
// Express' response object // Express' response object
res.attachment('yourfile.xlsx'); res.attachment("yourfile.xlsx");
stream.pipe(res); stream.pipe(res);
``` ```
where `res` is the response object obtained through the Express router. It is that simple. The file will begin downloading in the browser. where `res` is the response object obtained through the Express router. It is that simple. The file will begin downloading in the browser.
## PDF Exporting ### PDF Exporting
You can export your word document as a PDF file like so: You can export your word document as a PDF file like so:
@ -74,7 +115,3 @@ exporter.packPdf("My Document");
const exporter = new docx.ExpressPacker(doc, res); const exporter = new docx.ExpressPacker(doc, res);
exporter.packPdf("My Document"); exporter.packPdf("My Document");
``` ```
## Browser based docx exporting
It is on the bucket list. It has been requested by a few, and work is already on it