pdfkit-table-ts
Version:
PdfKit Table. Helps to draw informations in simple tables using pdfkit. #server-side. Generate pdf tables with TypeScript / JavaScript (PDFKIT plugin)
604 lines (603 loc) • 41.3 kB
TypeScript
import PDFDocument from "pdfkit";
import type { PDFDocOptions, Rect, Table, TableOptions } from "./types";
/**
* Builds the PDFDocument subclass extended with `.table()` / `.tables()`,
* using the PDFKit constructor you supply (fork, patched build, or version
* pinned in your own app).
*
* @example
* ```ts
* import PDFKit from 'pdfkit';
* import { createPdfDocumentWithTables } from 'pdfkit-table';
* const PDF = createPdfDocumentWithTables(PDFKit);
* const doc = new PDF({ compress: false });
* ```
*/
export declare function createPdfDocumentWithTables(PdfKitDocument: typeof PDFDocument): {
new (option?: PDFDocOptions): {
new (options?: PDFKit.PDFDocumentOptions): PDFKit.PDFDocument;
opt?: PDFDocOptions;
headerHeight: number;
datasIndex: number;
rowsIndex: number;
logg(..._args: unknown[]): void;
addBackground({ x, y, width, height }: Rect, fillColor?: string, fillOpacity?: number, callback?: (doc: /*elided*/ any) => void): void;
/**
* Checks whether the remaining vertical space on the current page is less
* than `minHeight` (default: 10% of the usable page height) and, if so,
* adds a new page — preventing orphaned titles or section headers at the
* very bottom of a page.
*
* @example
* ```ts
* doc.checkPageBreak(); // default: 10% of page height
* doc.checkPageBreak(80); // at least 80pt remaining
* doc.checkPageBreak(0.15); // at least 15% of page height
*
* doc.checkPageBreak().fontSize(11).text("Section title");
* await doc.table({ ... });
* ```
*/
checkPageBreak(minHeight?: number): /*elided*/ any;
/**
* Renders a single table.
* Signature is backward-compatible with older releases:
* `table(table, callback)`
* `table(table, options)`
* `table(table, options, callback)`
*/
table(table: string | Table, options?: TableOptions | ((doc: /*elided*/ any) => void), callback?: (doc: /*elided*/ any) => void): Promise<void>;
/**
* Removes a previously rendered image from PDFKit's internal cache
* (`_imageRegistry`), allowing the garbage collector to reclaim the memory
* occupied by that image's decoded pixel data.
*
* **When to use:**
* Call this immediately after the last `doc.image()` call that uses a given
* source, when the image will NOT appear again later in the document.
* This is useful for large one-off illustrations on memory-constrained
* servers (≤1 GB heap).
*
* **When NOT to use:**
* Do NOT call this for images that appear on multiple pages (e.g. watermarks,
* logos in headers/footers). PDFKit's registry enables XObject reuse — if
* the entry is removed, the next `doc.image()` call for the same source will
* re-decode and re-embed the image, producing a **larger** PDF and consuming
* **more** memory overall, not less.
*
* **Large documents on low-memory servers:**
* The most effective lever for heap pressure on multi-page PDFs is the
* Node.js process flag, not in-process cleanup:
* ```
* node --max_old_space_size=4096 server.js
* ```
* Additionally, prefer `compress: true` in the PDFDocument constructor and
* pass images as `Buffer` rather than base64 strings to avoid doubling the
* in-memory representation.
*
* @param src - The same path, URL, or Buffer reference passed to `doc.image()`.
*
* @example
* ```ts
* // Safe: image appears exactly once
* doc.image('./chart.png', 50, 200, { width: 400 });
* doc.purgeImage('./chart.png');
*
* // Unsafe: logo appears on every page — do NOT release
* doc.image('./logo.png', 20, 20, { width: 80 });
* // doc.purgeImage('./logo.png'); ← would duplicate the XObject each page
* ```
*/
purgeImage(src: string): void;
/** Render an array of tables sequentially. */
tables(tables: Table[], callback?: (doc: /*elided*/ any) => void): Promise<void>;
version: number;
compress: boolean;
info: PDFKit.DocumentInfo;
options: PDFKit.PDFDocumentOptions;
page: PDFKit.PDFPage;
x: number;
y: number;
addPage(options?: PDFKit.PDFDocumentOptions): PDFKit.PDFDocument;
continueOnNewPage(options?: PDFKit.PDFDocumentOptions): PDFKit.PDFDocument;
bufferedPageRange(): {
start: number;
count: number;
};
switchToPage(n?: number): PDFKit.PDFPage;
flushPages(): void;
addNamedDestination(name: string): void;
addNamedDestination(name: string, fitType: "Fit"): void;
addNamedDestination(name: string, fitType: "FitB"): void;
addNamedDestination(name: string, fitType: "FitBH", top: number): void;
addNamedDestination(name: string, fitType: "FitBV", left: number): void;
addNamedDestination(name: string, fitType: "FitH", top: number): void;
addNamedDestination(name: string, fitType: "FitR", x1: number, y1: number, x2: number, y2: number): void;
addNamedDestination(name: string, fitType: "FitV", left: number): void;
addNamedDestination(name: string, fitType: "XYZ", left: number | null, top: number | null, zoom: number | null): void;
addNamedDestination(name: string, fitType: string, ...args: number[]): void;
addNamedEmbeddedFile(name: string, ref: PDFKit.PDFKitReference): void;
addNamedJavaScript(name: string, js: string): void;
ref(data: {}): PDFKit.PDFKitReference;
addContent(data: any): PDFKit.PDFDocument;
end(): void;
toString(): string;
readonly readableAborted: boolean;
readable: boolean;
readonly readableDidRead: boolean;
readonly readableEncoding: BufferEncoding | null;
readonly readableEnded: boolean;
readonly readableFlowing: boolean | null;
readonly readableHighWaterMark: number;
readonly readableLength: number;
readonly readableObjectMode: boolean;
destroyed: boolean;
readonly closed: boolean;
readonly errored: Error | null;
_construct?(callback: (error?: Error | null) => void): void;
_read(size: number): void;
read(size?: number): any;
setEncoding(encoding: BufferEncoding): /*elided*/ any;
pause(): /*elided*/ any;
resume(): /*elided*/ any;
isPaused(): boolean;
unpipe(destination?: NodeJS.WritableStream): /*elided*/ any;
unshift(chunk: any, encoding?: BufferEncoding): void;
wrap(stream: NodeJS.ReadableStream): /*elided*/ any;
push(chunk: any, encoding?: BufferEncoding): boolean;
iterator(options?: {
destroyOnReturn?: boolean;
}): NodeJS.AsyncIterator<any>;
map(fn: (data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => any, options?: import("stream").ArrayOptions): import("stream").Readable;
filter(fn: (data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => boolean | Promise<boolean>, options?: import("stream").ArrayOptions): import("stream").Readable;
forEach(fn: (data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => void | Promise<void>, options?: import("stream").ArrayOptions): Promise<void>;
toArray(options?: Pick<import("stream").ArrayOptions, "signal">): Promise<any[]>;
some(fn: (data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => boolean | Promise<boolean>, options?: import("stream").ArrayOptions): Promise<boolean>;
find<T>(fn: (data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => data is T, options?: import("stream").ArrayOptions): Promise<T | undefined>;
find(fn: (data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => boolean | Promise<boolean>, options?: import("stream").ArrayOptions): Promise<any>;
every(fn: (data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => boolean | Promise<boolean>, options?: import("stream").ArrayOptions): Promise<boolean>;
flatMap(fn: (data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => any, options?: import("stream").ArrayOptions): import("stream").Readable;
drop(limit: number, options?: Pick<import("stream").ArrayOptions, "signal">): import("stream").Readable;
take(limit: number, options?: Pick<import("stream").ArrayOptions, "signal">): import("stream").Readable;
asIndexedPairs(options?: Pick<import("stream").ArrayOptions, "signal">): import("stream").Readable;
reduce<T = any>(fn: (previous: any, data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => T, initial?: undefined, options?: Pick<import("stream").ArrayOptions, "signal">): Promise<T>;
reduce<T = any>(fn: (previous: T, data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => T, initial: T, options?: Pick<import("stream").ArrayOptions, "signal">): Promise<T>;
_destroy(error: Error | null, callback: (error?: Error | null) => void): void;
destroy(error?: Error): /*elided*/ any;
addListener(event: "close", listener: () => void): /*elided*/ any;
addListener(event: "data", listener: (chunk: any) => void): /*elided*/ any;
addListener(event: "end", listener: () => void): /*elided*/ any;
addListener(event: "error", listener: (err: Error) => void): /*elided*/ any;
addListener(event: "pause", listener: () => void): /*elided*/ any;
addListener(event: "readable", listener: () => void): /*elided*/ any;
addListener(event: "resume", listener: () => void): /*elided*/ any;
addListener(event: string | symbol, listener: (...args: any[]) => void): /*elided*/ any;
emit(event: "close"): boolean;
emit(event: "data", chunk: any): boolean;
emit(event: "end"): boolean;
emit(event: "error", err: Error): boolean;
emit(event: "pause"): boolean;
emit(event: "readable"): boolean;
emit(event: "resume"): boolean;
emit(event: string | symbol, ...args: any[]): boolean;
on(event: "close", listener: () => void): /*elided*/ any;
on(event: "data", listener: (chunk: any) => void): /*elided*/ any;
on(event: "end", listener: () => void): /*elided*/ any;
on(event: "error", listener: (err: Error) => void): /*elided*/ any;
on(event: "pause", listener: () => void): /*elided*/ any;
on(event: "readable", listener: () => void): /*elided*/ any;
on(event: "resume", listener: () => void): /*elided*/ any;
on(event: string | symbol, listener: (...args: any[]) => void): /*elided*/ any;
once(event: "close", listener: () => void): /*elided*/ any;
once(event: "data", listener: (chunk: any) => void): /*elided*/ any;
once(event: "end", listener: () => void): /*elided*/ any;
once(event: "error", listener: (err: Error) => void): /*elided*/ any;
once(event: "pause", listener: () => void): /*elided*/ any;
once(event: "readable", listener: () => void): /*elided*/ any;
once(event: "resume", listener: () => void): /*elided*/ any;
once(event: string | symbol, listener: (...args: any[]) => void): /*elided*/ any;
prependListener(event: "close", listener: () => void): /*elided*/ any;
prependListener(event: "data", listener: (chunk: any) => void): /*elided*/ any;
prependListener(event: "end", listener: () => void): /*elided*/ any;
prependListener(event: "error", listener: (err: Error) => void): /*elided*/ any;
prependListener(event: "pause", listener: () => void): /*elided*/ any;
prependListener(event: "readable", listener: () => void): /*elided*/ any;
prependListener(event: "resume", listener: () => void): /*elided*/ any;
prependListener(event: string | symbol, listener: (...args: any[]) => void): /*elided*/ any;
prependOnceListener(event: "close", listener: () => void): /*elided*/ any;
prependOnceListener(event: "data", listener: (chunk: any) => void): /*elided*/ any;
prependOnceListener(event: "end", listener: () => void): /*elided*/ any;
prependOnceListener(event: "error", listener: (err: Error) => void): /*elided*/ any;
prependOnceListener(event: "pause", listener: () => void): /*elided*/ any;
prependOnceListener(event: "readable", listener: () => void): /*elided*/ any;
prependOnceListener(event: "resume", listener: () => void): /*elided*/ any;
prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): /*elided*/ any;
removeListener(event: "close", listener: () => void): /*elided*/ any;
removeListener(event: "data", listener: (chunk: any) => void): /*elided*/ any;
removeListener(event: "end", listener: () => void): /*elided*/ any;
removeListener(event: "error", listener: (err: Error) => void): /*elided*/ any;
removeListener(event: "pause", listener: () => void): /*elided*/ any;
removeListener(event: "readable", listener: () => void): /*elided*/ any;
removeListener(event: "resume", listener: () => void): /*elided*/ any;
removeListener(event: string | symbol, listener: (...args: any[]) => void): /*elided*/ any;
[Symbol.asyncIterator](): NodeJS.AsyncIterator<any>;
[Symbol.asyncDispose](): Promise<void>;
pipe<T extends NodeJS.WritableStream>(destination: T, options?: {
end?: boolean | undefined;
}): T;
compose<T extends NodeJS.ReadableStream>(stream: T | ((source: any) => void) | Iterable<T> | AsyncIterable<T>, options?: {
signal: AbortSignal;
}): T;
[EventEmitter.captureRejectionSymbol]?<K>(error: Error, event: string | symbol, ...args: any[]): void;
off<K>(eventName: string | symbol, listener: (...args: any[]) => void): /*elided*/ any;
removeAllListeners(eventName?: string | symbol): /*elided*/ any;
setMaxListeners(n: number): /*elided*/ any;
getMaxListeners(): number;
listeners<K>(eventName: string | symbol): Function[];
rawListeners<K>(eventName: string | symbol): Function[];
listenerCount<K>(eventName: string | symbol, listener?: Function): number;
eventNames(): (string | symbol)[];
initMetadata(): void;
appendXML(XMLxml: string, newLine?: boolean): void;
endMetadata(): void;
annotate(x: number, y: number, w: number, h: number, option: PDFKit.Mixins.AnnotationOption): /*elided*/ any;
note(x: number, y: number, w: number, h: number, content: string, option?: PDFKit.Mixins.AnnotationOption): /*elided*/ any;
goTo(x: number, y: number, w: number, h: number, name: string, options?: PDFKit.Mixins.AnnotationOption): /*elided*/ any;
link(x: number, y: number, w: number, h: number, url: string, option?: PDFKit.Mixins.AnnotationOption): /*elided*/ any;
highlight(x: number, y: number, w: number, h: number, option?: PDFKit.Mixins.AnnotationOption): /*elided*/ any;
underline(x: number, y: number, w: number, h: number, option?: PDFKit.Mixins.AnnotationOption): /*elided*/ any;
strike(x: number, y: number, w: number, h: number, option?: PDFKit.Mixins.AnnotationOption): /*elided*/ any;
lineAnnotation(x1: number, y1: number, x2: number, y2: number, option?: PDFKit.Mixins.AnnotationOption): /*elided*/ any;
rectAnnotation(x: number, y: number, w: number, h: number, option?: PDFKit.Mixins.AnnotationOption): /*elided*/ any;
ellipseAnnotation(x: number, y: number, w: number, h: number, option?: PDFKit.Mixins.AnnotationOption): /*elided*/ any;
textAnnotation(x: number, y: number, w: number, h: number, text: string, option?: PDFKit.Mixins.AnnotationOption): /*elided*/ any;
fillColor(color: PDFKit.Mixins.ColorValue, opacity?: number): /*elided*/ any;
strokeColor(color: PDFKit.Mixins.ColorValue, opacity?: number): /*elided*/ any;
opacity(opacity: number): /*elided*/ any;
fillOpacity(opacity: number): /*elided*/ any;
strokeOpacity(opacity: number): /*elided*/ any;
linearGradient(x1: number, y1: number, x2: number, y2: number): PDFKit.PDFLinearGradient;
radialGradient(x1: number, y1: number, r1: number, x2: number, y2: number, r2: number): PDFKit.PDFRadialGradient;
pattern(bbox: PDFKit.Mixins.BoundingBox, xStep: number, yStep: number, stream: string): PDFKit.PDFTilingPattern;
image(src: PDFKit.Mixins.ImageSrc, x?: number, y?: number, options?: PDFKit.Mixins.ImageOption): /*elided*/ any;
image(src: PDFKit.Mixins.ImageSrc, options?: PDFKit.Mixins.ImageOption): /*elided*/ any;
lineGap(lineGap: number): /*elided*/ any;
moveDown(line?: number): /*elided*/ any;
moveUp(line?: number): /*elided*/ any;
text(text: string, x?: number, y?: number, options?: PDFKit.Mixins.TextOptions): /*elided*/ any;
text(text: string, options?: PDFKit.Mixins.TextOptions): /*elided*/ any;
widthOfString(text: string, options?: PDFKit.Mixins.TextOptions): number;
heightOfString(text: string, options?: PDFKit.Mixins.TextOptions): number;
boundsOfString(text: string, x?: number, y?: number, options?: PDFKit.Mixins.TextOptions): PDFKit.Mixins.TextBounds;
boundsOfString(text: string, options?: PDFKit.Mixins.TextOptions): PDFKit.Mixins.TextBounds;
list(list: Array<string | any>, x?: number, y?: number, options?: PDFKit.Mixins.TextOptions): /*elided*/ any;
list(list: Array<string | any>, options?: PDFKit.Mixins.TextOptions): /*elided*/ any;
save(): /*elided*/ any;
restore(): /*elided*/ any;
closePath(): /*elided*/ any;
lineWidth(w: number): /*elided*/ any;
lineCap(c: string): /*elided*/ any;
lineJoin(j: string): /*elided*/ any;
miterLimit(m: any): /*elided*/ any;
dash(length: number, option: any): /*elided*/ any;
undash(): /*elided*/ any;
moveTo(x: number, y: number): /*elided*/ any;
lineTo(x: number, y: number): /*elided*/ any;
bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): /*elided*/ any;
quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): /*elided*/ any;
rect(x: number, y: number, w: number, h: number): /*elided*/ any;
roundedRect(x: number, y: number, w: number, h: number, r?: number): /*elided*/ any;
ellipse(x: number, y: number, r1: number, r2?: number): /*elided*/ any;
circle(x: number, y: number, radius: number): /*elided*/ any;
polygon(...points: number[][]): /*elided*/ any;
path(path: string): /*elided*/ any;
fill(color?: PDFKit.Mixins.ColorValue, rule?: PDFKit.Mixins.RuleValue): /*elided*/ any;
fill(rule: PDFKit.Mixins.RuleValue): /*elided*/ any;
stroke(color?: PDFKit.Mixins.ColorValue): /*elided*/ any;
fillAndStroke(fillColor?: PDFKit.Mixins.ColorValue, strokeColor?: PDFKit.Mixins.ColorValue, rule?: PDFKit.Mixins.RuleValue): /*elided*/ any;
fillAndStroke(fillColor: PDFKit.Mixins.ColorValue, rule?: PDFKit.Mixins.RuleValue): /*elided*/ any;
fillAndStroke(rule: PDFKit.Mixins.RuleValue): /*elided*/ any;
clip(rule?: PDFKit.Mixins.RuleValue): /*elided*/ any;
transform(m11: number, m12: number, m21: number, m22: number, dx: number, dy: number): /*elided*/ any;
translate(x: number, y: number): /*elided*/ any;
rotate(angle: number, options?: {
origin?: number[] | undefined;
}): /*elided*/ any;
scale(xFactor: number, yFactor?: number, options?: {
origin?: number[] | undefined;
}): /*elided*/ any;
font(src: PDFKit.Mixins.PDFFontSource, size?: number): /*elided*/ any;
font(src: PDFKit.Mixins.PDFFontSource, family: string, size?: number): /*elided*/ any;
fontSize(size: number): /*elided*/ any;
sizeToPoint(size: PDFKit.Mixins.Size, defaultValue?: number, page?: PDFKit.PDFPage, percentageWidth?: number): number;
currentLineHeight(includeGap?: boolean): number;
registerFont(name: string, src?: PDFKit.Mixins.PDFFontSource, family?: string): /*elided*/ any;
initForm(): /*elided*/ any;
endAcroForm(): /*elided*/ any;
formField(name: string, options?: Record<string, any>): PDFKit.PDFKitReference;
formAnnotation(name: string, type: string, x: number, y: number, w: number, h: number, options?: object): /*elided*/ any;
formText(name: string, x: number, y: number, w: number, h: number, options?: object): /*elided*/ any;
formPushButton(name: string, x: number, y: number, w: number, h: number, options?: object): /*elided*/ any;
formCombo(name: string, x: number, y: number, w: number, h: number, options?: object): /*elided*/ any;
formList(name: string, x: number, y: number, w: number, h: number, options?: object): /*elided*/ any;
formRadioButton(name: string, x: number, y: number, w: number, h: number, options?: object): /*elided*/ any;
formCheckbox(name: string, x: number, y: number, w: number, h: number, options?: object): /*elided*/ any;
markContent(tag: string, options?: PDFKit.Mixins.MarkingOptions): /*elided*/ any;
endMarkedContent(): /*elided*/ any;
struct(tag: string, options?: PDFKit.Mixins.StructureElementOptions, children?: PDFKit.PDFStructureElementChild | PDFKit.PDFStructureElementChild[]): PDFKit.PDFStructureElement;
addStructure(structElem: PDFKit.PDFStructureElement): /*elided*/ any;
initMarkings(options?: {
tagged?: boolean;
}): void;
initPageMarkings(pageMarkings: PDFKit.Mixins.PageMarking[]): void;
endPageMarkings(page: PDFKit.PDFPage): PDFKit.Mixins.PageMarking[];
markStructureContent(tag: string, options?: PDFKit.Mixins.MarkingOptions): PDFKit.PDFStructureContent;
getMarkingsDictionary(): PDFKit.PDFKitReference;
getStructTreeRoot(): PDFKit.PDFKitReference;
createStructParentTreeNextKey(): number;
endMarkings(): void;
file(src: Buffer | ArrayBuffer | string, options?: PDFKit.Mixins.PDFAttachmentOptions): /*elided*/ any;
initSubset(options: {
subset: PDFKit.Mixins.PDFSubsets;
}): void;
endSubset(): void;
outline: PDFKit.PDFOutline;
initOutline(): void;
endOutline(): void;
};
version: number;
compress: boolean;
info: PDFKit.DocumentInfo;
options: PDFKit.PDFDocumentOptions;
page: PDFKit.PDFPage;
x: number;
y: number;
addPage(options?: PDFKit.PDFDocumentOptions): PDFKit.PDFDocument;
continueOnNewPage(options?: PDFKit.PDFDocumentOptions): PDFKit.PDFDocument;
bufferedPageRange(): {
start: number;
count: number;
};
switchToPage(n?: number): PDFKit.PDFPage;
flushPages(): void;
addNamedDestination(name: string): void;
addNamedDestination(name: string, fitType: "Fit"): void;
addNamedDestination(name: string, fitType: "FitB"): void;
addNamedDestination(name: string, fitType: "FitBH", top: number): void;
addNamedDestination(name: string, fitType: "FitBV", left: number): void;
addNamedDestination(name: string, fitType: "FitH", top: number): void;
addNamedDestination(name: string, fitType: "FitR", x1: number, y1: number, x2: number, y2: number): void;
addNamedDestination(name: string, fitType: "FitV", left: number): void;
addNamedDestination(name: string, fitType: "XYZ", left: number | null, top: number | null, zoom: number | null): void;
addNamedDestination(name: string, fitType: string, ...args: number[]): void;
addNamedEmbeddedFile(name: string, ref: PDFKit.PDFKitReference): void;
addNamedJavaScript(name: string, js: string): void;
ref(data: {}): PDFKit.PDFKitReference;
addContent(data: any): PDFKit.PDFDocument;
end(): void;
toString(): string;
readonly readableAborted: boolean;
readable: boolean;
readonly readableDidRead: boolean;
readonly readableEncoding: BufferEncoding | null;
readonly readableEnded: boolean;
readonly readableFlowing: boolean | null;
readonly readableHighWaterMark: number;
readonly readableLength: number;
readonly readableObjectMode: boolean;
destroyed: boolean;
readonly closed: boolean;
readonly errored: Error | null;
_construct?(callback: (error?: Error | null) => void): void;
_read(size: number): void;
read(size?: number): any;
setEncoding(encoding: BufferEncoding): PDFKit.PDFDocument;
pause(): PDFKit.PDFDocument;
resume(): PDFKit.PDFDocument;
isPaused(): boolean;
unpipe(destination?: NodeJS.WritableStream): PDFKit.PDFDocument;
unshift(chunk: any, encoding?: BufferEncoding): void;
wrap(stream: NodeJS.ReadableStream): PDFKit.PDFDocument;
push(chunk: any, encoding?: BufferEncoding): boolean;
iterator(options?: {
destroyOnReturn?: boolean;
}): NodeJS.AsyncIterator<any>;
map(fn: (data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => any, options?: import("stream").ArrayOptions): import("stream").Readable;
filter(fn: (data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => boolean | Promise<boolean>, options?: import("stream").ArrayOptions): import("stream").Readable;
forEach(fn: (data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => void | Promise<void>, options?: import("stream").ArrayOptions): Promise<void>;
toArray(options?: Pick<import("stream").ArrayOptions, "signal">): Promise<any[]>;
some(fn: (data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => boolean | Promise<boolean>, options?: import("stream").ArrayOptions): Promise<boolean>;
find<T>(fn: (data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => data is T, options?: import("stream").ArrayOptions): Promise<T | undefined>;
find(fn: (data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => boolean | Promise<boolean>, options?: import("stream").ArrayOptions): Promise<any>;
every(fn: (data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => boolean | Promise<boolean>, options?: import("stream").ArrayOptions): Promise<boolean>;
flatMap(fn: (data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => any, options?: import("stream").ArrayOptions): import("stream").Readable;
drop(limit: number, options?: Pick<import("stream").ArrayOptions, "signal">): import("stream").Readable;
take(limit: number, options?: Pick<import("stream").ArrayOptions, "signal">): import("stream").Readable;
asIndexedPairs(options?: Pick<import("stream").ArrayOptions, "signal">): import("stream").Readable;
reduce<T = any>(fn: (previous: any, data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => T, initial?: undefined, options?: Pick<import("stream").ArrayOptions, "signal">): Promise<T>;
reduce<T = any>(fn: (previous: T, data: any, options?: Pick<import("stream").ArrayOptions, "signal">) => T, initial: T, options?: Pick<import("stream").ArrayOptions, "signal">): Promise<T>;
_destroy(error: Error | null, callback: (error?: Error | null) => void): void;
destroy(error?: Error): PDFKit.PDFDocument;
addListener(event: "close", listener: () => void): PDFKit.PDFDocument;
addListener(event: "data", listener: (chunk: any) => void): PDFKit.PDFDocument;
addListener(event: "end", listener: () => void): PDFKit.PDFDocument;
addListener(event: "error", listener: (err: Error) => void): PDFKit.PDFDocument;
addListener(event: "pause", listener: () => void): PDFKit.PDFDocument;
addListener(event: "readable", listener: () => void): PDFKit.PDFDocument;
addListener(event: "resume", listener: () => void): PDFKit.PDFDocument;
addListener(event: string | symbol, listener: (...args: any[]) => void): PDFKit.PDFDocument;
emit(event: "close"): boolean;
emit(event: "data", chunk: any): boolean;
emit(event: "end"): boolean;
emit(event: "error", err: Error): boolean;
emit(event: "pause"): boolean;
emit(event: "readable"): boolean;
emit(event: "resume"): boolean;
emit(event: string | symbol, ...args: any[]): boolean;
on(event: "close", listener: () => void): PDFKit.PDFDocument;
on(event: "data", listener: (chunk: any) => void): PDFKit.PDFDocument;
on(event: "end", listener: () => void): PDFKit.PDFDocument;
on(event: "error", listener: (err: Error) => void): PDFKit.PDFDocument;
on(event: "pause", listener: () => void): PDFKit.PDFDocument;
on(event: "readable", listener: () => void): PDFKit.PDFDocument;
on(event: "resume", listener: () => void): PDFKit.PDFDocument;
on(event: string | symbol, listener: (...args: any[]) => void): PDFKit.PDFDocument;
once(event: "close", listener: () => void): PDFKit.PDFDocument;
once(event: "data", listener: (chunk: any) => void): PDFKit.PDFDocument;
once(event: "end", listener: () => void): PDFKit.PDFDocument;
once(event: "error", listener: (err: Error) => void): PDFKit.PDFDocument;
once(event: "pause", listener: () => void): PDFKit.PDFDocument;
once(event: "readable", listener: () => void): PDFKit.PDFDocument;
once(event: "resume", listener: () => void): PDFKit.PDFDocument;
once(event: string | symbol, listener: (...args: any[]) => void): PDFKit.PDFDocument;
prependListener(event: "close", listener: () => void): PDFKit.PDFDocument;
prependListener(event: "data", listener: (chunk: any) => void): PDFKit.PDFDocument;
prependListener(event: "end", listener: () => void): PDFKit.PDFDocument;
prependListener(event: "error", listener: (err: Error) => void): PDFKit.PDFDocument;
prependListener(event: "pause", listener: () => void): PDFKit.PDFDocument;
prependListener(event: "readable", listener: () => void): PDFKit.PDFDocument;
prependListener(event: "resume", listener: () => void): PDFKit.PDFDocument;
prependListener(event: string | symbol, listener: (...args: any[]) => void): PDFKit.PDFDocument;
prependOnceListener(event: "close", listener: () => void): PDFKit.PDFDocument;
prependOnceListener(event: "data", listener: (chunk: any) => void): PDFKit.PDFDocument;
prependOnceListener(event: "end", listener: () => void): PDFKit.PDFDocument;
prependOnceListener(event: "error", listener: (err: Error) => void): PDFKit.PDFDocument;
prependOnceListener(event: "pause", listener: () => void): PDFKit.PDFDocument;
prependOnceListener(event: "readable", listener: () => void): PDFKit.PDFDocument;
prependOnceListener(event: "resume", listener: () => void): PDFKit.PDFDocument;
prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): PDFKit.PDFDocument;
removeListener(event: "close", listener: () => void): PDFKit.PDFDocument;
removeListener(event: "data", listener: (chunk: any) => void): PDFKit.PDFDocument;
removeListener(event: "end", listener: () => void): PDFKit.PDFDocument;
removeListener(event: "error", listener: (err: Error) => void): PDFKit.PDFDocument;
removeListener(event: "pause", listener: () => void): PDFKit.PDFDocument;
removeListener(event: "readable", listener: () => void): PDFKit.PDFDocument;
removeListener(event: "resume", listener: () => void): PDFKit.PDFDocument;
removeListener(event: string | symbol, listener: (...args: any[]) => void): PDFKit.PDFDocument;
[Symbol.asyncIterator](): NodeJS.AsyncIterator<any>;
[Symbol.asyncDispose](): Promise<void>;
pipe<T extends NodeJS.WritableStream>(destination: T, options?: {
end?: boolean | undefined;
}): T;
compose<T extends NodeJS.ReadableStream>(stream: ((source: any) => void) | T | Iterable<T> | AsyncIterable<T>, options?: {
signal: AbortSignal;
}): T;
[EventEmitter.captureRejectionSymbol]?<K>(error: Error, event: string | symbol, ...args: any[]): void;
off<K>(eventName: string | symbol, listener: (...args: any[]) => void): PDFKit.PDFDocument;
removeAllListeners(eventName?: string | symbol): PDFKit.PDFDocument;
setMaxListeners(n: number): PDFKit.PDFDocument;
getMaxListeners(): number;
listeners<K>(eventName: string | symbol): Function[];
rawListeners<K>(eventName: string | symbol): Function[];
listenerCount<K>(eventName: string | symbol, listener?: Function): number;
eventNames(): (string | symbol)[];
initMetadata(): void;
appendXML(XMLxml: string, newLine?: boolean): void;
endMetadata(): void;
annotate(x: number, y: number, w: number, h: number, option: PDFKit.Mixins.AnnotationOption): PDFKit.PDFDocument;
note(x: number, y: number, w: number, h: number, content: string, option?: PDFKit.Mixins.AnnotationOption): PDFKit.PDFDocument;
goTo(x: number, y: number, w: number, h: number, name: string, options?: PDFKit.Mixins.AnnotationOption): PDFKit.PDFDocument;
link(x: number, y: number, w: number, h: number, url: string, option?: PDFKit.Mixins.AnnotationOption): PDFKit.PDFDocument;
highlight(x: number, y: number, w: number, h: number, option?: PDFKit.Mixins.AnnotationOption): PDFKit.PDFDocument;
underline(x: number, y: number, w: number, h: number, option?: PDFKit.Mixins.AnnotationOption): PDFKit.PDFDocument;
strike(x: number, y: number, w: number, h: number, option?: PDFKit.Mixins.AnnotationOption): PDFKit.PDFDocument;
lineAnnotation(x1: number, y1: number, x2: number, y2: number, option?: PDFKit.Mixins.AnnotationOption): PDFKit.PDFDocument;
rectAnnotation(x: number, y: number, w: number, h: number, option?: PDFKit.Mixins.AnnotationOption): PDFKit.PDFDocument;
ellipseAnnotation(x: number, y: number, w: number, h: number, option?: PDFKit.Mixins.AnnotationOption): PDFKit.PDFDocument;
textAnnotation(x: number, y: number, w: number, h: number, text: string, option?: PDFKit.Mixins.AnnotationOption): PDFKit.PDFDocument;
fillColor(color: PDFKit.Mixins.ColorValue, opacity?: number): PDFKit.PDFDocument;
strokeColor(color: PDFKit.Mixins.ColorValue, opacity?: number): PDFKit.PDFDocument;
opacity(opacity: number): PDFKit.PDFDocument;
fillOpacity(opacity: number): PDFKit.PDFDocument;
strokeOpacity(opacity: number): PDFKit.PDFDocument;
linearGradient(x1: number, y1: number, x2: number, y2: number): PDFKit.PDFLinearGradient;
radialGradient(x1: number, y1: number, r1: number, x2: number, y2: number, r2: number): PDFKit.PDFRadialGradient;
pattern(bbox: PDFKit.Mixins.BoundingBox, xStep: number, yStep: number, stream: string): PDFKit.PDFTilingPattern;
image(src: PDFKit.Mixins.ImageSrc, x?: number, y?: number, options?: PDFKit.Mixins.ImageOption): PDFKit.PDFDocument;
image(src: PDFKit.Mixins.ImageSrc, options?: PDFKit.Mixins.ImageOption): PDFKit.PDFDocument;
table(options?: PDFKit.Mixins.TableOptions): PDFKit.Mixins.PDFTableObject;
table(options: PDFKit.Mixins.TableOptionsWithData): PDFKit.PDFDocument;
lineGap(lineGap: number): PDFKit.PDFDocument;
moveDown(line?: number): PDFKit.PDFDocument;
moveUp(line?: number): PDFKit.PDFDocument;
text(text: string, x?: number, y?: number, options?: PDFKit.Mixins.TextOptions): PDFKit.PDFDocument;
text(text: string, options?: PDFKit.Mixins.TextOptions): PDFKit.PDFDocument;
widthOfString(text: string, options?: PDFKit.Mixins.TextOptions): number;
heightOfString(text: string, options?: PDFKit.Mixins.TextOptions): number;
boundsOfString(text: string, x?: number, y?: number, options?: PDFKit.Mixins.TextOptions): PDFKit.Mixins.TextBounds;
boundsOfString(text: string, options?: PDFKit.Mixins.TextOptions): PDFKit.Mixins.TextBounds;
list(list: Array<string | any>, x?: number, y?: number, options?: PDFKit.Mixins.TextOptions): PDFKit.PDFDocument;
list(list: Array<string | any>, options?: PDFKit.Mixins.TextOptions): PDFKit.PDFDocument;
save(): PDFKit.PDFDocument;
restore(): PDFKit.PDFDocument;
closePath(): PDFKit.PDFDocument;
lineWidth(w: number): PDFKit.PDFDocument;
lineCap(c: string): PDFKit.PDFDocument;
lineJoin(j: string): PDFKit.PDFDocument;
miterLimit(m: any): PDFKit.PDFDocument;
dash(length: number, option: any): PDFKit.PDFDocument;
undash(): PDFKit.PDFDocument;
moveTo(x: number, y: number): PDFKit.PDFDocument;
lineTo(x: number, y: number): PDFKit.PDFDocument;
bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): PDFKit.PDFDocument;
quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): PDFKit.PDFDocument;
rect(x: number, y: number, w: number, h: number): PDFKit.PDFDocument;
roundedRect(x: number, y: number, w: number, h: number, r?: number): PDFKit.PDFDocument;
ellipse(x: number, y: number, r1: number, r2?: number): PDFKit.PDFDocument;
circle(x: number, y: number, radius: number): PDFKit.PDFDocument;
polygon(...points: number[][]): PDFKit.PDFDocument;
path(path: string): PDFKit.PDFDocument;
fill(color?: PDFKit.Mixins.ColorValue, rule?: PDFKit.Mixins.RuleValue): PDFKit.PDFDocument;
fill(rule: PDFKit.Mixins.RuleValue): PDFKit.PDFDocument;
stroke(color?: PDFKit.Mixins.ColorValue): PDFKit.PDFDocument;
fillAndStroke(fillColor?: PDFKit.Mixins.ColorValue, strokeColor?: PDFKit.Mixins.ColorValue, rule?: PDFKit.Mixins.RuleValue): PDFKit.PDFDocument;
fillAndStroke(fillColor: PDFKit.Mixins.ColorValue, rule?: PDFKit.Mixins.RuleValue): PDFKit.PDFDocument;
fillAndStroke(rule: PDFKit.Mixins.RuleValue): PDFKit.PDFDocument;
clip(rule?: PDFKit.Mixins.RuleValue): PDFKit.PDFDocument;
transform(m11: number, m12: number, m21: number, m22: number, dx: number, dy: number): PDFKit.PDFDocument;
translate(x: number, y: number): PDFKit.PDFDocument;
rotate(angle: number, options?: {
origin?: number[] | undefined;
}): PDFKit.PDFDocument;
scale(xFactor: number, yFactor?: number, options?: {
origin?: number[] | undefined;
}): PDFKit.PDFDocument;
font(src: PDFKit.Mixins.PDFFontSource, size?: number): PDFKit.PDFDocument;
font(src: PDFKit.Mixins.PDFFontSource, family: string, size?: number): PDFKit.PDFDocument;
fontSize(size: number): PDFKit.PDFDocument;
sizeToPoint(size: PDFKit.Mixins.Size, defaultValue?: number, page?: PDFKit.PDFPage, percentageWidth?: number): number;
currentLineHeight(includeGap?: boolean): number;
registerFont(name: string, src?: PDFKit.Mixins.PDFFontSource, family?: string): PDFKit.PDFDocument;
initForm(): PDFKit.PDFDocument;
endAcroForm(): PDFKit.PDFDocument;
formField(name: string, options?: Record<string, any>): PDFKit.PDFKitReference;
formAnnotation(name: string, type: string, x: number, y: number, w: number, h: number, options?: object): PDFKit.PDFDocument;
formText(name: string, x: number, y: number, w: number, h: number, options?: object): PDFKit.PDFDocument;
formPushButton(name: string, x: number, y: number, w: number, h: number, options?: object): PDFKit.PDFDocument;
formCombo(name: string, x: number, y: number, w: number, h: number, options?: object): PDFKit.PDFDocument;
formList(name: string, x: number, y: number, w: number, h: number, options?: object): PDFKit.PDFDocument;
formRadioButton(name: string, x: number, y: number, w: number, h: number, options?: object): PDFKit.PDFDocument;
formCheckbox(name: string, x: number, y: number, w: number, h: number, options?: object): PDFKit.PDFDocument;
markContent(tag: string, options?: PDFKit.Mixins.MarkingOptions): PDFKit.PDFDocument;
endMarkedContent(): PDFKit.PDFDocument;
struct(tag: string, options?: PDFKit.Mixins.StructureElementOptions, children?: PDFKit.PDFStructureElementChild | PDFKit.PDFStructureElementChild[]): PDFKit.PDFStructureElement;
addStructure(structElem: PDFKit.PDFStructureElement): PDFKit.PDFDocument;
initMarkings(options?: {
tagged?: boolean;
}): void;
initPageMarkings(pageMarkings: PDFKit.Mixins.PageMarking[]): void;
endPageMarkings(page: PDFKit.PDFPage): PDFKit.Mixins.PageMarking[];
markStructureContent(tag: string, options?: PDFKit.Mixins.MarkingOptions): PDFKit.PDFStructureContent;
getMarkingsDictionary(): PDFKit.PDFKitReference;
getStructTreeRoot(): PDFKit.PDFKitReference;
createStructParentTreeNextKey(): number;
endMarkings(): void;
file(src: Buffer | ArrayBuffer | string, options?: PDFKit.Mixins.PDFAttachmentOptions): PDFKit.PDFDocument;
initSubset(options: {
subset: PDFKit.Mixins.PDFSubsets;
}): void;
endSubset(): void;
outline: PDFKit.PDFOutline;
initOutline(): void;
endOutline(): void;
};