UNPKG

html-to-pdf-converter

Version:

HTML to PDF converter with support for HEADERS, FOOTERS and page numbers

113 lines (112 loc) 2.74 kB
/// <reference types="node" /> export declare class PdfPoints { _n: number; constructor(n: number); static of(n: number): PdfPoints; add(x: PdfPoints): PdfPoints; subtract(x: PdfPoints): PdfPoints; } export declare class Millimeters { _n: number; constructor(n: number); static of(n: number): Millimeters; static max: (a: Millimeters, b: Millimeters) => Millimeters; add(x: Millimeters): Millimeters; subtract(x: Millimeters): Millimeters; toPixels(): Pixels; toPdfPoints(): PdfPoints; toString(): string; } export declare type RoundType = 'none' | 'floor' | 'ceil'; export declare class Pixels { _n: number; constructor(n: number); static of(n: number): Pixels; toMillimeters(type: RoundType): Millimeters; toString(): string; } export interface PdfText { fontPath: string; text: string; size: Millimeters; underline?: boolean; color: number; } export interface Margin<T> { top: T; right: T; bottom: T; left: T; } export interface PrintMargin extends Margin<Millimeters> { } export declare type SlotType = 'header' | 'footer'; export declare const PrintMargin: { ofMillimeters: ({top, right, bottom, left}: Margin<number>) => PrintMargin; ofZero: () => { top: Millimeters; right: Millimeters; bottom: Millimeters; left: Millimeters; }; }; export interface SizeInPixels { width: Pixels; height: Pixels; } export interface PageSize { width: Millimeters; height: Millimeters; } export declare const PageSize: { of: (width: number, height: number) => { width: Millimeters; height: Millimeters; }; ofZero: () => { width: Millimeters; height: Millimeters; }; }; export interface HtmlSlot { type: 'HtmlSlot'; html: string; } export interface TextSlot { type: 'TextSlot'; left?: PdfText; center?: PdfText; right?: PdfText; } export declare type Slot = HtmlSlot | TextSlot; export interface PdfContent { pdfContent: string; margin: PrintMargin; pageSize: PageSize; } export interface PdfContentWithSlots extends PdfContent { header?: Slot; footer?: Slot; } export interface SlotWithPageSize { readonly size: PageSize; readonly data: Slot; } export interface PdfWithSpaceForSlots { readonly mainPdf: Buffer; readonly margin: PrintMargin; readonly header?: SlotWithPageSize; readonly footer?: SlotWithPageSize; } export declare const pageSizeInMM: { A4: { portrait: { width: Millimeters; height: Millimeters; }; landscape: { width: Millimeters; height: Millimeters; }; }; };