UNPKG

@ironsoftware/ironpdf

Version:

IronPDF for Node

696 lines 36.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.barcodeTypeToProto = exports.cssMediaTypeToProto = exports.verticalAlignmentToProto = exports.horizontalAlignmentToProto = exports.measurementUnitToProto = exports.lengthToProto = exports.BarcodeStampOptionsToProto = exports.ImageStampOptionsToProto = exports.TextStampOptionsToProto = exports.HtmlStampOptionsToProto = exports.customPaperSizeToMm = exports.imageBehaviorToProto = exports.pdfPaperSizeToProto = exports.paperSizeToProto = exports.tableOfContentsTypesToProto = exports.useMarginsToProto = exports.fontToProto = exports.textAffixToProto = exports.htmlAffixToProto = exports.pdfPaperSizeIsCustom = exports.chromePdfRenderOptionsToProto = exports.DICT_ELEM_SEP = exports.convertWaitFor = exports.httpLoginCredentialsToProto = exports.CssMediaTypeToProto = exports.PdfPaperOrientationToProto = exports.fitToPaperModeToProto = void 0; const types_1 = require("../../../public/types"); const paper_1 = require("../../../public/paper"); const render_1 = require("../../../public/render"); const converter_1 = require("../pdfium/converter"); const util_1 = require("../util"); function fitToPaperModeToProto(fitToPaperMode) { return { enumValue: fitToPaperMode }; } exports.fitToPaperModeToProto = fitToPaperModeToProto; function PdfPaperOrientationToProto(pdfPaperOrientation) { return { enumValue: pdfPaperOrientation }; } exports.PdfPaperOrientationToProto = PdfPaperOrientationToProto; function CssMediaTypeToProto(cssMediaType) { return { enumValue: cssMediaType }; } exports.CssMediaTypeToProto = CssMediaTypeToProto; function httpLoginCredentialsToProto(httpLoginCredentials) { if (!httpLoginCredentials) return null; throw new Error("not implement"); } exports.httpLoginCredentialsToProto = httpLoginCredentialsToProto; function convertWaitFor(waitFor) { var _a, _b, _c, _d, _e, _f, _g, _h; const defaultMaxWaitTime = 10000; const defaultNetworkIdleDuration = 500; const defaultNumAllowedInFlight = 0; const defaultRenderDelayDuration = 20; const defaultHtmlElementQueryStr = ""; if (!waitFor) { return { type: 0, timeout: defaultMaxWaitTime, networkIdleDuration: defaultNetworkIdleDuration, numAllowedInFlight: defaultNumAllowedInFlight, renderDelayDuration: defaultRenderDelayDuration, htmlElementQueryStr: defaultHtmlElementQueryStr }; } switch (waitFor.type) { case types_1.WaitForType.PageLoad: return { type: 0, timeout: defaultMaxWaitTime, networkIdleDuration: defaultNetworkIdleDuration, numAllowedInFlight: defaultNumAllowedInFlight, renderDelayDuration: defaultRenderDelayDuration, htmlElementQueryStr: defaultHtmlElementQueryStr }; case types_1.WaitForType.JavaScript: return { type: 1, timeout: (_a = waitFor.maxWaitTime) !== null && _a !== void 0 ? _a : defaultMaxWaitTime, networkIdleDuration: defaultNetworkIdleDuration, numAllowedInFlight: defaultNumAllowedInFlight, renderDelayDuration: defaultRenderDelayDuration, htmlElementQueryStr: defaultHtmlElementQueryStr }; case types_1.WaitForType.RenderDelay: return { type: 2, timeout: defaultMaxWaitTime, networkIdleDuration: defaultNetworkIdleDuration, numAllowedInFlight: defaultNumAllowedInFlight, renderDelayDuration: (_b = waitFor.delay) !== null && _b !== void 0 ? _b : defaultRenderDelayDuration, htmlElementQueryStr: defaultHtmlElementQueryStr }; case types_1.WaitForType.NetworkIdle0: return { type: 3, timeout: (_c = waitFor.maxWaitTime) !== null && _c !== void 0 ? _c : defaultMaxWaitTime, networkIdleDuration: defaultNetworkIdleDuration, numAllowedInFlight: defaultNumAllowedInFlight, renderDelayDuration: defaultRenderDelayDuration, htmlElementQueryStr: defaultHtmlElementQueryStr }; case types_1.WaitForType.NetworkIdle2: return { type: 4, timeout: (_d = waitFor.maxWaitTime) !== null && _d !== void 0 ? _d : defaultMaxWaitTime, networkIdleDuration: defaultNetworkIdleDuration, numAllowedInFlight: defaultNumAllowedInFlight, renderDelayDuration: defaultRenderDelayDuration, htmlElementQueryStr: defaultHtmlElementQueryStr }; case types_1.WaitForType.NetworkIdleN: return { type: 5, timeout: (_e = waitFor.maxWaitTime) !== null && _e !== void 0 ? _e : defaultMaxWaitTime, networkIdleDuration: (_f = waitFor.networkIdleDuration) !== null && _f !== void 0 ? _f : defaultNetworkIdleDuration, numAllowedInFlight: (_g = waitFor.maxNumAllowedInflight) !== null && _g !== void 0 ? _g : defaultNumAllowedInFlight, renderDelayDuration: defaultRenderDelayDuration, htmlElementQueryStr: defaultHtmlElementQueryStr }; case types_1.WaitForType.HtmlElement: return { type: 6, timeout: (_h = waitFor.maxWaitTime) !== null && _h !== void 0 ? _h : defaultMaxWaitTime, networkIdleDuration: defaultNetworkIdleDuration, numAllowedInFlight: defaultNumAllowedInFlight, renderDelayDuration: defaultRenderDelayDuration, htmlElementQueryStr: waitFor.htmlQueryStr }; } } exports.convertWaitFor = convertWaitFor; /** * Separator used when joining string arrays into the single-string proto fields * consumed by {@code DictStringMarshaler} on the IronPdfEngine side * (e.g. {@code auto_bookmark_css_selectors}, {@code element_query_selectors}). * * <b>Must match</b> {@code IronSoftware.Pdfium.DictStringMarshaler.ELEM_SEP} * used by the C# engine. If cross-language rendering options stop being picked up by * the engine, this constant is the first place to double-check against the C# source. */ exports.DICT_ELEM_SEP = "(,IRON)"; /** * Joins a string array into the single-string format the engine expects. Returns * {@code undefined} when the input is nullish or effectively empty, so callers can * skip setting the optional proto field. */ function joinDictArray(values) { if (!values || values.length === 0) return undefined; const filtered = values.filter((v) => typeof v === "string" && v.length > 0); if (filtered.length === 0) return undefined; return filtered.join(exports.DICT_ELEM_SEP); } /** * Validate auto-bookmark heading levels. Mirrors the C# {@code ValidateAutoBookmarkHeadingLevels} * check added during PR review: when {@code autoBookmarksFromHeadings} is enabled, both * min and max heading levels must be in [1, 6] and min <= max. */ function validateAutoBookmarkHeadingLevels(options) { var _a, _b; if (options.autoBookmarksFromHeadings !== true) { return; } const min = (_a = options.autoBookmarkMinHeadingLevel) !== null && _a !== void 0 ? _a : 1; const max = (_b = options.autoBookmarkMaxHeadingLevel) !== null && _b !== void 0 ? _b : 6; if (min < 1 || min > 6) { throw new RangeError(`autoBookmarkMinHeadingLevel must be between 1 and 6 (inclusive). Got: ${min}`); } if (max < 1 || max > 6) { throw new RangeError(`autoBookmarkMaxHeadingLevel must be between 1 and 6 (inclusive). Got: ${max}`); } if (min > max) { throw new RangeError(`autoBookmarkMinHeadingLevel (${min}) must be less than or equal to autoBookmarkMaxHeadingLevel (${max}).`); } } function chromePdfRenderOptionsToProto(renderOption) { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3; if (!renderOption) renderOption = (0, render_1.defaultChromePdfRenderOptions)(); validateAutoBookmarkHeadingLevels(renderOption); const waitForDetail = convertWaitFor(renderOption.waitFor); const proto = { createPdfFormsFromHtml: (_a = renderOption.createPdfFormsFromHtml) !== null && _a !== void 0 ? _a : true, customCssUrl: (_b = renderOption.customCssUrl) !== null && _b !== void 0 ? _b : "", enableJavaScript: (_c = renderOption.enableJavaScript) !== null && _c !== void 0 ? _c : true, fitToPaperMode: fitToPaperModeToProto((_d = renderOption.fitToPaperMode) !== null && _d !== void 0 ? _d : types_1.FitToPaperModes.Default), grayScale: (_e = renderOption.grayScale) !== null && _e !== void 0 ? _e : false, marginTop: (_h = (((_f = renderOption.margin) === null || _f === void 0 ? void 0 : _f.top) || ((_g = renderOption.margin) === null || _g === void 0 ? void 0 : _g.default))) !== null && _h !== void 0 ? _h : 25, marginBottom: (_l = (((_j = renderOption.margin) === null || _j === void 0 ? void 0 : _j.bottom) || ((_k = renderOption.margin) === null || _k === void 0 ? void 0 : _k.default))) !== null && _l !== void 0 ? _l : 25, marginLeft: (_p = (((_m = renderOption.margin) === null || _m === void 0 ? void 0 : _m.left) || ((_o = renderOption.margin) === null || _o === void 0 ? void 0 : _o.default))) !== null && _p !== void 0 ? _p : 25, marginRight: (_s = (((_q = renderOption.margin) === null || _q === void 0 ? void 0 : _q.right) || ((_r = renderOption.margin) === null || _r === void 0 ? void 0 : _r.default))) !== null && _s !== void 0 ? _s : 25, paperOrientation: PdfPaperOrientationToProto((_t = renderOption.paperOrientation) !== null && _t !== void 0 ? _t : types_1.PdfPaperOrientation.Portrait), printHtmlBackgrounds: (_u = renderOption.printHtmlBackgrounds) !== null && _u !== void 0 ? _u : true, timeout: (_v = renderOption.timeout) !== null && _v !== void 0 ? _v : 60, waitFor: { Type: waitForDetail.type, Timeout: waitForDetail.timeout, NetworkIdleDuration: waitForDetail.networkIdleDuration, NumAllowedInFlight: waitForDetail.numAllowedInFlight, RenderDelayDuration: waitForDetail.renderDelayDuration, HtmlElementQueryStr: waitForDetail.htmlElementQueryStr, }, // WaitForNetworkIdleDuration: waitForDetail.networkIdleDuration, // WaitForType: waitForDetail.type, // WaitForNumAllowedInflight: waitForDetail.numAllowedInFlight, // WaitForTimeout: waitForDetail.timeout, title: (_w = renderOption.title) !== null && _w !== void 0 ? _w : "", viewPortHeight: 1280, viewPortWidth: 1024, zoom: 100, javascript: (_x = renderOption.javascript) !== null && _x !== void 0 ? _x : "", firstPageNumber: (_y = renderOption.firstPageNumber) !== null && _y !== void 0 ? _y : 1, tableOfContents: tableOfContentsTypesToProto((_z = renderOption.tableOfContents) !== null && _z !== void 0 ? _z : types_1.TableOfContentsTypes.None), }; if (!(0, util_1.isNullOrUndefined)(renderOption.cssMediaType)) { proto.cssMediaType = CssMediaTypeToProto(renderOption.cssMediaType); } if (!(0, util_1.isNullOrUndefined)(renderOption.inputEncoding)) { proto.inputEncoding = renderOption.inputEncoding; } if (!(0, util_1.isNullOrUndefined)(renderOption.useMarginsOnHeaderAndFooter)) { proto.useMarginsOnHeaderFooter = useMarginsToProto(renderOption.useMarginsOnHeaderAndFooter); } if (!(0, util_1.isNullOrUndefined)(renderOption.htmlHeader)) { proto.htmlHeader = htmlAffixToProto(renderOption.htmlHeader); } if (!(0, util_1.isNullOrUndefined)(renderOption.htmlFooter)) { proto.htmlFooter = htmlAffixToProto(renderOption.htmlFooter); } if (!(0, util_1.isNullOrUndefined)(renderOption.textHeader)) { proto.textHeader = textAffixToProto(renderOption.textHeader); } if (!(0, util_1.isNullOrUndefined)(renderOption.textFooter)) { proto.textFooter = textAffixToProto(renderOption.textFooter); } if (!(0, util_1.isNullOrUndefined)(renderOption.paperSize)) { if (pdfPaperSizeIsCustom(renderOption.paperSize)) { const wh = customPaperSizeToMm(renderOption.paperSize); proto.customPaperHeight = wh.height; proto.customPaperWidth = wh.width; proto.paperSize = { enumValue: 106 }; //custom } else { proto.paperSize = paperSizeToProto(renderOption.paperSize); } } // Auto-bookmark generation from HTML headings (optional proto fields). // Mirrors the post-review C# behavior: always set css-selector / element-query // fields (empty string when no selectors), and pass min/max heading levels through // verbatim (validated above). `autoBookmarksFromHeadings` itself is only emitted // when enabled so existing engine defaults remain untouched. if (renderOption.autoBookmarksFromHeadings === true) { proto.autoBookmarksFromHeadings = true; proto.autoBookmarkMinHeadingLevel = (_0 = renderOption.autoBookmarkMinHeadingLevel) !== null && _0 !== void 0 ? _0 : 1; proto.autoBookmarkMaxHeadingLevel = (_1 = renderOption.autoBookmarkMaxHeadingLevel) !== null && _1 !== void 0 ? _1 : 6; } proto.autoBookmarkCssSelectors = (_2 = joinDictArray(renderOption.autoBookmarkCssSelectors)) !== null && _2 !== void 0 ? _2 : ""; // Element query selectors for engine-side element location tracking. proto.elementQuerySelectors = (_3 = joinDictArray(renderOption.elementQuerySelectors)) !== null && _3 !== void 0 ? _3 : ""; return proto; } exports.chromePdfRenderOptionsToProto = chromePdfRenderOptionsToProto; function pdfPaperSizeIsCustom(pdfPaperSize) { return pdfPaperSize instanceof Object && "width" in pdfPaperSize && "height" in pdfPaperSize && "unit" in pdfPaperSize; } exports.pdfPaperSizeIsCustom = pdfPaperSizeIsCustom; function htmlAffixToProto(htmlAffix) { var _a, _b, _c, _d, _e; return { htmlFragment: (_a = htmlAffix.htmlFragment) !== null && _a !== void 0 ? _a : "", // baseUrl: htmlAffix.baseUrl, //not supported dividerLineColor: (_b = htmlAffix.dividerLineColor) !== null && _b !== void 0 ? _b : "#B1B1B1", drawDividerLine: (_c = htmlAffix.dividerLine) !== null && _c !== void 0 ? _c : false, loadStylesAndCSSFromMainHtmlDocument: (_d = htmlAffix.loadStylesAndCSSFromMainHtmlDocument) !== null && _d !== void 0 ? _d : false, maxHeight: (_e = htmlAffix.maxHeight) !== null && _e !== void 0 ? _e : 176.388, }; } exports.htmlAffixToProto = htmlAffixToProto; function textAffixToProto(textAffix) { var _a, _b, _c, _d, _e, _f, _g; return { leftText: (_a = textAffix === null || textAffix === void 0 ? void 0 : textAffix.leftText) !== null && _a !== void 0 ? _a : "", rightText: (_b = textAffix === null || textAffix === void 0 ? void 0 : textAffix.rightText) !== null && _b !== void 0 ? _b : "", centerText: (_c = textAffix === null || textAffix === void 0 ? void 0 : textAffix.centerText) !== null && _c !== void 0 ? _c : "", font: (_d = fontToProto(textAffix.font)) !== null && _d !== void 0 ? _d : null, fontSize: (_e = textAffix.fontSize) !== null && _e !== void 0 ? _e : 12, dividerLineColor: (_f = textAffix.dividerLineColor) !== null && _f !== void 0 ? _f : "#B1B1B1", drawDividerLine: (_g = textAffix.dividerLine) !== null && _g !== void 0 ? _g : false, }; } exports.textAffixToProto = textAffixToProto; function fontToProto(affixFonts) { var _a, _b, _c, _d; if (!affixFonts) return { name: (_b = (_a = types_1.AffixFonts[types_1.AffixFonts.Arial]) === null || _a === void 0 ? void 0 : _a.replace("_", "-")) !== null && _b !== void 0 ? _b : "" }; return { name: (_d = (_c = types_1.AffixFonts[affixFonts]) === null || _c === void 0 ? void 0 : _c.replace("_", "-")) !== null && _d !== void 0 ? _d : "" }; } exports.fontToProto = fontToProto; function useMarginsToProto(useMargins) { return { enumValue: useMargins }; } exports.useMarginsToProto = useMarginsToProto; function tableOfContentsTypesToProto(toc) { return { enumValue: toc }; } exports.tableOfContentsTypesToProto = tableOfContentsTypesToProto; function paperSizeToProto(paperSize) { return { enumValue: paperSize }; } exports.paperSizeToProto = paperSizeToProto; function toMillimeters(paperSize) { switch (paperSize) { case paper_1.PaperSize.Letter: return { width: 216, height: 279 }; case paper_1.PaperSize.Legal: return { width: 216, height: 356 }; case paper_1.PaperSize.A4: return { width: 210, height: 297 }; case paper_1.PaperSize.CSheet: return { width: 432, height: 559 }; case paper_1.PaperSize.DSheet: return { width: 559, height: 864 }; case paper_1.PaperSize.ESheet: return { width: 864, height: 1118 }; case paper_1.PaperSize.LetterSmall: return { width: 216, height: 279 }; case paper_1.PaperSize.Tabloid: return { width: 279, height: 432 }; case paper_1.PaperSize.Ledger: return { width: 432, height: 279 }; case paper_1.PaperSize.Statement: return { width: 140, height: 216 }; case paper_1.PaperSize.Executive: return { width: 184, height: 267 }; case paper_1.PaperSize.A3: return { width: 297, height: 420 }; case paper_1.PaperSize.A4Small: return { width: 210, height: 297 }; case paper_1.PaperSize.A5: return { width: 148, height: 210 }; case paper_1.PaperSize.B4: return { width: 250, height: 353 }; case paper_1.PaperSize.B5: return { width: 176, height: 250 }; case paper_1.PaperSize.Folio: return { width: 216, height: 330 }; case paper_1.PaperSize.Quarto: return { width: 215, height: 275 }; case paper_1.PaperSize.Standard10x14: return { width: 254, height: 356 }; case paper_1.PaperSize.Standard11x17: return { width: 279, height: 432 }; case paper_1.PaperSize.Note: return { width: 216, height: 279 }; case paper_1.PaperSize.Number9Envelope: return { width: 98, height: 225 }; case paper_1.PaperSize.Number10Envelope: return { width: 105, height: 241 }; case paper_1.PaperSize.Number11Envelope: return { width: 114, height: 264 }; case paper_1.PaperSize.Number12Envelope: return { width: 121, height: 279 }; case paper_1.PaperSize.Number14Envelope: return { width: 127, height: 292 }; case paper_1.PaperSize.DLEnvelope: return { width: 110, height: 220 }; case paper_1.PaperSize.C5Envelope: return { width: 162, height: 229 }; case paper_1.PaperSize.C3Envelope: return { width: 324, height: 458 }; case paper_1.PaperSize.C4Envelope: return { width: 229, height: 324 }; case paper_1.PaperSize.C65Envelope: return { width: 114, height: 229 }; case paper_1.PaperSize.B4Envelope: return { width: 250, height: 353 }; case paper_1.PaperSize.B5Envelope: return { width: 176, height: 250 }; case paper_1.PaperSize.B6Envelope: return { width: 176, height: 125 }; case paper_1.PaperSize.ItalyEnvelope: return { width: 110, height: 230 }; case paper_1.PaperSize.MonarchEnvelope: return { width: 98, height: 191 }; case paper_1.PaperSize.PersonalEnvelope: return { width: 92, height: 165 }; case paper_1.PaperSize.USStandardFanfold: return { width: 378, height: 279 }; case paper_1.PaperSize.GermanStandardFanfold: return { width: 216, height: 305 }; case paper_1.PaperSize.GermanLegalFanfold: return { width: 216, height: 330 }; case paper_1.PaperSize.IsoB4: return { width: 250, height: 353 }; case paper_1.PaperSize.JapanesePostcard: return { width: 100, height: 148 }; case paper_1.PaperSize.Standard9x11: return { width: 229, height: 279 }; case paper_1.PaperSize.Standard10x11: return { width: 254, height: 279 }; case paper_1.PaperSize.Standard15x11: return { width: 381, height: 279 }; case paper_1.PaperSize.InviteEnvelope: return { width: 220, height: 220 }; case paper_1.PaperSize.LetterExtra: return { width: 236, height: 305 }; case paper_1.PaperSize.LegalExtra: return { width: 236, height: 381 }; case paper_1.PaperSize.TabloidExtra: return { width: 297, height: 457 }; case paper_1.PaperSize.A4Extra: return { width: 236, height: 322 }; case paper_1.PaperSize.LetterTransverse: return { width: 210, height: 279 }; case paper_1.PaperSize.A4Transverse: return { width: 210, height: 297 }; case paper_1.PaperSize.LetterExtraTransverse: return { width: 236, height: 305 }; case paper_1.PaperSize.APlus: return { width: 227, height: 356 }; case paper_1.PaperSize.BPlus: return { width: 305, height: 487 }; case paper_1.PaperSize.LetterPlus: return { width: 216, height: 322 }; case paper_1.PaperSize.A4Plus: return { width: 210, height: 330 }; case paper_1.PaperSize.A5Transverse: return { width: 148, height: 210 }; case paper_1.PaperSize.B5Transverse: return { width: 182, height: 257 }; case paper_1.PaperSize.A3Extra: return { width: 322, height: 445 }; case paper_1.PaperSize.A5Extra: return { width: 174, height: 235 }; case paper_1.PaperSize.B5Extra: return { width: 201, height: 276 }; case paper_1.PaperSize.A2: return { width: 420, height: 594 }; case paper_1.PaperSize.A3Transverse: return { width: 297, height: 420 }; case paper_1.PaperSize.A3ExtraTransverse: return { width: 322, height: 445 }; case paper_1.PaperSize.JapaneseDoublePostcard: return { width: 200, height: 148 }; case paper_1.PaperSize.A6: return { width: 105, height: 148 }; case paper_1.PaperSize.LetterRotated: return { width: 279, height: 216 }; case paper_1.PaperSize.A3Rotated: return { width: 420, height: 297 }; case paper_1.PaperSize.A4Rotated: return { width: 297, height: 210 }; case paper_1.PaperSize.A5Rotated: return { width: 210, height: 148 }; case paper_1.PaperSize.B4JisRotated: return { width: 364, height: 257 }; case paper_1.PaperSize.B5JisRotated: return { width: 257, height: 182 }; case paper_1.PaperSize.JapanesePostcardRotated: return { width: 148, height: 100 }; case paper_1.PaperSize.JapaneseDoublePostcardRotated: return { width: 148, height: 200 }; case paper_1.PaperSize.A6Rotated: return { width: 148, height: 105 }; case paper_1.PaperSize.B6Jis: return { width: 128, height: 182 }; case paper_1.PaperSize.B6JisRotated: return { width: 182, height: 128 }; case paper_1.PaperSize.Standard12x11: return { width: 305, height: 279 }; case paper_1.PaperSize.Prc16K: return { width: 146, height: 215 }; case paper_1.PaperSize.Prc32K: return { width: 97, height: 151 }; case paper_1.PaperSize.Prc32KBig: return { width: 97, height: 151 }; case paper_1.PaperSize.PrcEnvelopeNumber1: return { width: 102, height: 165 }; case paper_1.PaperSize.PrcEnvelopeNumber2: return { width: 102, height: 176 }; case paper_1.PaperSize.PrcEnvelopeNumber3: return { width: 125, height: 176 }; case paper_1.PaperSize.PrcEnvelopeNumber4: return { width: 110, height: 208 }; case paper_1.PaperSize.PrcEnvelopeNumber5: return { width: 110, height: 220 }; case paper_1.PaperSize.PrcEnvelopeNumber6: return { width: 120, height: 230 }; case paper_1.PaperSize.PrcEnvelopeNumber7: return { width: 160, height: 230 }; case paper_1.PaperSize.PrcEnvelopeNumber8: return { width: 120, height: 309 }; case paper_1.PaperSize.PrcEnvelopeNumber9: return { width: 229, height: 324 }; case paper_1.PaperSize.PrcEnvelopeNumber10: return { width: 324, height: 458 }; case paper_1.PaperSize.Prc16KRotated: return { width: 215, height: 146 }; case paper_1.PaperSize.Prc32KRotated: return { width: 151, height: 97 }; case paper_1.PaperSize.Prc32KBigRotated: return { width: 151, height: 97 }; case paper_1.PaperSize.PrcEnvelopeNumber1Rotated: return { width: 165, height: 102 }; case paper_1.PaperSize.PrcEnvelopeNumber2Rotated: return { width: 176, height: 102 }; case paper_1.PaperSize.PrcEnvelopeNumber3Rotated: return { width: 176, height: 125 }; case paper_1.PaperSize.PrcEnvelopeNumber4Rotated: return { width: 208, height: 110 }; case paper_1.PaperSize.PrcEnvelopeNumber5Rotated: return { width: 220, height: 110 }; case paper_1.PaperSize.PrcEnvelopeNumber6Rotated: return { width: 230, height: 120 }; case paper_1.PaperSize.PrcEnvelopeNumber7Rotated: return { width: 230, height: 160 }; case paper_1.PaperSize.PrcEnvelopeNumber8Rotated: return { width: 309, height: 120 }; case paper_1.PaperSize.PrcEnvelopeNumber9Rotated: return { width: 324, height: 229 }; case paper_1.PaperSize.PrcEnvelopeNumber10Rotated: return { width: 458, height: 324 }; default: throw new Error("Unsupported paper size"); } } function pdfPaperSizeToProto(pdfPaperSize) { if (!pdfPaperSize) return undefined; if (typeof pdfPaperSize === "object" && "width" in pdfPaperSize) { return { paperSizeP: { enumValue: 106 }, widthHeight: { width: pdfPaperSize.width, height: pdfPaperSize.height, }, }; } else { const wh = toMillimeters(pdfPaperSize); return { paperSizeP: { enumValue: pdfPaperSize }, widthHeight: { width: wh.width, height: wh.height }, }; } } exports.pdfPaperSizeToProto = pdfPaperSizeToProto; function imageBehaviorToProto(imageBehavior) { if (!imageBehavior) return null; return { enumValue: imageBehavior }; } exports.imageBehaviorToProto = imageBehaviorToProto; function customPaperSizeToMm(customPaperSize) { switch (customPaperSize.unit) { case types_1.PaperSizeUnit.Centimeter: return { width: customPaperSize.width * 10, height: customPaperSize.height * 10, }; case types_1.PaperSizeUnit.Inch: return { width: customPaperSize.width * 25.4, height: customPaperSize.height * 25.4, }; case types_1.PaperSizeUnit.Millimeter: return { width: customPaperSize.width, height: customPaperSize.height, }; case types_1.PaperSizeUnit.Points: return { width: customPaperSize.width * 0.352777778, height: customPaperSize.height * 0.352777778, }; } } exports.customPaperSizeToMm = customPaperSizeToMm; function BaseStampOptionsToProto(id, pagesInfo, defaultRenderDelay, password, options, pageSelection) { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m; const pi = (_a = (0, util_1.PdfPageSelectionToIndexes)(pagesInfo, pageSelection)) !== null && _a !== void 0 ? _a : Array.from({ length: pagesInfo.length, }).map((_, index) => index); const pages = pi.map((pageIndex) => { // if (pagesInfo) { const pageP = { pageIndex: pageIndex }; const pageInfo = pagesInfo[pageIndex]; if (!(0, util_1.isNullOrUndefined)(pageInfo)) { pageP.width = pageInfo.millimeterWidth; pageP.height = pageInfo.millimeterHeight; pageP.pageRotation = (0, converter_1.PageRotationToProto)(pageInfo.pageRotation); pageP.printWidth = pageInfo.printerPointWidth; pageP.printHeight = pageInfo.printerPointHeight; } return pageP; // } // return { pageIndex: pageIndex }; }); return { document: { documentId: id }, hyperlink: (_b = options === null || options === void 0 ? void 0 : options.hyperlink) !== null && _b !== void 0 ? _b : "", horizontalAlignment: horizontalAlignmentToProto((_c = options === null || options === void 0 ? void 0 : options.horizontalAlignment) !== null && _c !== void 0 ? _c : types_1.HorizontalAlignment.Center), verticalAlignment: verticalAlignmentToProto((_d = options === null || options === void 0 ? void 0 : options.verticalAlignment) !== null && _d !== void 0 ? _d : types_1.VerticalAlignment.Middle), horizontalOffset: lengthToProto(options === null || options === void 0 ? void 0 : options.horizontalOffset), verticalOffset: lengthToProto(options === null || options === void 0 ? void 0 : options.verticalOffset), isStampBehindContent: (_e = options === null || options === void 0 ? void 0 : options.behindExistingContent) !== null && _e !== void 0 ? _e : false, opacity: (_f = options === null || options === void 0 ? void 0 : options.opacity) !== null && _f !== void 0 ? _f : 100, rotation: (_g = options === null || options === void 0 ? void 0 : options.rotation) !== null && _g !== void 0 ? _g : 0, scale: (_h = options === null || options === void 0 ? void 0 : options.scale) !== null && _h !== void 0 ? _h : 100, targetPages: pages !== null && pages !== void 0 ? pages : [], ownerPassword: (_j = password === null || password === void 0 ? void 0 : password.ownerPassword) !== null && _j !== void 0 ? _j : "", userPassword: (_k = password === null || password === void 0 ? void 0 : password.userPassword) !== null && _k !== void 0 ? _k : "", renderDelay: (_l = options === null || options === void 0 ? void 0 : options.renderDelay) !== null && _l !== void 0 ? _l : defaultRenderDelay, timeout: (_m = options === null || options === void 0 ? void 0 : options.timeout) !== null && _m !== void 0 ? _m : 60, maxHeight: lengthToProto(options === null || options === void 0 ? void 0 : options.maxHeight), minHeight: lengthToProto(options === null || options === void 0 ? void 0 : options.minHeight), maxWidth: lengthToProto(options === null || options === void 0 ? void 0 : options.maxWidth), minWidth: lengthToProto(options === null || options === void 0 ? void 0 : options.minWidth), }; } function HtmlStampOptionsToProto(id, pagesInfo, password, options, pageSelection) { const base = BaseStampOptionsToProto(id, pagesInfo, 100, password, options, pageSelection); base.htmlStamper = { //baseUrl: options?.baseUrl, //not supported cssMediaType: cssMediaTypeToProto(options === null || options === void 0 ? void 0 : options.cssMediaType), }; return base; } exports.HtmlStampOptionsToProto = HtmlStampOptionsToProto; function TextStampOptionsToProto(id, pagesInfo, password, options, pageSelection) { var _a, _b, _c, _d, _e, _f, _g, _h, _j; const base = BaseStampOptionsToProto(id, pagesInfo, 0, password, options, pageSelection); base.textStamper = { textColor: (_a = options === null || options === void 0 ? void 0 : options.textColor) !== null && _a !== void 0 ? _a : "#000000", fontSize: (_b = options === null || options === void 0 ? void 0 : options.fontSize) !== null && _b !== void 0 ? _b : 12, backgroundColor: (_c = options === null || options === void 0 ? void 0 : options.backgroundColor) !== null && _c !== void 0 ? _c : "#00FFFFFF", fontFamily: (_d = options === null || options === void 0 ? void 0 : options.fontFamily) !== null && _d !== void 0 ? _d : "Arial", isBold: (_e = options === null || options === void 0 ? void 0 : options.isBold) !== null && _e !== void 0 ? _e : false, isItalic: (_f = options === null || options === void 0 ? void 0 : options.isItalic) !== null && _f !== void 0 ? _f : false, isStrikethrough: (_g = options === null || options === void 0 ? void 0 : options.isStrikethrough) !== null && _g !== void 0 ? _g : false, isUnderline: (_h = options === null || options === void 0 ? void 0 : options.isUnderline) !== null && _h !== void 0 ? _h : false, useGoogleFont: (_j = options === null || options === void 0 ? void 0 : options.useGoogleFont) !== null && _j !== void 0 ? _j : false, }; return base; } exports.TextStampOptionsToProto = TextStampOptionsToProto; function ImageStampOptionsToProto(id, pagesInfo, password, options, pageSelection) { const base = BaseStampOptionsToProto(id, pagesInfo, 0, password, options, pageSelection); base.imageStamper = {}; return base; } exports.ImageStampOptionsToProto = ImageStampOptionsToProto; function BarcodeStampOptionsToProto(id, pagesInfo, password, options, pageSelection) { var _a, _b, _c; const base = BaseStampOptionsToProto(id, pagesInfo, 0, password, options, pageSelection); base.barcodeStamper = { widthPx: (_a = options === null || options === void 0 ? void 0 : options.widthPx) !== null && _a !== void 0 ? _a : 250, heightPx: (_b = options === null || options === void 0 ? void 0 : options.heightPx) !== null && _b !== void 0 ? _b : 250, barcodeType: barcodeTypeToProto((_c = options === null || options === void 0 ? void 0 : options.barcodeType) !== null && _c !== void 0 ? _c : types_1.BarcodeType.qrCode), }; return base; } exports.BarcodeStampOptionsToProto = BarcodeStampOptionsToProto; function lengthToProto(length) { if (!length) return null; return { value: length.value, unit: measurementUnitToProto(length.unit), }; } exports.lengthToProto = lengthToProto; function measurementUnitToProto(measurementUnit) { return { enumValue: measurementUnit, }; } exports.measurementUnitToProto = measurementUnitToProto; function horizontalAlignmentToProto(horizontalAlignment) { if (!horizontalAlignment) return null; return { enumValue: horizontalAlignment, }; } exports.horizontalAlignmentToProto = horizontalAlignmentToProto; function verticalAlignmentToProto(verticalAlignment) { if (!verticalAlignment) return null; return { enumValue: verticalAlignment, }; } exports.verticalAlignmentToProto = verticalAlignmentToProto; function cssMediaTypeToProto(cssMediaType) { if (!cssMediaType) return null; return { enumValue: cssMediaType, }; } exports.cssMediaTypeToProto = cssMediaTypeToProto; function barcodeTypeToProto(barcodeType) { if (!barcodeType) return null; return { enumValue: barcodeType, }; } exports.barcodeTypeToProto = barcodeTypeToProto; //# sourceMappingURL=converter.js.map