docgen-utils 1.0.33 → 1.0.35
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/cli.js
CHANGED
|
@@ -81608,10 +81608,6 @@ async function exportSlides(filePaths, outDir, outputName, pdf = false) {
|
|
|
81608
81608
|
pptx.layout = "LAYOUT_16x9";
|
|
81609
81609
|
pptx.author = "docgen";
|
|
81610
81610
|
pptx.title = "Presentation";
|
|
81611
|
-
const slideSlots = [];
|
|
81612
|
-
for (let i = 0; i < absolutePaths.length; i++) {
|
|
81613
|
-
slideSlots.push({ slide: pptx.addSlide(), generated: false });
|
|
81614
|
-
}
|
|
81615
81611
|
let parsedCount = 0;
|
|
81616
81612
|
let generatedCount = 0;
|
|
81617
81613
|
const parsedSlides = [];
|
|
@@ -81621,21 +81617,26 @@ async function exportSlides(filePaths, outDir, outputName, pdf = false) {
|
|
|
81621
81617
|
while (true) {
|
|
81622
81618
|
const nextIndex = generatedCount;
|
|
81623
81619
|
const entry = parsedSlides.find((p) => p.index === nextIndex);
|
|
81624
|
-
if (!entry) break;
|
|
81620
|
+
if (!entry || !entry.slideData) break;
|
|
81625
81621
|
await entry.imagesReady;
|
|
81626
|
-
const
|
|
81627
|
-
const
|
|
81622
|
+
const slideData = entry.slideData;
|
|
81623
|
+
const slide = pptx.addSlide();
|
|
81628
81624
|
injectImageDataUrls(slideData, imageCache);
|
|
81629
|
-
await applyBackground(slideData.background,
|
|
81630
|
-
await addElementsToSlide(slideData.elements,
|
|
81631
|
-
|
|
81625
|
+
await applyBackground(slideData.background, slide);
|
|
81626
|
+
await addElementsToSlide(slideData.elements, slide, pptx);
|
|
81627
|
+
const urls = collectImageUrls(slideData);
|
|
81628
|
+
for (const url of urls) {
|
|
81629
|
+
imageCache.delete(url);
|
|
81630
|
+
imageFetchPromises.delete(url);
|
|
81631
|
+
}
|
|
81632
|
+
entry.slideData = null;
|
|
81632
81633
|
generatedCount++;
|
|
81633
81634
|
console.log(` Slide ${generatedCount}/${absolutePaths.length} done`);
|
|
81634
81635
|
}
|
|
81635
81636
|
});
|
|
81636
81637
|
}
|
|
81637
81638
|
const launchOptions = {
|
|
81638
|
-
headless:
|
|
81639
|
+
headless: false,
|
|
81639
81640
|
args: ["--disable-web-security"]
|
|
81640
81641
|
};
|
|
81641
81642
|
const proxyServer = process.env.HTTPS_PROXY || process.env.HTTP_PROXY || process.env.https_proxy || process.env.http_proxy;
|
|
@@ -81660,108 +81661,100 @@ async function exportSlides(filePaths, outDir, outputName, pdf = false) {
|
|
|
81660
81661
|
}
|
|
81661
81662
|
return route.continue();
|
|
81662
81663
|
});
|
|
81663
|
-
const
|
|
81664
|
-
|
|
81665
|
-
|
|
81666
|
-
const
|
|
81667
|
-
|
|
81668
|
-
|
|
81669
|
-
|
|
81670
|
-
|
|
81671
|
-
|
|
81672
|
-
|
|
81673
|
-
|
|
81674
|
-
|
|
81675
|
-
|
|
81676
|
-
|
|
81677
|
-
|
|
81678
|
-
|
|
81679
|
-
|
|
81680
|
-
|
|
81681
|
-
|
|
81682
|
-
const slideDataJson = await page.evaluate(`(async function() {
|
|
81683
|
-
const docgen = window.docgen;
|
|
81684
|
-
const html = document.documentElement.outerHTML;
|
|
81685
|
-
const transformedHtml = docgen.transformHtmlForPptx(html);
|
|
81664
|
+
const page = await context.newPage();
|
|
81665
|
+
page.setDefaultTimeout(6e4);
|
|
81666
|
+
for (let index = 0; index < absolutePaths.length; index++) {
|
|
81667
|
+
const slidePath = absolutePaths[index];
|
|
81668
|
+
await page.goto(`file://${slidePath}`, { waitUntil: "domcontentloaded" });
|
|
81669
|
+
await page.addScriptTag({ content: bundleJs });
|
|
81670
|
+
await page.waitForFunction("typeof window.docgen !== 'undefined'");
|
|
81671
|
+
await page.evaluate(`(async function() {
|
|
81672
|
+
if (document.fonts && document.fonts.ready) {
|
|
81673
|
+
await Promise.race([
|
|
81674
|
+
document.fonts.ready,
|
|
81675
|
+
new Promise(r => setTimeout(r, 500))
|
|
81676
|
+
]);
|
|
81677
|
+
}
|
|
81678
|
+
})()`);
|
|
81679
|
+
const slideDataJson = await page.evaluate(`(async function() {
|
|
81680
|
+
const docgen = window.docgen;
|
|
81681
|
+
const html = document.documentElement.outerHTML;
|
|
81682
|
+
const transformedHtml = docgen.transformHtmlForPptx(html);
|
|
81686
81683
|
|
|
81687
|
-
|
|
81688
|
-
|
|
81684
|
+
const iframe = document.createElement('iframe');
|
|
81685
|
+
iframe.style.cssText = 'position:absolute;left:-9999px;width:960px;height:540px;border:none;';
|
|
81689
81686
|
|
|
81690
|
-
|
|
81691
|
-
|
|
81687
|
+
const blob = new Blob([transformedHtml], { type: 'text/html' });
|
|
81688
|
+
const blobUrl = URL.createObjectURL(blob);
|
|
81692
81689
|
|
|
81693
|
-
|
|
81694
|
-
|
|
81695
|
-
|
|
81690
|
+
return new Promise((resolve) => {
|
|
81691
|
+
iframe.onload = async () => {
|
|
81692
|
+
URL.revokeObjectURL(blobUrl);
|
|
81696
81693
|
|
|
81697
|
-
|
|
81698
|
-
|
|
81694
|
+
const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
|
|
81695
|
+
const win = iframe.contentWindow;
|
|
81699
81696
|
|
|
81700
|
-
|
|
81701
|
-
|
|
81702
|
-
|
|
81703
|
-
|
|
81704
|
-
|
|
81705
|
-
|
|
81697
|
+
if (win.document.fonts && win.document.fonts.ready) {
|
|
81698
|
+
await Promise.race([
|
|
81699
|
+
win.document.fonts.ready,
|
|
81700
|
+
new Promise(r => setTimeout(r, 500))
|
|
81701
|
+
]);
|
|
81702
|
+
}
|
|
81706
81703
|
|
|
81707
|
-
|
|
81708
|
-
|
|
81709
|
-
|
|
81710
|
-
|
|
81711
|
-
|
|
81712
|
-
|
|
81713
|
-
|
|
81714
|
-
|
|
81715
|
-
|
|
81704
|
+
try {
|
|
81705
|
+
const slideData = docgen.parseSlideHtml(iframeDoc);
|
|
81706
|
+
iframe.parentNode.removeChild(iframe);
|
|
81707
|
+
resolve(JSON.stringify(slideData));
|
|
81708
|
+
} catch(e) {
|
|
81709
|
+
iframe.parentNode.removeChild(iframe);
|
|
81710
|
+
resolve(JSON.stringify({ error: e.message }));
|
|
81711
|
+
}
|
|
81712
|
+
};
|
|
81716
81713
|
|
|
81717
|
-
|
|
81718
|
-
|
|
81719
|
-
|
|
81720
|
-
|
|
81721
|
-
|
|
81714
|
+
iframe.onerror = () => {
|
|
81715
|
+
URL.revokeObjectURL(blobUrl);
|
|
81716
|
+
iframe.parentNode?.removeChild(iframe);
|
|
81717
|
+
resolve(JSON.stringify({ error: 'iframe load error' }));
|
|
81718
|
+
};
|
|
81722
81719
|
|
|
81723
|
-
|
|
81724
|
-
|
|
81720
|
+
iframe.src = blobUrl;
|
|
81721
|
+
document.body.appendChild(iframe);
|
|
81725
81722
|
|
|
81726
|
-
|
|
81727
|
-
|
|
81728
|
-
|
|
81729
|
-
|
|
81730
|
-
|
|
81731
|
-
|
|
81732
|
-
|
|
81733
|
-
|
|
81734
|
-
|
|
81735
|
-
|
|
81736
|
-
|
|
81737
|
-
|
|
81738
|
-
|
|
81739
|
-
|
|
81740
|
-
|
|
81741
|
-
|
|
81742
|
-
|
|
81743
|
-
|
|
81744
|
-
|
|
81745
|
-
|
|
81746
|
-
|
|
81747
|
-
|
|
81748
|
-
|
|
81749
|
-
queueGeneration();
|
|
81750
|
-
});
|
|
81751
|
-
await Promise.all(batchPromises);
|
|
81723
|
+
setTimeout(() => {
|
|
81724
|
+
if (iframe.parentNode) {
|
|
81725
|
+
iframe.parentNode.removeChild(iframe);
|
|
81726
|
+
resolve(JSON.stringify({ error: 'timeout' }));
|
|
81727
|
+
}
|
|
81728
|
+
}, 10000);
|
|
81729
|
+
});
|
|
81730
|
+
})()`);
|
|
81731
|
+
if (!slideDataJson) {
|
|
81732
|
+
throw new Error(`Failed to parse slide ${index + 1}: ${slidePath} - null result`);
|
|
81733
|
+
}
|
|
81734
|
+
const parsed = JSON.parse(slideDataJson);
|
|
81735
|
+
if (typeof parsed === "object" && "error" in parsed) {
|
|
81736
|
+
throw new Error(`Failed to parse slide ${index + 1}: ${slidePath} - ${parsed.error}`);
|
|
81737
|
+
}
|
|
81738
|
+
const slideData = parsed;
|
|
81739
|
+
parsedCount++;
|
|
81740
|
+
console.log(` Parsed ${parsedCount}/${absolutePaths.length}`);
|
|
81741
|
+
const urls = collectImageUrls(slideData);
|
|
81742
|
+
urls.forEach((url) => startImageFetch(url));
|
|
81743
|
+
const imagesReady = waitForSlideImages(slideData);
|
|
81744
|
+
parsedSlides.push({ index, slideData, imagesReady });
|
|
81745
|
+
queueGeneration();
|
|
81752
81746
|
}
|
|
81747
|
+
await page.close();
|
|
81753
81748
|
await context.close();
|
|
81754
81749
|
await browser2.close();
|
|
81755
81750
|
await generationChain;
|
|
81756
81751
|
if (failedImages.size > 0) {
|
|
81757
81752
|
console.error(`Warning: Failed to fetch ${failedImages.size} image(s)`);
|
|
81758
81753
|
}
|
|
81759
|
-
const base64 = await pptx.write({ outputType: "base64" });
|
|
81760
|
-
const pptxBuffer = Buffer.from(base64, "base64");
|
|
81761
81754
|
const firstBaseName = path5.basename(absolutePaths[0], ".html");
|
|
81762
81755
|
const finalName = outputName || (absolutePaths.length === 1 ? firstBaseName : "presentation");
|
|
81763
81756
|
const pptxOutputPath = path5.join(outDir, `${finalName}.pptx`);
|
|
81764
|
-
|
|
81757
|
+
await pptx.writeFile({ fileName: pptxOutputPath });
|
|
81765
81758
|
if (pdf) {
|
|
81766
81759
|
console.log("Converting to PDF via LibreOffice...");
|
|
81767
81760
|
const pdfPath = convertOfficeToPdf(pptxOutputPath, outDir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-slides.d.ts","sourceRoot":"","sources":["../../../../packages/cli/commands/export-slides.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA6EH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"export-slides.d.ts","sourceRoot":"","sources":["../../../../packages/cli/commands/export-slides.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA6EH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA4QhI"}
|
|
@@ -126,11 +126,6 @@ export async function exportSlides(filePaths, outDir, outputName, pdf = false) {
|
|
|
126
126
|
pptx.layout = "LAYOUT_16x9";
|
|
127
127
|
pptx.author = "docgen";
|
|
128
128
|
pptx.title = "Presentation";
|
|
129
|
-
// Pre-create slides to maintain order (PptxGenJS adds slides sequentially)
|
|
130
|
-
const slideSlots = [];
|
|
131
|
-
for (let i = 0; i < absolutePaths.length; i++) {
|
|
132
|
-
slideSlots.push({ slide: pptx.addSlide(), generated: false });
|
|
133
|
-
}
|
|
134
129
|
// Track progress
|
|
135
130
|
let parsedCount = 0;
|
|
136
131
|
let generatedCount = 0;
|
|
@@ -144,17 +139,24 @@ export async function exportSlides(filePaths, outDir, outputName, pdf = false) {
|
|
|
144
139
|
// Find next slide in order
|
|
145
140
|
const nextIndex = generatedCount;
|
|
146
141
|
const entry = parsedSlides.find(p => p.index === nextIndex);
|
|
147
|
-
if (!entry)
|
|
142
|
+
if (!entry || !entry.slideData)
|
|
148
143
|
break;
|
|
149
144
|
// Wait for this slide's images
|
|
150
145
|
await entry.imagesReady;
|
|
151
|
-
// Generate slide
|
|
152
|
-
const
|
|
153
|
-
const
|
|
146
|
+
// Generate slide - create slide on demand to maintain order
|
|
147
|
+
const slideData = entry.slideData;
|
|
148
|
+
const slide = pptx.addSlide();
|
|
154
149
|
injectImageDataUrls(slideData, imageCache);
|
|
155
|
-
await applyBackground(slideData.background,
|
|
156
|
-
await addElementsToSlide(slideData.elements,
|
|
157
|
-
|
|
150
|
+
await applyBackground(slideData.background, slide);
|
|
151
|
+
await addElementsToSlide(slideData.elements, slide, pptx);
|
|
152
|
+
// Clear image cache entries used by this slide to allow GC
|
|
153
|
+
const urls = collectImageUrls(slideData);
|
|
154
|
+
for (const url of urls) {
|
|
155
|
+
imageCache.delete(url);
|
|
156
|
+
imageFetchPromises.delete(url);
|
|
157
|
+
}
|
|
158
|
+
// Null out slideData to allow GC
|
|
159
|
+
entry.slideData = null;
|
|
158
160
|
generatedCount++;
|
|
159
161
|
console.log(` Slide ${generatedCount}/${absolutePaths.length} done`);
|
|
160
162
|
}
|
|
@@ -162,7 +164,7 @@ export async function exportSlides(filePaths, outDir, outputName, pdf = false) {
|
|
|
162
164
|
}
|
|
163
165
|
// Launch browser
|
|
164
166
|
const launchOptions = {
|
|
165
|
-
headless:
|
|
167
|
+
headless: false,
|
|
166
168
|
args: ["--disable-web-security"],
|
|
167
169
|
};
|
|
168
170
|
const proxyServer = process.env.HTTPS_PROXY || process.env.HTTP_PROXY || process.env.https_proxy || process.env.http_proxy;
|
|
@@ -188,100 +190,94 @@ export async function exportSlides(filePaths, outDir, outputName, pdf = false) {
|
|
|
188
190
|
}
|
|
189
191
|
return route.continue();
|
|
190
192
|
});
|
|
191
|
-
//
|
|
192
|
-
const
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
const slideDataJson = await page.evaluate(`(async function() {
|
|
212
|
-
const docgen = window.docgen;
|
|
213
|
-
const html = document.documentElement.outerHTML;
|
|
214
|
-
const transformedHtml = docgen.transformHtmlForPptx(html);
|
|
193
|
+
// Use a single page and process slides sequentially
|
|
194
|
+
const page = await context.newPage();
|
|
195
|
+
page.setDefaultTimeout(60000);
|
|
196
|
+
for (let index = 0; index < absolutePaths.length; index++) {
|
|
197
|
+
const slidePath = absolutePaths[index];
|
|
198
|
+
await page.goto(`file://${slidePath}`, { waitUntil: "domcontentloaded" });
|
|
199
|
+
await page.addScriptTag({ content: bundleJs });
|
|
200
|
+
await page.waitForFunction("typeof window.docgen !== 'undefined'");
|
|
201
|
+
await page.evaluate(`(async function() {
|
|
202
|
+
if (document.fonts && document.fonts.ready) {
|
|
203
|
+
await Promise.race([
|
|
204
|
+
document.fonts.ready,
|
|
205
|
+
new Promise(r => setTimeout(r, 500))
|
|
206
|
+
]);
|
|
207
|
+
}
|
|
208
|
+
})()`);
|
|
209
|
+
const slideDataJson = await page.evaluate(`(async function() {
|
|
210
|
+
const docgen = window.docgen;
|
|
211
|
+
const html = document.documentElement.outerHTML;
|
|
212
|
+
const transformedHtml = docgen.transformHtmlForPptx(html);
|
|
215
213
|
|
|
216
|
-
|
|
217
|
-
|
|
214
|
+
const iframe = document.createElement('iframe');
|
|
215
|
+
iframe.style.cssText = 'position:absolute;left:-9999px;width:960px;height:540px;border:none;';
|
|
218
216
|
|
|
219
|
-
|
|
220
|
-
|
|
217
|
+
const blob = new Blob([transformedHtml], { type: 'text/html' });
|
|
218
|
+
const blobUrl = URL.createObjectURL(blob);
|
|
221
219
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
220
|
+
return new Promise((resolve) => {
|
|
221
|
+
iframe.onload = async () => {
|
|
222
|
+
URL.revokeObjectURL(blobUrl);
|
|
225
223
|
|
|
226
|
-
|
|
227
|
-
|
|
224
|
+
const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
|
|
225
|
+
const win = iframe.contentWindow;
|
|
228
226
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
227
|
+
if (win.document.fonts && win.document.fonts.ready) {
|
|
228
|
+
await Promise.race([
|
|
229
|
+
win.document.fonts.ready,
|
|
230
|
+
new Promise(r => setTimeout(r, 500))
|
|
231
|
+
]);
|
|
232
|
+
}
|
|
235
233
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
234
|
+
try {
|
|
235
|
+
const slideData = docgen.parseSlideHtml(iframeDoc);
|
|
236
|
+
iframe.parentNode.removeChild(iframe);
|
|
237
|
+
resolve(JSON.stringify(slideData));
|
|
238
|
+
} catch(e) {
|
|
239
|
+
iframe.parentNode.removeChild(iframe);
|
|
240
|
+
resolve(JSON.stringify({ error: e.message }));
|
|
241
|
+
}
|
|
242
|
+
};
|
|
245
243
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
244
|
+
iframe.onerror = () => {
|
|
245
|
+
URL.revokeObjectURL(blobUrl);
|
|
246
|
+
iframe.parentNode?.removeChild(iframe);
|
|
247
|
+
resolve(JSON.stringify({ error: 'iframe load error' }));
|
|
248
|
+
};
|
|
251
249
|
|
|
252
|
-
|
|
253
|
-
|
|
250
|
+
iframe.src = blobUrl;
|
|
251
|
+
document.body.appendChild(iframe);
|
|
254
252
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
queueGeneration();
|
|
282
|
-
});
|
|
283
|
-
await Promise.all(batchPromises);
|
|
253
|
+
setTimeout(() => {
|
|
254
|
+
if (iframe.parentNode) {
|
|
255
|
+
iframe.parentNode.removeChild(iframe);
|
|
256
|
+
resolve(JSON.stringify({ error: 'timeout' }));
|
|
257
|
+
}
|
|
258
|
+
}, 10000);
|
|
259
|
+
});
|
|
260
|
+
})()`);
|
|
261
|
+
if (!slideDataJson) {
|
|
262
|
+
throw new Error(`Failed to parse slide ${index + 1}: ${slidePath} - null result`);
|
|
263
|
+
}
|
|
264
|
+
const parsed = JSON.parse(slideDataJson);
|
|
265
|
+
if (typeof parsed === 'object' && 'error' in parsed) {
|
|
266
|
+
throw new Error(`Failed to parse slide ${index + 1}: ${slidePath} - ${parsed.error}`);
|
|
267
|
+
}
|
|
268
|
+
const slideData = parsed;
|
|
269
|
+
parsedCount++;
|
|
270
|
+
console.log(` Parsed ${parsedCount}/${absolutePaths.length}`);
|
|
271
|
+
// Start fetching images for this slide immediately
|
|
272
|
+
const urls = collectImageUrls(slideData);
|
|
273
|
+
urls.forEach(url => startImageFetch(url));
|
|
274
|
+
// Create promise that resolves when all images for this slide are ready
|
|
275
|
+
const imagesReady = waitForSlideImages(slideData);
|
|
276
|
+
// Add to queue and trigger generation
|
|
277
|
+
parsedSlides.push({ index, slideData, imagesReady });
|
|
278
|
+
queueGeneration();
|
|
284
279
|
}
|
|
280
|
+
await page.close();
|
|
285
281
|
await context.close();
|
|
286
282
|
await browser.close();
|
|
287
283
|
// Wait for all slide generation to complete
|
|
@@ -291,12 +287,10 @@ export async function exportSlides(filePaths, outDir, outputName, pdf = false) {
|
|
|
291
287
|
console.error(`Warning: Failed to fetch ${failedImages.size} image(s)`);
|
|
292
288
|
}
|
|
293
289
|
// Write final PPTX
|
|
294
|
-
const base64 = await pptx.write({ outputType: "base64" });
|
|
295
|
-
const pptxBuffer = Buffer.from(base64, "base64");
|
|
296
290
|
const firstBaseName = path.basename(absolutePaths[0], ".html");
|
|
297
291
|
const finalName = outputName || (absolutePaths.length === 1 ? firstBaseName : "presentation");
|
|
298
292
|
const pptxOutputPath = path.join(outDir, `${finalName}.pptx`);
|
|
299
|
-
|
|
293
|
+
await pptx.writeFile({ fileName: pptxOutputPath });
|
|
300
294
|
if (pdf) {
|
|
301
295
|
console.log("Converting to PDF via LibreOffice...");
|
|
302
296
|
const pdfPath = convertOfficeToPdf(pptxOutputPath, outDir);
|
|
@@ -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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"}
|