UNPKG

chromiumly

Version:

A lightweight Typescript library that interacts with Gotenberg's different modules to convert a variety of document formats to PDF files.

87 lines (86 loc) 4 kB
import { ReadStream } from 'fs'; import { Metadata, PdfFormat, type PdfEngineStamp, type PdfEngineWatermark } from '../../common'; import { DownloadFrom, PdfEngineRotate, Split, WebhookOptions } from '../../common/types'; type FileExtension = '123' | '602' | 'abw' | 'bib' | 'bmp' | 'cdr' | 'cgm' | 'cmx' | 'csv' | 'cwk' | 'dbf' | 'dif' | 'doc' | 'docm' | 'docx' | 'dot' | 'dotm' | 'dotx' | 'dxf' | 'emf' | 'eps' | 'epub' | 'fodg' | 'fodp' | 'fods' | 'fodt' | 'fopd' | 'gif' | 'htm' | 'html' | 'hwp' | 'jpeg' | 'jpg' | 'key' | 'ltx' | 'lwp' | 'mcw' | 'met' | 'mml' | 'mw' | 'numbers' | 'odd' | 'odg' | 'odm' | 'odp' | 'ods' | 'odt' | 'otg' | 'oth' | 'otp' | 'ots' | 'ott' | 'pages' | 'pbm' | 'pcd' | 'pct' | 'pcx' | 'pdb' | 'pdf' | 'pgm' | 'png' | 'pot' | 'potm' | 'potx' | 'ppm' | 'pps' | 'ppt' | 'pptm' | 'pptx' | 'psd' | 'psw' | 'pub' | 'pwp' | 'pxl' | 'ras' | 'rtf' | 'sda' | 'sdc' | 'sdd' | 'sdp' | 'sdw' | 'sgl' | 'slk' | 'smf' | 'stc' | 'std' | 'sti' | 'stw' | 'svg' | 'svm' | 'swf' | 'sxc' | 'sxd' | 'sxg' | 'sxi' | 'sxm' | 'sxw' | 'tga' | 'tif' | 'tiff' | 'txt' | 'uof' | 'uop' | 'uos' | 'uot' | 'vdx' | 'vor' | 'vsd' | 'vsdm' | 'vsdx' | 'wb2' | 'wk1' | 'wks' | 'wmf' | 'wpd' | 'wpg' | 'wps' | 'xbm' | 'xhtml' | 'xls' | 'xlsb' | 'xlsm' | 'xlsx' | 'xlt' | 'xltm' | 'xltx' | 'xlw' | 'xml' | 'xpm' | 'zabw'; type FileInfo = { data: Buffer | ReadStream; ext: FileExtension; }; export type PathLikeOrReadStream = string | FileInfo; export type PageProperties = { password?: string; landscape?: boolean; nativePageRanges?: { from: number; to: number; }; exportFormFields?: boolean; singlePageSheets?: boolean; allowDuplicateFieldNames?: boolean; exportBookmarks?: boolean; exportBookmarksToPdfDestination?: boolean; exportPlaceholders?: boolean; exportNotes?: boolean; exportNotesPages?: boolean; exportOnlyNotesPages?: boolean; exportNotesInMargin?: boolean; convertOooTargetToPdfTarget?: boolean; exportLinksRelativeFsys?: boolean; exportHiddenSlides?: boolean; skipEmptyPages?: boolean; addOriginalDocumentAsStream?: boolean; }; export type ConversionOptions = { properties?: PageProperties; merge?: boolean; pdfa?: PdfFormat; pdfUA?: boolean; metadata?: Metadata; losslessImageCompression?: boolean; reduceImageResolution?: boolean; quality?: number; maxImageResolution?: 75 | 150 | 300 | 600 | 1200; initialView?: number; initialPage?: number; magnification?: number; zoom?: number; pageLayout?: number; firstPageOnLeft?: boolean; resizeWindowToInitialPage?: boolean; centerWindow?: boolean; openInFullScreenMode?: boolean; displayPDFDocumentTitle?: boolean; hideViewerMenubar?: boolean; hideViewerToolbar?: boolean; hideViewerWindowControls?: boolean; useTransitionEffects?: boolean; openBookmarkLevels?: number; downloadFrom?: DownloadFrom; webhook?: WebhookOptions; split?: Split; flatten?: boolean; userPassword?: string; ownerPassword?: string; embeds?: PathLikeOrReadStream[]; /** LibreOffice single-line text watermark during export */ nativeWatermarkText?: string; /** Decimal RGB (e.g. 16711680 for red) */ nativeWatermarkColor?: number; /** Font height in points; 0 = auto */ nativeWatermarkFontHeight?: number; /** Rotation in tenths of a degree (e.g. 450 = 45°) */ nativeWatermarkRotateAngle?: number; nativeWatermarkFontName?: string; nativeTiledWatermarkText?: string; /** PDF-engine post-processing watermark; `file` may be a LibreOffice PathLikeOrReadStream */ watermark?: Omit<PdfEngineWatermark, 'file'> & { file?: PathLikeOrReadStream | Buffer; }; /** PDF-engine post-processing stamp */ stamp?: Omit<PdfEngineStamp, 'file'> & { file?: PathLikeOrReadStream | Buffer; }; /** PDF-engine post-process page rotation */ rotate?: PdfEngineRotate; }; export {};