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 30 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:
import { UserOptions } from "docx-templates/lib/types";
declare type modifiedConfig = Omit<UserOptions, "template" | "queryVars">;
declare type DATA = Record<string, any>;
declare type Template = UserOptions["template"];
export declare class Gotenberg {
protected url: string;
constructor(url: string);
fillDocToPdf(file: Template, data: DATA[], config?: modifiedConfig): Promise<NodeJS.ReadableStream>;
fillDocToPdf(file: Template, data: [DATA], config: modifiedConfig, onlyDocx: true): Promise<ArrayBufferLike>;
}
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.