@pixldocs/canvas-renderer 0.5.172 → 0.5.173
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{index-DuI8QJDd.js → index-ChHYFk0E.js} +169 -64
- package/dist/index-ChHYFk0E.js.map +1 -0
- package/dist/{index-DYtJJzdk.cjs → index-ZehEOqUB.cjs} +169 -64
- package/dist/index-ZehEOqUB.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{pdfFonts-BTEVnYX8.cjs → pdfFonts-BTj2f465.cjs} +12 -3
- package/dist/pdfFonts-BTj2f465.cjs.map +1 -0
- package/dist/{pdfFonts-b3_bv7F0.js → pdfFonts-DhEaMTZl.js} +12 -3
- package/dist/pdfFonts-DhEaMTZl.js.map +1 -0
- package/dist/{svgTextToPath-IM1f6F-f.cjs → svgTextToPath-BLk_mcqi.cjs} +85 -3
- package/dist/svgTextToPath-BLk_mcqi.cjs.map +1 -0
- package/dist/{svgTextToPath-BXAzwaaR.js → svgTextToPath-ra4EhtBL.js} +86 -4
- package/dist/svgTextToPath-ra4EhtBL.js.map +1 -0
- package/dist/{vectorPdfExport-CDOztP1H.cjs → vectorPdfExport-BWDj55kq.cjs} +36 -10
- package/dist/vectorPdfExport-BWDj55kq.cjs.map +1 -0
- package/dist/{vectorPdfExport-wH2x4QIj.js → vectorPdfExport-CyTa-D1p.js} +36 -10
- package/dist/vectorPdfExport-CyTa-D1p.js.map +1 -0
- package/package.json +1 -1
- package/dist/index-DYtJJzdk.cjs.map +0 -1
- package/dist/index-DuI8QJDd.js.map +0 -1
- package/dist/pdfFonts-BTEVnYX8.cjs.map +0 -1
- package/dist/pdfFonts-b3_bv7F0.js.map +0 -1
- package/dist/svgTextToPath-BXAzwaaR.js.map +0 -1
- package/dist/svgTextToPath-IM1f6F-f.cjs.map +0 -1
- package/dist/vectorPdfExport-CDOztP1H.cjs.map +0 -1
- package/dist/vectorPdfExport-wH2x4QIj.js.map +0 -1
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const jspdf = require("jspdf");
|
|
4
4
|
const svg2pdf_js = require("svg2pdf.js");
|
|
5
5
|
const fabric = require("fabric");
|
|
6
|
-
const index = require("./index-
|
|
7
|
-
const pdfFonts = require("./pdfFonts-
|
|
6
|
+
const index = require("./index-ZehEOqUB.cjs");
|
|
7
|
+
const pdfFonts = require("./pdfFonts-BTj2f465.cjs");
|
|
8
8
|
function _interopNamespaceDefault(e) {
|
|
9
9
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
10
10
|
if (e) {
|
|
@@ -31,7 +31,7 @@ async function embedFontsForSvg(pdf, svgStr) {
|
|
|
31
31
|
FONT_FALLBACK_SYMBOLS: FONT_FALLBACK_SYMBOLS2,
|
|
32
32
|
FONT_FALLBACK_DEVANAGARI: FONT_FALLBACK_DEVANAGARI2,
|
|
33
33
|
FONT_FALLBACK_MATH: FONT_FALLBACK_MATH2
|
|
34
|
-
} = await Promise.resolve().then(() => require("./pdfFonts-
|
|
34
|
+
} = await Promise.resolve().then(() => require("./pdfFonts-BTj2f465.cjs"));
|
|
35
35
|
const parser = new DOMParser();
|
|
36
36
|
const doc = parser.parseFromString(svgStr, "image/svg+xml");
|
|
37
37
|
const textEls = Array.from(doc.querySelectorAll("text, tspan, textPath"));
|
|
@@ -2519,7 +2519,7 @@ async function fetchSvgAsElement(imageUrl, colorMap) {
|
|
|
2519
2519
|
async function getRecoloredSvgDataUrl(imageUrl, colorMap) {
|
|
2520
2520
|
if (!colorMap || Object.keys(colorMap).length === 0) return null;
|
|
2521
2521
|
try {
|
|
2522
|
-
const { getNormalizedSvgUrl } = await Promise.resolve().then(() => require("./index-
|
|
2522
|
+
const { getNormalizedSvgUrl } = await Promise.resolve().then(() => require("./index-ZehEOqUB.cjs")).then((n) => n.canvasImageLoader);
|
|
2523
2523
|
return await getNormalizedSvgUrl(imageUrl, colorMap);
|
|
2524
2524
|
} catch {
|
|
2525
2525
|
return null;
|
|
@@ -2548,8 +2548,18 @@ function normalizeElement(el) {
|
|
|
2548
2548
|
const skewY = el.skewY ?? 0;
|
|
2549
2549
|
const style = el.style || {};
|
|
2550
2550
|
const opacity = el.opacity ?? style.opacity ?? 1;
|
|
2551
|
-
const
|
|
2552
|
-
|
|
2551
|
+
const firstStop = (g) => {
|
|
2552
|
+
var _a2;
|
|
2553
|
+
const stops = g == null ? void 0 : g.stops;
|
|
2554
|
+
if (!Array.isArray(stops) || stops.length === 0) return null;
|
|
2555
|
+
const sorted = [...stops].sort((a, b) => (Number(a == null ? void 0 : a.offset) || 0) - (Number(b == null ? void 0 : b.offset) || 0));
|
|
2556
|
+
const c = (_a2 = sorted[0]) == null ? void 0 : _a2.color;
|
|
2557
|
+
return typeof c === "string" && c ? c : null;
|
|
2558
|
+
};
|
|
2559
|
+
const fillGradientFirst = firstStop(el.fillGradient);
|
|
2560
|
+
const strokeGradientFirst = firstStop(el.strokeGradient);
|
|
2561
|
+
const fill = fillGradientFirst ?? (el.fill || style.fill || "");
|
|
2562
|
+
const stroke = strokeGradientFirst ?? (el.stroke || style.stroke || "");
|
|
2553
2563
|
const strokeWidth = el.strokeWidth ?? style.strokeWidth ?? 0;
|
|
2554
2564
|
const strokeDashArray = ((_e = el.strokeDashArray) == null ? void 0 : _e.join(",")) || style.strokeDasharray;
|
|
2555
2565
|
const text = el.text || el.content || "";
|
|
@@ -3300,7 +3310,7 @@ async function fetchImageAsBase64(imageUrl, opts = {}) {
|
|
|
3300
3310
|
}
|
|
3301
3311
|
let fetchUrl = imageUrl;
|
|
3302
3312
|
if (imageUrl.startsWith("http://") || imageUrl.startsWith("https://")) {
|
|
3303
|
-
const { isPrivateUrl } = await Promise.resolve().then(() => require("./index-
|
|
3313
|
+
const { isPrivateUrl } = await Promise.resolve().then(() => require("./index-ZehEOqUB.cjs")).then((n) => n.canvasImageLoader);
|
|
3304
3314
|
if (isPrivateUrl(imageUrl)) return null;
|
|
3305
3315
|
const proxyUrl = new URL(`${index.API_URL}/image-proxy`);
|
|
3306
3316
|
proxyUrl.searchParams.set("url", imageUrl);
|
|
@@ -4907,7 +4917,7 @@ function preparePagesForExport(pages, canvasWidth, canvasHeight, options) {
|
|
|
4907
4917
|
}
|
|
4908
4918
|
async function exportMultiPagePdf(pages, options) {
|
|
4909
4919
|
var _a, _b, _c, _d, _e;
|
|
4910
|
-
const { filename = "document.pdf", title, watermark = false, returnBlob = false } = options;
|
|
4920
|
+
const { filename = "document.pdf", title, watermark = false, returnBlob = false, pdfTextMode = "selectable" } = options;
|
|
4911
4921
|
pdfFonts.resetPdfFontRegistry();
|
|
4912
4922
|
if (pages.length === 0) {
|
|
4913
4923
|
throw new Error("No pages to export");
|
|
@@ -5066,8 +5076,24 @@ async function exportMultiPagePdf(pages, options) {
|
|
|
5066
5076
|
} catch (fontEmbedErr) {
|
|
5067
5077
|
console.warn("[client-pdf-export] JIT font embed for live SVG failed", fontEmbedErr);
|
|
5068
5078
|
}
|
|
5079
|
+
let preppedSvgString = liveSvgString;
|
|
5080
|
+
try {
|
|
5081
|
+
if (pdfTextMode === "auto" || pdfTextMode === "pixel-perfect") {
|
|
5082
|
+
const { convertDevanagariTextToPath } = await Promise.resolve().then(() => require("./svgTextToPath-BLk_mcqi.cjs"));
|
|
5083
|
+
preppedSvgString = await convertDevanagariTextToPath(
|
|
5084
|
+
liveSvgString,
|
|
5085
|
+
void 0,
|
|
5086
|
+
{ mode: "gradient-only" }
|
|
5087
|
+
);
|
|
5088
|
+
} else {
|
|
5089
|
+
const { replaceGradientTextFillsWithFirstStop } = await Promise.resolve().then(() => require("./svgTextToPath-BLk_mcqi.cjs"));
|
|
5090
|
+
preppedSvgString = replaceGradientTextFillsWithFirstStop(liveSvgString);
|
|
5091
|
+
}
|
|
5092
|
+
} catch (gradErr) {
|
|
5093
|
+
console.warn("[client-pdf-export] gradient-text fill resolution failed", gradErr);
|
|
5094
|
+
}
|
|
5069
5095
|
const liveSvg = await prepareLiveCanvasSvgForPdf(
|
|
5070
|
-
|
|
5096
|
+
preppedSvgString,
|
|
5071
5097
|
liveSvgWidth,
|
|
5072
5098
|
liveSvgHeight,
|
|
5073
5099
|
`page-${pageIndex + 1}`,
|
|
@@ -5282,4 +5308,4 @@ exports.exportMultiPagePdf = exportMultiPagePdf;
|
|
|
5282
5308
|
exports.logTextMeasurementDiagnostic = logTextMeasurementDiagnostic;
|
|
5283
5309
|
exports.preparePagesForExport = preparePagesForExport;
|
|
5284
5310
|
exports.rewriteSvgFontsForJsPDFWithSourceMeta = rewriteSvgFontsForJsPDFWithSourceMeta;
|
|
5285
|
-
//# sourceMappingURL=vectorPdfExport-
|
|
5311
|
+
//# sourceMappingURL=vectorPdfExport-BWDj55kq.cjs.map
|