Skip to content

Commit ac265d5

Browse files
committed
chore(generate): use single slide in tmp file (WIP)
1 parent bb7fa9b commit ac265d5

File tree

2 files changed

+97
-6
lines changed

2 files changed

+97
-6
lines changed

__tests__/generate-pptxgenjs-text.test.ts

Lines changed: 89 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ test('insert a textbox with pptxgenjs on a template slide', async () => {
1414
pres.addSlide('empty', 1, (slide) => {
1515
// Use pptxgenjs to add text from scratch:
1616
slide.generate((pptxGenJSSlide) => {
17-
pptxGenJSSlide.addText('Test', {
17+
pptxGenJSSlide.addText('Test 1', {
1818
x: 1,
1919
y: 1,
2020
h: 5,
@@ -24,7 +24,94 @@ test('insert a textbox with pptxgenjs on a template slide', async () => {
2424
}, 'custom object name');
2525
});
2626

27+
pres.addSlide('empty', 1, (slide) => {
28+
// Use pptxgenjs to add text from scratch:
29+
slide.generate((pptxGenJSSlide) => {
30+
pptxGenJSSlide.addText('Test 2', {
31+
x: 1,
32+
y: 1,
33+
h: 5,
34+
w: 10,
35+
color: '363636',
36+
});
37+
pptxGenJSSlide.addText('Test 3', {
38+
x: 1,
39+
y: 1,
40+
h: 5,
41+
w: 10,
42+
color: '363636',
43+
});
44+
}, 'custom object name');
45+
});
46+
47+
pres.addSlide('empty', 1, (slide) => {
48+
// Use pptxgenjs to add text from scratch:
49+
slide.generate((pptxGenJSSlide) => {
50+
pptxGenJSSlide.addText('Test 4', {
51+
x: 1,
52+
y: 1,
53+
h: 5,
54+
w: 10,
55+
color: '363636',
56+
});
57+
pptxGenJSSlide.addText('Test 5', {
58+
x: 1,
59+
y: 1,
60+
h: 5,
61+
w: 10,
62+
color: '363636',
63+
});
64+
pptxGenJSSlide.addText('Test 6', {
65+
x: 1,
66+
y: 1,
67+
h: 5,
68+
w: 10,
69+
color: '363636',
70+
});
71+
}, 'custom object name');
72+
});
73+
74+
pres.addSlide('empty', 1, (slide) => {
75+
// Use pptxgenjs to add text from scratch:
76+
slide.generate((pptxGenJSSlide) => {
77+
pptxGenJSSlide.addText('Test 7', {
78+
x: 1,
79+
y: 6,
80+
h: 5,
81+
w: 10,
82+
color: '363636',
83+
});
84+
pptxGenJSSlide.addText('Test 8', {
85+
x: 1,
86+
y: 3,
87+
h: 5,
88+
w: 10,
89+
color: '363636',
90+
});
91+
pptxGenJSSlide.addText('Test 9', {
92+
x: 1,
93+
y: 2,
94+
h: 5,
95+
w: 10,
96+
color: '363636',
97+
});
98+
}, 'custom object name 1243453');
99+
100+
slide.generate((pptxGenJSSlide) => {
101+
pptxGenJSSlide.addImage({
102+
path: `${__dirname}/media/test.png`,
103+
x: 1,
104+
y: 2,
105+
});
106+
pptxGenJSSlide.addImage({
107+
path: `${__dirname}/images/test.svg`,
108+
x: 4,
109+
y: 2,
110+
});
111+
}, 'custom object name 123');
112+
});
113+
27114
const result = await pres.write(`generate-pptxgenjs-text.test.pptx`);
28115

29-
expect(result.slides).toBe(2);
116+
// expect(result.slides).toBe(2);
30117
});

src/helper/generate/generate-pptxgenjs.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { GenerateElements } from '../../types/types';
66
import { IGenerator } from '../../interfaces/igenerator';
77
import { IPptxGenJSSlide } from '../../interfaces/ipptxgenjs-slide';
88
import fs from 'fs';
9+
import { vd } from '../general-helper';
910

1011
/**
1112
* Using pptxGenJs on an automizer ISlide will create a temporary pptx template
@@ -36,11 +37,14 @@ export default class GeneratePptxGenJs implements IGenerator {
3637

3738
async generateSlides(): Promise<void> {
3839
this.tmpFile = randomUUID() + '.pptx';
40+
const pgenSlide = this.appendPptxGenSlide();
41+
3942
for (const slide of this.slides) {
4043
const generate = slide.getGeneratedElements();
44+
4145
if (generate.length) {
4246
this.countSlides++;
43-
await this.generateElements(generate, this.appendPptxGenSlide());
47+
await this.generateElements(generate, pgenSlide);
4448
this.addElements(generate, slide);
4549
}
4650
}
@@ -55,10 +59,10 @@ export default class GeneratePptxGenJs implements IGenerator {
5559

5660
async generateElements(
5761
generate: GenerateElements[],
58-
pgenSlide: PptxGenJS.Slide,
62+
pgenSlide,
5963
): Promise<void> {
6064
for (const generateElement of generate) {
61-
generateElement.tmpSlideNumber = this.countSlides;
65+
generateElement.tmpSlideNumber = 1;
6266
const addedObjects = <string[]>[];
6367
await generateElement.callback(
6468
this.addSlideItems(pgenSlide, generateElement, addedObjects),
@@ -71,7 +75,7 @@ export default class GeneratePptxGenJs implements IGenerator {
7175
addElements(generate: GenerateElements[], slide: ISlide) {
7276
generate.forEach((generateElement) => {
7377
generateElement.addedObjects.forEach((addedObjectName) => {
74-
slide.addElement(this.tmpFile, this.countSlides, addedObjectName);
78+
slide.addElement(this.tmpFile, 1, addedObjectName);
7579
});
7680
});
7781
}

0 commit comments

Comments
 (0)