Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/EC-Nordbund/docx-templates-to-pdf


https://github.com/EC-Nordbund/docx-templates-to-pdf

docx docx-templates docx2pdf gotenberg pdf

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

# docx-templates-to-pdf

This is a helper Package on top of docx-templates and gotenberg-js-client to fill docx template Documents with data and convert it into PDF-Files.

> Note this is a simple wrapper only 70 Lines of Code. So for your use case it might be easier to write some helpers on your own.

## API

>

The simple syntax you can see in the .d.ts file:

```ts
///
import { UserOptions } from "docx-templates/lib/types";
declare type modifiedConfig = Omit;
declare type DATA = Record;
declare type Template = UserOptions["template"];
export declare class Gotenberg {
protected url: string;
constructor(url: string);
fillDocToPdf(file: Template, data: DATA[], config?: modifiedConfig): Promise;
fillDocToPdf(file: Template, data: [DATA], config: modifiedConfig, onlyDocx: true): Promise;
}
```

As you can see we export a class `Gotenberg` wich has to be created with a `url`. The class has one method `fillDocToPdf`. This expects a Buffer as a file and a Array of Data objects as data. Additionaly we can provide a config object. This ist nearly the same config as the options of `docx-templates`. If we provide a query-Resolver for data (so a function) the data will be injected as `queryVars` not as `data`. If data is a single Object you can provid `onlyDocx` as `true` and get a `ArrayBufferLike` for the filled `docx` file. In all other cases you get a `NodeJS.ReadableStream` as a Result.