@lifeart/gxt
Version:
<img align="right" width="95" height="95" alt="Philosopher’s stone, logo of PostCSS" src="./public/logo.png">
232 lines (230 loc) • 7.75 kB
TypeScript
import { PdfStyle, PageSize, PageOrientation, PageMode, PageLayout, ImageSource, PdfPaintContext, DocumentProps, PageProps, ViewProps, TextProps, ImageProps, LinkProps, CanvasProps, NoteProps } from './types';
export declare const DESTROYED_NODES: WeakSet<PdfBaseElement>;
/**
* Base class for all PDF elements
*/
export declare class PdfBaseElement {
readonly isPdfElement = true;
debugName?: string;
parentElement: PdfBaseElement | null;
children: PdfBaseElement[];
isConnected: boolean;
get parentNode(): PdfBaseElement | null;
removeChild(child: PdfBaseElement): void;
appendChild(child: PdfBaseElement): void;
remove(): void;
get childNodes(): PdfBaseElement[];
/**
* Serialize element to a plain object for PDF generation
*/
toJSON(): Record<string, any>;
}
/**
* Comment/placeholder element (invisible)
*/
export declare class PdfComment extends PdfBaseElement {
readonly isPdfComment = true;
text: string;
constructor(text?: string);
toJSON(): Record<string, any>;
}
/**
* Fragment element for grouping
*/
export declare class PdfFragment extends PdfBaseElement {
readonly isPdfFragment = true;
constructor();
toJSON(): Record<string, any>;
}
/**
* Text node element
*/
export declare class PdfTextNode extends PdfBaseElement {
readonly isPdfTextNode = true;
textContent: string;
constructor(text?: string);
toJSON(): Record<string, any>;
}
/**
* Document element - root container for PDF
*/
export declare class PdfDocument extends PdfBaseElement {
readonly isPdfDocument = true;
props: DocumentProps;
constructor();
get title(): string | undefined;
set title(value: string | undefined);
get author(): string | undefined;
set author(value: string | undefined);
get subject(): string | undefined;
set subject(value: string | undefined);
get keywords(): string | undefined;
set keywords(value: string | undefined);
get creator(): string | undefined;
set creator(value: string | undefined);
get producer(): string | undefined;
set producer(value: string | undefined);
get pdfVersion(): string | undefined;
set pdfVersion(value: string | undefined);
get language(): string | undefined;
set language(value: string | undefined);
get pageMode(): PageMode | undefined;
set pageMode(value: PageMode | undefined);
get pageLayout(): PageLayout | undefined;
set pageLayout(value: PageLayout | undefined);
get onRender(): ((blob: Blob) => void) | undefined;
set onRender(value: ((blob: Blob) => void) | undefined);
toJSON(): Record<string, any>;
}
/**
* Page element - represents a single page in the PDF
*/
export declare class PdfPage extends PdfBaseElement {
readonly isPdfPage = true;
props: PageProps;
constructor();
get size(): PageSize;
set size(value: PageSize);
get orientation(): PageOrientation;
set orientation(value: PageOrientation);
get wrap(): boolean;
set wrap(value: boolean);
get style(): PdfStyle | PdfStyle[] | undefined;
set style(value: PdfStyle | PdfStyle[] | undefined);
get debug(): boolean;
set debug(value: boolean);
get dpi(): number;
set dpi(value: number);
get id(): string | undefined;
set id(value: string | undefined);
toJSON(): Record<string, any>;
}
/**
* View element - layout container (like a div)
*/
export declare class PdfView extends PdfBaseElement {
readonly isPdfView = true;
props: ViewProps;
constructor();
get wrap(): boolean;
set wrap(value: boolean);
get style(): PdfStyle | PdfStyle[] | undefined;
set style(value: PdfStyle | PdfStyle[] | undefined);
get debug(): boolean;
set debug(value: boolean);
get fixed(): boolean;
set fixed(value: boolean);
get id(): string | undefined;
set id(value: string | undefined);
toJSON(): Record<string, any>;
}
/**
* Text element - displays text content
*/
export declare class PdfText extends PdfBaseElement {
readonly isPdfText = true;
props: TextProps;
constructor();
get wrap(): boolean;
set wrap(value: boolean);
get style(): PdfStyle | PdfStyle[] | undefined;
set style(value: PdfStyle | PdfStyle[] | undefined);
get debug(): boolean;
set debug(value: boolean);
get fixed(): boolean;
set fixed(value: boolean);
get id(): string | undefined;
set id(value: string | undefined);
/**
* Get the text content from children
*/
getTextContent(): string;
toJSON(): Record<string, any>;
}
/**
* Image element - displays images
*/
export declare class PdfImage extends PdfBaseElement {
readonly isPdfImage = true;
props: ImageProps;
constructor();
get src(): ImageSource | undefined;
set src(value: ImageSource | undefined);
get source(): ImageSource | undefined;
set source(value: ImageSource | undefined);
get style(): PdfStyle | PdfStyle[] | undefined;
set style(value: PdfStyle | PdfStyle[] | undefined);
get debug(): boolean;
set debug(value: boolean);
get fixed(): boolean;
set fixed(value: boolean);
get cache(): boolean;
set cache(value: boolean);
toJSON(): Record<string, any>;
}
/**
* Link element - creates hyperlinks
*/
export declare class PdfLink extends PdfBaseElement {
readonly isPdfLink = true;
props: LinkProps;
constructor();
get src(): string | undefined;
set src(value: string | undefined);
get wrap(): boolean;
set wrap(value: boolean);
get style(): PdfStyle | PdfStyle[] | undefined;
set style(value: PdfStyle | PdfStyle[] | undefined);
get debug(): boolean;
set debug(value: boolean);
get fixed(): boolean;
set fixed(value: boolean);
toJSON(): Record<string, any>;
}
/**
* Canvas element - for custom drawing
*/
export declare class PdfCanvas extends PdfBaseElement {
readonly isPdfCanvas = true;
props: CanvasProps;
private _paint?;
constructor();
get style(): PdfStyle | PdfStyle[] | undefined;
set style(value: PdfStyle | PdfStyle[] | undefined);
get paint(): ((ctx: PdfPaintContext, width: number, height: number) => void) | undefined;
set paint(value: ((ctx: PdfPaintContext, width: number, height: number) => void) | undefined);
get debug(): boolean;
set debug(value: boolean);
get fixed(): boolean;
set fixed(value: boolean);
toJSON(): Record<string, any>;
}
/**
* Note element - creates annotations
*/
export declare class PdfNote extends PdfBaseElement {
readonly isPdfNote = true;
props: NoteProps;
content: string;
constructor();
get style(): PdfStyle | PdfStyle[] | undefined;
set style(value: PdfStyle | PdfStyle[] | undefined);
get fixed(): boolean;
set fixed(value: boolean);
toJSON(): Record<string, any>;
}
/**
* Type guard functions
*/
export declare function isPdfElement(node: unknown): node is PdfBaseElement;
export declare function isPdfDocument(node: unknown): node is PdfDocument;
export declare function isPdfPage(node: unknown): node is PdfPage;
export declare function isPdfView(node: unknown): node is PdfView;
export declare function isPdfText(node: unknown): node is PdfText;
export declare function isPdfTextNode(node: unknown): node is PdfTextNode;
export declare function isPdfImage(node: unknown): node is PdfImage;
export declare function isPdfLink(node: unknown): node is PdfLink;
export declare function isPdfCanvas(node: unknown): node is PdfCanvas;
export declare function isPdfNote(node: unknown): node is PdfNote;
export declare function isPdfComment(node: unknown): node is PdfComment;
export declare function isPdfFragment(node: unknown): node is PdfFragment;