@ironsoftware/ironpdf
Version:
IronPDF for Node
696 lines • 36.2 kB
JavaScript
"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