Update documentation
This commit is contained in:
@ -3,7 +3,7 @@
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
Easily generate .docx files with JS/TS. Works for Node and on the Browser.
|
||||
Easily generate and modify .docx files with JS/TS. Works for Node and on the Browser.
|
||||
</p>
|
||||
|
||||
---
|
||||
|
@ -1,10 +1,10 @@
|
||||
<img src="https://i.imgur.com/37uBGhO.gif" alt="drawing" style="width:200px;"/>
|
||||
|
||||
> Easily generate .docx files with JS/TS. Works for Node and on the Browser. :100:
|
||||
> Easily generate and modify .docx files with JS/TS. Works for Node and on the Browser. :100:
|
||||
|
||||
- Simple, declarative API
|
||||
- 60+ usage examples
|
||||
- Battle tested, mature, 99%+ coverage
|
||||
- 80+ usage examples
|
||||
- Battle tested, mature, 99.9%+ coverage
|
||||
|
||||
[GitHub](https://github.com/dolanmiu/docx)
|
||||
[Get Started](#Welcome)
|
||||
|
@ -1,6 +1,8 @@
|
||||
- [Getting Started](/)
|
||||
|
||||
- [Examples](https://github.com/dolanmiu/docx/tree/master/demo)
|
||||
- Examples
|
||||
|
||||
- [Demos](https://github.com/dolanmiu/docx/tree/master/demo)
|
||||
|
||||
- API
|
||||
|
||||
@ -36,6 +38,10 @@
|
||||
|
||||
- [Packers](usage/packers.md)
|
||||
|
||||
- Modifying Existing Documents
|
||||
|
||||
- [Patcher](usage/patcher.md)
|
||||
|
||||
- Utility
|
||||
|
||||
- [Convenience functions](usage/convenience-functions.md)
|
||||
|
94
docs/usage/patcher.md
Normal file
94
docs/usage/patcher.md
Normal file
@ -0,0 +1,94 @@
|
||||
# Patcher
|
||||
|
||||
The patcher allows you to modify existing documents, and add new content to them.
|
||||
|
||||
!> The Patcher requires an understanding of [Paragraphs](usage/paragraph.md).
|
||||
|
||||
---
|
||||
|
||||
## Usage
|
||||
|
||||
```ts
|
||||
import * as fs from "fs";
|
||||
import { patchDocument } from "docx";
|
||||
|
||||
patchDocument(fs.readFileSync("My Document.docx"), {
|
||||
patches: {
|
||||
// Patches here
|
||||
},
|
||||
});
|
||||
```
|
||||
|
||||
## Patches
|
||||
|
||||
The patcher takes in a `patches` object, which is a map of `string` to `Patch`:
|
||||
|
||||
```ts
|
||||
interface Patch {
|
||||
type: PatchType;
|
||||
children: FileChild[] | ParagraphChild[];
|
||||
}
|
||||
```
|
||||
|
||||
| Property | Type | Notes | Possible Values |
|
||||
| -------- | --------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| type | `PatchType` | Required | `DOCUMENT`, `PARAGRAPH` |
|
||||
| children | `FileChild[] or ParagraphChild[]` | Required | The contents to replace with. A `FileChild` is a `Paragraph` or `Table`, whereas a `ParagraphChild` is typical `Paragraph` children. |
|
||||
|
||||
### How to patch existing document
|
||||
|
||||
1. Open your existing word document in your favorite Word Processor
|
||||
2. Write tags in the document where you want to patch in a mustache style notation. For example, `{{my_patch}}` and `{{my_second_patch}}`.
|
||||
3. Run the patcher with the patches as a key value pair.
|
||||
|
||||
## Example
|
||||
|
||||
### Word Document
|
||||
|
||||

|
||||
|
||||
### Patcher
|
||||
|
||||
?> Notice how there is no handlebar notation in the key.
|
||||
|
||||
The patch can be as simple as a string, or as complex as a table. Images, hyperlinks, and other complex elements within the `docx` library are also supported.
|
||||
|
||||
```ts
|
||||
patchDocument(fs.readFileSync("My Document.docx"), {
|
||||
patches: {
|
||||
my_patch: {
|
||||
type: PatchType.PARAGRAPH,
|
||||
children: [new TextRun("Sir. "), new TextRun("John Doe"), new TextRun("(The Conqueror)")],
|
||||
},
|
||||
my_second_patch: {
|
||||
type: PatchType.DOCUMENT,
|
||||
children: [
|
||||
new Paragraph("Lorem ipsum paragraph"),
|
||||
new Paragraph("Another paragraph"),
|
||||
new Paragraph({
|
||||
children: [
|
||||
new TextRun("This is a "),
|
||||
new ExternalHyperlink({
|
||||
children: [
|
||||
new TextRun({
|
||||
text: "Google Link",
|
||||
}),
|
||||
],
|
||||
link: "https://www.google.co.uk",
|
||||
}),
|
||||
new ImageRun({ data: fs.readFileSync("./demo/images/dog.png"), transformation: { width: 100, height: 100 } }),
|
||||
],
|
||||
}),
|
||||
],
|
||||
},
|
||||
},
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Demo
|
||||
|
||||
_Source: https://github.com/dolanmiu/docx/blob/master/demo/85-template-document.ts_
|
||||
|
||||
[Example](https://raw.githubusercontent.com/dolanmiu/docx/master/demo/85-template-document.ts ":include :type=code typescript")
|
Reference in New Issue
Block a user