pptx-automizer-mp70
Version:
A template based pptx generator
187 lines • 6.34 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const index_1 = __importDefault(require("./index"));
const pptxgenjs_1 = __importDefault(require("pptxgenjs"));
let dataChartAreaLine = [
{
name: 'Actual Sales',
labels: [
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul',
'Aug',
'Sep',
'Oct',
'Nov',
'Dec',
],
values: [
1500, 4600, 5156, 3167, 8510, 8009, 6006, 7855, 12102, 12789, 10123,
15121,
],
},
{
name: 'Projected Sales',
labels: [
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul',
'Aug',
'Sep',
'Oct',
'Nov',
'Dec',
],
values: [
1000, 2600, 3456, 4567, 5010, 6009, 7006, 8855, 9102, 10789, 11123, 12121,
],
},
];
const run = () => __awaiter(void 0, void 0, void 0, function* () {
const outputDir = `${__dirname}/../__tests__/pptx-output`;
const templateDir = `${__dirname}/../__tests__/pptx-templates`;
let presPptxGen = new pptxgenjs_1.default();
let slide = presPptxGen.addSlide();
let textboxText = 'Hello World from PptxGenJS!';
let textboxOpts = {
x: 1,
y: 1,
color: '363636',
objectName: 'Text 1',
};
slide.addText(textboxText, textboxOpts);
slide.addImage({
path: 'https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg',
objectName: 'Image 1',
x: 1,
y: 2,
});
yield presPptxGen.writeFile({
fileName: templateDir + '/presPptxGenTmp.pptx',
});
const automizer = new index_1.default({
templateDir,
outputDir,
removeExistingSlides: true,
});
let pres = automizer
.loadRoot(`RootTemplate.pptx`)
.load(`presPptxGenTmp.pptx`, 'presPptxGenTmp')
.load(`SlideWithShapes.pptx`, 'shapes')
.load(`SlideWithCharts.pptx`, 'charts')
.load(`EmptySlide.pptx`, 'emptySlide');
// pres.addSlide('emptySlide', 1, async (slide) => {
// slide.generate((pptxGenJSSlide, objectName) => {
// pptxGenJSSlide.addText('Test', {
// x: 1,
// y: 1,
// color: '363636',
// objectName,
// });
// }, 'custom object name');
// });
//
// pres.addSlide('charts', 2, (slide) => {
// slide.modifyElement('ColumnChart', [
// modify.setChartData(<ChartData>{
// series: [
// { label: 'series 1' },
// { label: 'series 2' },
// { label: 'series 3' },
// ],
// categories: [
// { label: 'cat 2-1', values: [50, 50, 20] },
// { label: 'cat 2-2', values: [14, 50, 20] },
// { label: 'cat 2-3', values: [15, 50, 20] },
// { label: 'cat 2-4', values: [26, 50, 20] },
// ],
// }),
// ]);
// });
//
// pres.addSlide('emptySlide', 1, async (slide) => {
// slide.generate((pptxGenJSSlide, objectName) => {
// pptxGenJSSlide.addImage({
// path: 'https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg',
// x: 1,
// y: 2,
// objectName,
// });
// });
// });
pres.addSlide('shapes', 1, (slide) => {
slide.addElement('presPptxGenTmp', 1, 'Text 1');
slide.addElement('presPptxGenTmp', 1, 'Image 1');
pres.addSlide('emptySlide', 1, (slide) => __awaiter(void 0, void 0, void 0, function* () {
slide.addElement('charts', 2, 'ColumnChart');
slide.generate((pptxGenJSSlide, objectName, pptxGenJs) => {
pptxGenJSSlide.addChart('line', dataChartAreaLine, {
x: 1,
y: 1,
w: 8,
h: 4,
objectName,
});
});
//
// slide.generate((pptxGenJSSlide, objectName, pptxGenJs) => {
// pptxGenJSSlide.addChart('line', dataChartAreaLine, {
// x: 3,
// y: 1,
// w: 6,
// h: 2,
// objectName,
// });
// }, 'MyLineChart');
}));
pres.addSlide('emptySlide', 1, (slide) => __awaiter(void 0, void 0, void 0, function* () {
slide.addElement('charts', 2, 'ColumnChart');
slide.generate((pptxGenJSSlide, objectName, pptxGenJs) => {
pptxGenJSSlide.addChart('line', dataChartAreaLine, {
x: 1,
y: 1,
w: 8,
h: 4,
objectName,
});
});
//
// slide.generate((pptxGenJSSlide, objectName, pptxGenJs) => {
// pptxGenJSSlide.addChart('line', dataChartAreaLine, {
// x: 3,
// y: 1,
// w: 6,
// h: 2,
// objectName,
// });
// }, 'MyLineChart');
}));
pres.write(`myOutputPresentation.pptx`).then((summary) => {
console.log(summary);
});
});
});
run().catch((error) => {
console.error(error);
});
//# sourceMappingURL=dev.js.map