lbx-invoice
Version:
Provides functionality around generating invoices.
98 lines (97 loc) • 3.53 kB
TypeScript
import { AttachmentOptions } from 'pdf-lib';
import { Column, Content, DynamicContent, ImageDefinition, Size, TDocumentDefinitions, TableCell } from 'pdfmake/interfaces';
/**
* Definition of an image to be embedded into the document.
*/
export type PdfMakeImageDefinition = ImageDefinition;
/**
* Column used as part of ContentColumns.
*/
export type PdfMakeColumn = Column;
/**
* Common type for all available content elements.
*
* Special content types:
* - A string is rendered like a ContentText
* - An array is rendered like a ContentStack.
*/
export type PdfMakeContent = Content;
/**
* Callback that returns content depending on the current page number,
* the total number of pages, or the size of the current page.
*/
export type PdfMakeDynamicContent = DynamicContent;
/**
* Sizes for the width of stand-alone columns and table columns.
*
* Available options are:
* - A number to define an absolute width in `pt`
* - A percentage string such as `50%` to fill a portion of the available space
* - `auto` to set the width based on the content
* - `*` to fill the remaining available space, distributed equally among
* all star-sized columns.
*/
export type PdfMakeSize = Size;
/**
* A cell of a Table.
* - Can be any valid content. Content objects provide additional properties to control
* the cell's appearance.
* - Use empty objects (`{}`) as placeholders for cells that are covered by other cells
* spanning multiple rows or columns.
*/
export type PdfMakeTableCell = TableCell;
/**
* The definition for an embedded file inside of an pdf.
*/
export interface PdfMakeEmbeddedFile {
/**
* The src of the file.
* Can be either a local file reference, an url or a data uri.
*/
src: string;
/**
* The name of the file with the extension.
*/
name: string;
/**
* A description fo the file.
*/
description?: string;
}
/**
* Extended type of the pdfmake document definition.
* Includes the files property of the beta version.
*/
export type PdfMakeDocumentDefinition = TDocumentDefinitions;
/**
* Utility class for handling pdf files.
*/
export declare abstract class PdfUtilities {
/**
* Creates a pdf from the provided document definition.
* @param documentDefinition - The definition to create the pdf from.
* @returns The finished pdfMake pdf as a base64 string.
*/
static createPdf(documentDefinition: PdfMakeDocumentDefinition): Promise<string>;
/**
* Attaches a file to the pdf at the given path.
* @param pdfFilePath - The path of the pdf to attach to.
* @param attachment - The raw attachment data.
* @param name - The name of the file to attach.
* @param options - Other options for the attachment, eg. The mime type.
*/
static attach(pdfFilePath: string, attachment: string | Uint8Array | ArrayBuffer, name: string, options?: AttachmentOptions): Promise<void>;
/**
* Sets the XMP Metadata from the given xml string.
* @param metadataXML - The xmp metadata xml as a string.
* @param pdfFilePath - The path of the pdf to set the metadata for.
*/
private static setXmpMetadata;
/**
* Gets the XMP Metadata from the pdf under the provided path.
* @param pdfFilePath - The path of the pdf to get the xmp metadata from.
* @returns An PDFObject or undefined, when no metadata was set.
*/
static getXmpMetadata(pdfFilePath: string): Promise<string | undefined>;
private static assertIsLiteralOrHexString;
}