docgen-utils 1.0.17 → 1.0.18

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.
Files changed (37) hide show
  1. package/dist/bundle.js +441 -176
  2. package/dist/bundle.min.js +233 -233
  3. package/dist/cli.js +350 -151
  4. package/dist/packages/cli/commands/export-docs.d.ts +2 -3
  5. package/dist/packages/cli/commands/export-docs.d.ts.map +1 -1
  6. package/dist/packages/cli/commands/export-docs.js +108 -101
  7. package/dist/packages/cli/commands/export-docs.js.map +1 -1
  8. package/dist/packages/cli/commands/export-slides.d.ts +10 -0
  9. package/dist/packages/cli/commands/export-slides.d.ts.map +1 -1
  10. package/dist/packages/cli/commands/export-slides.js +41 -26
  11. package/dist/packages/cli/commands/export-slides.js.map +1 -1
  12. package/dist/packages/docs/convert.d.ts.map +1 -1
  13. package/dist/packages/docs/convert.js +14 -10
  14. package/dist/packages/docs/convert.js.map +1 -1
  15. package/dist/packages/docs/import-docx.d.ts.map +1 -1
  16. package/dist/packages/docs/import-docx.js +256 -11
  17. package/dist/packages/docs/import-docx.js.map +1 -1
  18. package/dist/packages/shared/fetch-with-proxy.d.ts +13 -0
  19. package/dist/packages/shared/fetch-with-proxy.d.ts.map +1 -0
  20. package/dist/packages/shared/fetch-with-proxy.js +33 -0
  21. package/dist/packages/shared/fetch-with-proxy.js.map +1 -0
  22. package/dist/packages/shared/fonts.d.ts +73 -0
  23. package/dist/packages/shared/fonts.d.ts.map +1 -0
  24. package/dist/packages/shared/fonts.js +251 -0
  25. package/dist/packages/shared/fonts.js.map +1 -0
  26. package/dist/packages/slides/common.d.ts +4 -0
  27. package/dist/packages/slides/common.d.ts.map +1 -1
  28. package/dist/packages/slides/convert.d.ts.map +1 -1
  29. package/dist/packages/slides/convert.js +34 -4
  30. package/dist/packages/slides/convert.js.map +1 -1
  31. package/dist/packages/slides/fonts.d.ts +4 -37
  32. package/dist/packages/slides/fonts.d.ts.map +1 -1
  33. package/dist/packages/slides/fonts.js +4 -205
  34. package/dist/packages/slides/fonts.js.map +1 -1
  35. package/dist/packages/slides/vendor/pptxgen.d.ts +2 -0
  36. package/dist/packages/slides/vendor/pptxgen.js +2 -1
  37. package/package.json +1 -1
@@ -1,9 +1,8 @@
1
1
  /**
2
2
  * Export docs command - converts HTML to DOCX
3
3
  *
4
- * Uses Playwright to:
5
- * - Fetch external images via browser canvas (accurate naturalWidth/naturalHeight)
6
- * - Render SVG charts by screenshotting live DOM elements (preserves CSS context)
4
+ * Uses Playwright to render SVG charts by screenshotting live DOM elements (preserves CSS context).
5
+ * Uses Node.js fetch for external images (faster, no SSL issues, no browser dependency).
7
6
  */
8
7
  export interface ExportDocsOptions {
9
8
  name?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"export-docs.d.ts","sourceRoot":"","sources":["../../../../packages/cli/commands/export-docs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuTH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDjH"}
1
+ {"version":3,"file":"export-docs.d.ts","sourceRoot":"","sources":["../../../../packages/cli/commands/export-docs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+TH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDjH"}
@@ -1,123 +1,131 @@
1
1
  /**
2
2
  * Export docs command - converts HTML to DOCX
3
3
  *
4
- * Uses Playwright to:
5
- * - Fetch external images via browser canvas (accurate naturalWidth/naturalHeight)
6
- * - Render SVG charts by screenshotting live DOM elements (preserves CSS context)
4
+ * Uses Playwright to render SVG charts by screenshotting live DOM elements (preserves CSS context).
5
+ * Uses Node.js fetch for external images (faster, no SSL issues, no browser dependency).
7
6
  */
8
7
  import * as fs from "node:fs";
9
8
  import * as path from "node:path";
10
9
  import { chromium } from "playwright";
11
10
  import { createDocxBuffer } from "../../docs/create-document";
12
11
  import { parseHtmlContent } from "../../docs/parse";
12
+ import { fetchWithProxy } from "../../shared/fetch-with-proxy";
13
13
  // Maximum content width in DOCX (6.5 inches at 96 DPI = 624 pixels)
14
14
  // docx library ImageRun uses pixels: width * 9525 EMU/px
15
15
  const MAX_IMAGE_WIDTH = 624;
16
16
  /**
17
- * Fetch external images from the HTML page using Playwright browser canvas.
18
- * Opens the actual HTML file so images load naturally, then extracts pixel data
19
- * via canvas with accurate naturalWidth/naturalHeight dimensions.
17
+ * Parse image dimensions from raw bytes (supports PNG, JPEG, GIF, WebP).
18
+ * Returns { width, height } or null if format is unrecognized.
20
19
  */
21
- async function fetchExternalImages(browser, htmlPath) {
20
+ function parseImageDimensions(data) {
21
+ // PNG: bytes 0-7 are signature, width at 16-19, height at 20-23 (big-endian)
22
+ if (data[0] === 0x89 && data[1] === 0x50 && data[2] === 0x4E && data[3] === 0x47) {
23
+ const width = (data[16] << 24) | (data[17] << 16) | (data[18] << 8) | data[19];
24
+ const height = (data[20] << 24) | (data[21] << 16) | (data[22] << 8) | data[23];
25
+ return { width, height };
26
+ }
27
+ // JPEG: scan for SOF0/SOF2 markers (0xFF 0xC0 or 0xFF 0xC2)
28
+ if (data[0] === 0xFF && data[1] === 0xD8) {
29
+ let offset = 2;
30
+ while (offset < data.length - 8) {
31
+ if (data[offset] !== 0xFF) {
32
+ offset++;
33
+ continue;
34
+ }
35
+ const marker = data[offset + 1];
36
+ // SOF0 (baseline) or SOF2 (progressive)
37
+ if (marker === 0xC0 || marker === 0xC2) {
38
+ const height = (data[offset + 5] << 8) | data[offset + 6];
39
+ const width = (data[offset + 7] << 8) | data[offset + 8];
40
+ return { width, height };
41
+ }
42
+ // Skip to next marker
43
+ const length = (data[offset + 2] << 8) | data[offset + 3];
44
+ offset += 2 + length;
45
+ }
46
+ }
47
+ // GIF: width at 6-7, height at 8-9 (little-endian)
48
+ if (data[0] === 0x47 && data[1] === 0x49 && data[2] === 0x46) {
49
+ const width = data[6] | (data[7] << 8);
50
+ const height = data[8] | (data[9] << 8);
51
+ return { width, height };
52
+ }
53
+ // WebP: RIFF header, then check for VP8/VP8L/VP8X chunks
54
+ if (data[0] === 0x52 && data[1] === 0x49 && data[2] === 0x46 && data[3] === 0x46 &&
55
+ data[8] === 0x57 && data[9] === 0x45 && data[10] === 0x42 && data[11] === 0x50) {
56
+ // VP8X (extended): width at 24-26, height at 27-29 (24-bit little-endian, +1)
57
+ if (data[12] === 0x56 && data[13] === 0x50 && data[14] === 0x38 && data[15] === 0x58) {
58
+ const width = (data[24] | (data[25] << 8) | (data[26] << 16)) + 1;
59
+ const height = (data[27] | (data[28] << 8) | (data[29] << 16)) + 1;
60
+ return { width, height };
61
+ }
62
+ // VP8L (lossless): dimensions in bytes 21-24
63
+ if (data[12] === 0x56 && data[13] === 0x50 && data[14] === 0x38 && data[15] === 0x4C) {
64
+ const bits = data[21] | (data[22] << 8) | (data[23] << 16) | (data[24] << 24);
65
+ const width = (bits & 0x3FFF) + 1;
66
+ const height = ((bits >> 14) & 0x3FFF) + 1;
67
+ return { width, height };
68
+ }
69
+ // VP8 (lossy): width at 26-27, height at 28-29
70
+ if (data[12] === 0x56 && data[13] === 0x50 && data[14] === 0x38 && data[15] === 0x20) {
71
+ // Skip to frame header (after chunk header)
72
+ const width = (data[26] | (data[27] << 8)) & 0x3FFF;
73
+ const height = (data[28] | (data[29] << 8)) & 0x3FFF;
74
+ return { width, height };
75
+ }
76
+ }
77
+ return null;
78
+ }
79
+ /**
80
+ * Fetch external images from HTML content using Node.js fetch.
81
+ * Parses the HTML to find image URLs, fetches them server-side,
82
+ * and returns a map of URL -> image data with dimensions.
83
+ */
84
+ async function fetchExternalImages(htmlContent) {
22
85
  const imageMap = new Map();
23
- const absoluteHtmlPath = path.resolve(htmlPath);
24
- if (!fs.existsSync(absoluteHtmlPath)) {
86
+ // Find all external image URLs in src attributes
87
+ const imgRegex = /<img\s+[^>]*src="(https?:\/\/[^"]+)"[^>]*>/gi;
88
+ const matches = [...htmlContent.matchAll(imgRegex)];
89
+ if (matches.length === 0) {
25
90
  return imageMap;
26
91
  }
27
- const page = await browser.newPage({
28
- viewport: { width: 1200, height: 800 },
29
- });
30
- // Navigate to the HTML page to have proper context for relative URLs
31
- await page.goto(`file://${absoluteHtmlPath}`, {
32
- waitUntil: "networkidle",
33
- });
34
- // Wait for images to load
35
- await page.waitForTimeout(1000);
36
- // Find all unique image URLs in the page
37
- const uniqueSrcs = await page.evaluate(() => {
38
- const images = Array.from(document.querySelectorAll("img"));
39
- const srcs = images.map(img => img.src).filter(src => src && !src.startsWith("data:"));
40
- return [...new Set(srcs)];
41
- });
42
- if (uniqueSrcs.length === 0) {
43
- await page.close();
44
- return imageMap;
92
+ // Collect unique URLs
93
+ const urls = new Set();
94
+ for (const match of matches) {
95
+ urls.add(match[1]);
45
96
  }
46
- console.log(`Fetching ${uniqueSrcs.length} external image(s)...`);
47
- for (const src of uniqueSrcs) {
97
+ console.log(`Fetching ${urls.size} external image(s)...`);
98
+ // Fetch all images in parallel
99
+ await Promise.all(Array.from(urls).map(async (url) => {
48
100
  try {
49
- // Use Playwright to fetch and render the image via browser canvas
50
- // This handles CORS and gives accurate naturalWidth/naturalHeight
51
- const imageData = await page.evaluate(async ({ src, maxWidth }) => {
52
- return new Promise((resolve) => {
53
- const img = new Image();
54
- img.crossOrigin = "anonymous";
55
- img.onload = () => {
56
- try {
57
- // Scale to fit within document width
58
- let width = img.naturalWidth;
59
- let height = img.naturalHeight;
60
- if (width > maxWidth) {
61
- const scale = maxWidth / width;
62
- width = maxWidth;
63
- height = Math.round(height * scale);
64
- }
65
- // Draw to canvas and get PNG data
66
- const canvas = document.createElement("canvas");
67
- canvas.width = width;
68
- canvas.height = height;
69
- const ctx = canvas.getContext("2d");
70
- if (!ctx) {
71
- resolve(null);
72
- return;
73
- }
74
- ctx.drawImage(img, 0, 0, width, height);
75
- // Get image data as base64
76
- const dataUrl = canvas.toDataURL("image/png");
77
- const base64 = dataUrl.split(",")[1];
78
- if (!base64) {
79
- resolve(null);
80
- return;
81
- }
82
- // Convert base64 to byte array
83
- const binaryString = atob(base64);
84
- const bytes = new Array(binaryString.length);
85
- for (let i = 0; i < binaryString.length; i++) {
86
- bytes[i] = binaryString.charCodeAt(i);
87
- }
88
- resolve({ data: bytes, width, height });
89
- }
90
- catch (err) {
91
- console.warn("Error processing image:", err);
92
- resolve(null);
93
- }
94
- };
95
- img.onerror = () => {
96
- console.warn("Failed to load image:", src);
97
- resolve(null);
98
- };
99
- // Set timeout for slow images
100
- setTimeout(() => {
101
- console.warn("Image load timeout:", src);
102
- resolve(null);
103
- }, 10000);
104
- img.src = src;
105
- });
106
- }, { src, maxWidth: MAX_IMAGE_WIDTH });
107
- if (imageData) {
108
- imageMap.set(src, {
109
- data: Buffer.from(imageData.data),
110
- width: imageData.width,
111
- height: imageData.height,
101
+ const response = await fetchWithProxy(url);
102
+ if (response.ok) {
103
+ const buffer = await response.arrayBuffer();
104
+ const data = new Uint8Array(buffer);
105
+ // Parse dimensions from image header
106
+ const dimensions = parseImageDimensions(data);
107
+ if (!dimensions) {
108
+ console.warn(`Could not parse dimensions for image: ${url}`);
109
+ return;
110
+ }
111
+ // Scale to fit within document width
112
+ let { width, height } = dimensions;
113
+ if (width > MAX_IMAGE_WIDTH) {
114
+ const scale = MAX_IMAGE_WIDTH / width;
115
+ width = MAX_IMAGE_WIDTH;
116
+ height = Math.round(height * scale);
117
+ }
118
+ imageMap.set(url, {
119
+ data: Buffer.from(buffer),
120
+ width,
121
+ height,
112
122
  });
113
123
  }
114
124
  }
115
- catch (err) {
116
- console.warn(`Failed to fetch image ${src}:`, err);
117
- continue;
125
+ catch {
126
+ console.warn(`Failed to fetch image: ${url}`);
118
127
  }
119
- }
120
- await page.close();
128
+ }));
121
129
  return imageMap;
122
130
  }
123
131
  /**
@@ -277,18 +285,17 @@ export async function exportDocs(filePath, outDir, options = {}) {
277
285
  const html = fs.readFileSync(absolutePath, "utf-8");
278
286
  // Get filename for title - use provided name or derive from input file
279
287
  const baseName = outputName || path.basename(filePath, ".html");
280
- // Launch browser for image fetching and SVG rendering
288
+ // Fetch external images using Node.js (faster, no SSL issues, no browser dependency)
289
+ const imageMap = await fetchExternalImages(html);
290
+ // Launch browser only for SVG rendering (needs CSS context)
281
291
  const launchOptions = { headless: true };
282
292
  const proxyServer = process.env.HTTPS_PROXY || process.env.HTTP_PROXY;
283
293
  if (proxyServer) {
284
294
  launchOptions.proxy = { server: proxyServer };
285
295
  }
286
296
  const browser = await chromium.launch(launchOptions);
287
- let imageMap;
288
297
  let chartImages;
289
298
  try {
290
- // Fetch external images using browser canvas (accurate dimensions via naturalWidth/naturalHeight)
291
- imageMap = await fetchExternalImages(browser, absolutePath);
292
299
  // Render SVG charts by screenshotting live DOM elements (preserves CSS context)
293
300
  chartImages = await renderChartImages(browser, absolutePath);
294
301
  }
@@ -1 +1 @@
1
- {"version":3,"file":"export-docs.js","sourceRoot":"","sources":["../../../../packages/cli/commands/export-docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export-docs.js","sourceRoot":"","sources":["../../../../packages/cli/commands/export-docs.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,15 @@
1
1
  /**
2
2
  * Export slides command - converts HTML slides to PPTX using Playwright
3
+ *
4
+ * Strategy: Navigate to the directory of the first HTML file using file://
5
+ * protocol, then inject the bundle and run the conversion. This gives the
6
+ * page (and the nested iframe created by addSlideFromHtml) a real browsing
7
+ * context so that:
8
+ * - Google Fonts <link> tags load correctly → accurate font names/sizes
9
+ * - --disable-web-security allows cross-origin images on canvas without
10
+ * tainting → CSS filters, mask-image, and icon font rendering all work
11
+ * - No need to pre-embed images as data URIs (avoids regex fragility and
12
+ * potential base64 corruption by transformHtmlForPptx)
3
13
  */
4
14
  export declare function exportSlides(filePaths: string[], outDir: string, outputName?: string): Promise<void>;
5
15
  //# sourceMappingURL=export-slides.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"export-slides.d.ts","sourceRoot":"","sources":["../../../../packages/cli/commands/export-slides.ts"],"names":[],"mappings":"AAAA;;GAEG;AA8DH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuH1G"}
1
+ {"version":3,"file":"export-slides.d.ts","sourceRoot":"","sources":["../../../../packages/cli/commands/export-slides.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA8DH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4H1G"}
@@ -1,11 +1,21 @@
1
1
  /**
2
2
  * Export slides command - converts HTML slides to PPTX using Playwright
3
+ *
4
+ * Strategy: Navigate to the directory of the first HTML file using file://
5
+ * protocol, then inject the bundle and run the conversion. This gives the
6
+ * page (and the nested iframe created by addSlideFromHtml) a real browsing
7
+ * context so that:
8
+ * - Google Fonts <link> tags load correctly → accurate font names/sizes
9
+ * - --disable-web-security allows cross-origin images on canvas without
10
+ * tainting → CSS filters, mask-image, and icon font rendering all work
11
+ * - No need to pre-embed images as data URIs (avoids regex fragility and
12
+ * potential base64 corruption by transformHtmlForPptx)
3
13
  */
4
14
  import * as fs from "node:fs";
5
15
  import * as path from "node:path";
6
16
  import { fileURLToPath } from "node:url";
7
17
  import { chromium } from "playwright";
8
- import { fetchWithProxy } from "./common";
18
+ import { fetchWithProxy } from "../../shared/fetch-with-proxy";
9
19
  const __filename = fileURLToPath(import.meta.url);
10
20
  const __dirname = path.dirname(__filename);
11
21
  /**
@@ -63,7 +73,7 @@ export async function exportSlides(filePaths, outDir, outputName) {
63
73
  absolutePaths.push(absolutePath);
64
74
  }
65
75
  console.log(`Exporting ${absolutePaths.length} slide(s) to PPTX`);
66
- // Read the bundle.js which contains all the PPTX generation code
76
+ // Read the bundle which contains all the PPTX generation code
67
77
  let bundlePath = path.resolve(__dirname, "bundle.min.js");
68
78
  if (!fs.existsSync(bundlePath)) {
69
79
  bundlePath = path.resolve(__dirname, "..", "..", "..", "dist/bundle.min.js");
@@ -72,8 +82,21 @@ export async function exportSlides(filePaths, outDir, outputName) {
72
82
  throw new Error(`Bundle not found: ${bundlePath}. Run 'npm run build' first.`);
73
83
  }
74
84
  const bundleCode = fs.readFileSync(bundlePath, "utf-8");
75
- // Launch browser
76
- const launchOptions = { headless: true };
85
+ // Read all HTML files and embed external images as data URIs
86
+ // This bypasses CORS restrictions by fetching images in Node.js
87
+ const htmlContents = [];
88
+ for (const p of absolutePaths) {
89
+ let html = fs.readFileSync(p, "utf-8");
90
+ html = await embedExternalImages(html);
91
+ htmlContents.push(html);
92
+ }
93
+ // Launch browser with --disable-web-security so cross-origin images can be
94
+ // rendered on canvas without tainting (needed for CSS filters, mask-image,
95
+ // and icon font canvas rendering inside addSlideFromHtml).
96
+ const launchOptions = {
97
+ headless: true,
98
+ args: ["--disable-web-security"],
99
+ };
77
100
  const proxyServer = process.env.HTTPS_PROXY || process.env.HTTP_PROXY;
78
101
  if (proxyServer) {
79
102
  launchOptions.proxy = { server: proxyServer };
@@ -86,31 +109,23 @@ export async function exportSlides(filePaths, outDir, outputName) {
86
109
  ignoreHTTPSErrors: true,
87
110
  });
88
111
  const page = await context.newPage();
89
- // Read all HTML files and embed external images as data URIs
90
- // This bypasses CORS restrictions by fetching images in Node.js
91
- const htmlContents = [];
92
- for (const p of absolutePaths) {
93
- let html = fs.readFileSync(p, "utf-8");
94
- html = await embedExternalImages(html);
95
- htmlContents.push(html);
96
- }
97
- // Create a minimal HTML page with the bundle injected
98
- const pageHtml = `<!DOCTYPE html>
99
- <html>
100
- <head>
101
- <script>${bundleCode}</script>
102
- </head>
103
- <body></body>
104
- </html>`;
105
- // Load the page with bundle already included
106
- await page.setContent(pageHtml, { waitUntil: "networkidle" });
112
+ // Navigate to the directory of the first HTML file so the page has a real
113
+ // file:// origin. This ensures the nested iframe created by
114
+ // addSlideFromHtml (via blob URL) can load Google Fonts and other external
115
+ // resources, giving getComputedStyle() accurate font names and sizes.
116
+ const htmlDir = path.dirname(absolutePaths[0]);
117
+ await page.goto(`file://${htmlDir}/`, { waitUntil: "networkidle" });
118
+ // Inject the bundle into the page
119
+ await page.evaluate((code) => {
120
+ const script = document.createElement("script");
121
+ script.textContent = code;
122
+ document.head.appendChild(script);
123
+ }, bundleCode);
124
+ // Wait for the bundle to initialise on the page
125
+ await page.waitForFunction(() => !!window.docgen);
107
126
  // Generate PPTX in browser
108
127
  const pptxBuffer = await page.evaluate(async ({ htmlContents }) => {
109
- // Access the docgen exports from the bundle
110
128
  const docgen = window.docgen;
111
- if (!docgen) {
112
- throw new Error("docgen bundle not loaded");
113
- }
114
129
  // Create PptxGenJS instance
115
130
  const pptx = new docgen.PptxGenJS();
116
131
  pptx.layout = "LAYOUT_16x9";
@@ -1 +1 @@
1
- {"version":3,"file":"export-slides.js","sourceRoot":"","sources":["../../../../packages/cli/commands/export-slides.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export-slides.js","sourceRoot":"","sources":["../../../../packages/cli/commands/export-slides.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../packages/docs/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsD,SAAS,EAAe,KAAK,EAA8G,MAAM,MAAM,CAAC;AACrN,OAAO,EAAwD,aAAa,EAA8D,MAAM,UAAU,CAAC;AA4vB3J;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,CA41BlF"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../packages/docs/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsD,SAAS,EAAe,KAAK,EAA8G,MAAM,MAAM,CAAC;AACrN,OAAO,EAAwD,aAAa,EAA8D,MAAM,UAAU,CAAC;AAiwB3J;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,CA41BlF"}
@@ -1,5 +1,6 @@
1
1
  import { AlignmentType, BorderStyle, ImageRun, LineRuleType, Paragraph, ShadingType, Table, TableCell as DocxTableCell, TableRow, TextRun, UnderlineType, WidthType, convertInchesToTwip, XmlComponent } from "docx";
2
2
  import { HEADING_LEVEL_MAP } from "./common";
3
+ import { mapToOfficeFont } from "../shared/fonts";
3
4
  // Line spacing: HTML line-height 1.7
4
5
  // Word LineRuleType.AUTO uses "240ths of a line" - so 240 = single spacing, 360 = 1.5, 480 = double
5
6
  // For 1.7 line height: 240 * 1.7 = 408
@@ -402,10 +403,11 @@ class GradientTextRun extends XmlElement {
402
403
  }
403
404
  // Font family
404
405
  if (options.font) {
406
+ const officeFont = mapToOfficeFont(options.font);
405
407
  rPr.addChildElement(new XmlElement("w:rFonts", {
406
- "w:ascii": options.font,
407
- "w:hAnsi": options.font,
408
- "w:cs": options.font,
408
+ "w:ascii": officeFont,
409
+ "w:hAnsi": officeFont,
410
+ "w:cs": officeFont,
409
411
  }));
410
412
  }
411
413
  // Add solid color fallback for LibreOffice compatibility
@@ -456,6 +458,8 @@ function inlineRunsToTextRuns(runs, textTransform) {
456
458
  for (const run of runs) {
457
459
  // Split text by newlines to handle <br> tags
458
460
  const parts = run.text.split('\n');
461
+ // Map font family to Office-compatible equivalent
462
+ const font = run.fontFamily ? mapToOfficeFont(run.fontFamily) : undefined;
459
463
  // Build underline config if present
460
464
  const underlineConfig = run.underline ? {
461
465
  type: getUnderlineType(run.underline.type),
@@ -471,7 +475,7 @@ function inlineRunsToTextRuns(runs, textTransform) {
471
475
  italics: run.italic,
472
476
  color: run.color,
473
477
  size: run.size,
474
- font: run.fontFamily,
478
+ font,
475
479
  superScript: run.superscript,
476
480
  subScript: run.subscript,
477
481
  strike: run.strike,
@@ -494,7 +498,7 @@ function inlineRunsToTextRuns(runs, textTransform) {
494
498
  bold: run.bold,
495
499
  italics: run.italic,
496
500
  size: run.size,
497
- font: run.fontFamily,
501
+ font,
498
502
  fallbackColor: run.color, // Solid color fallback for LibreOffice
499
503
  }));
500
504
  }
@@ -505,7 +509,7 @@ function inlineRunsToTextRuns(runs, textTransform) {
505
509
  italics: run.italic,
506
510
  color: run.color,
507
511
  size: run.size,
508
- font: run.fontFamily,
512
+ font,
509
513
  superScript: run.superscript,
510
514
  subScript: run.subscript,
511
515
  strike: run.strike,
@@ -555,7 +559,7 @@ function createTableRow(cells, isHeaderRow, columnCount, cellPadding, headerBack
555
559
  // Use header text color for header rows, otherwise use run's color
556
560
  color: isHeaderRow && headerTextColor ? headerTextColor : run.color,
557
561
  size: run.size,
558
- font: run.fontFamily,
562
+ font: run.fontFamily ? mapToOfficeFont(run.fontFamily) : undefined,
559
563
  superScript: run.superscript,
560
564
  subScript: run.subscript,
561
565
  strike: run.strike,
@@ -690,7 +694,7 @@ export function convertElementToDocx(element) {
690
694
  }
691
695
  // Apply font-family extracted from CSS (e.g., h1 { font-family: 'Source Serif Pro'; })
692
696
  if (element.fontFamily) {
693
- textRunOptions.font = element.fontFamily;
697
+ textRunOptions.font = mapToOfficeFont(element.fontFamily);
694
698
  }
695
699
  // Apply font-size from CSS (overrides document style defaults)
696
700
  if (element.fontSize) {
@@ -756,7 +760,7 @@ export function convertElementToDocx(element) {
756
760
  bold: element.bold,
757
761
  italics: element.italic,
758
762
  color: element.color,
759
- font: element.fontFamily,
763
+ font: element.fontFamily ? mapToOfficeFont(element.fontFamily) : undefined,
760
764
  }),
761
765
  ];
762
766
  const alignment = textAlignmentToDocx(element.alignment);
@@ -912,7 +916,7 @@ export function convertElementToDocx(element) {
912
916
  bold: innerElement.bold,
913
917
  italics: innerElement.italic,
914
918
  color: paragraphColor,
915
- font: innerElement.fontFamily,
919
+ font: innerElement.fontFamily ? mapToOfficeFont(innerElement.fontFamily) : undefined,
916
920
  }),
917
921
  ];
918
922
  cellContent.push(new Paragraph({