pptx-automizer
Version:
A template based pptx generator
112 lines • 4.96 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
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());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const index_1 = __importStar(require("./index"));
const general_helper_1 = require("./helper/general-helper");
const fs = __importStar(require("fs"));
const run = () => __awaiter(void 0, void 0, void 0, function* () {
const outputDir = `${__dirname}/../__tests__/pptx-output`;
const templateDir = `${__dirname}/../__tests__/pptx-templates`;
// Step 1: Create a pptx with images and a chart inside.
// The chart is modified by pptx-automizer
const writer = new index_1.default({
templateDir,
outputDir,
verbosity: 0,
removeExistingSlides: true
});
const pres = writer
.loadRoot(`RootTemplate.pptx`)
.load(`EmptySlide.pptx`, 'empty')
.load(`SlideWithImages.pptx`, 'images')
.load(`ChartBarsStacked.pptx`, 'charts');
const dataSmaller = {
series: [{ label: 'series s1' }, { label: 'series s2' }],
categories: [
{ label: 'item test r1', values: [10, null] },
{ label: 'item test r2', values: [12, 18] },
],
};
yield pres
.addSlide('empty', 1, (slide) => {
slide.addElement('images', 1, 'Grafik 5');
})
.addSlide('charts', 1, (slide) => {
slide.modifyElement('BarsStacked', [index_1.modify.setChartData(dataSmaller)]);
})
.write(`modify-automizer-generated-file.tmp.test.pptx`);
// Step 2: Create a copy of the generated file in templateDir
// and load it as a normal template
yield fs.promises.copyFile(`${outputDir}/modify-automizer-generated-file.tmp.test.pptx`, `${templateDir}/PptxAutomizerGeneratedFile.pptx`);
const reader = new index_1.default({
templateDir,
outputDir,
// This will display all log() output
verbosity: 2
});
const dataSmallerMod = {
series: [{ label: 'series s3' }, { label: 'series s4' }],
categories: [
{ label: 'item test r3', values: [22, 45] },
{ label: 'item test r4', values: [23, 46] },
{ label: 'item test r5', values: [24, 47] },
],
};
const pres2 = reader
.loadRoot(`RootTemplate.pptx`)
.load(`EmptySlide.pptx`, 'empty')
.load(`SlideWithImages.pptx`, 'images')
.load(`PptxAutomizerGeneratedFile.pptx`, 'generated');
const presInfo = yield pres2.getInfo();
const slides = presInfo
.slidesByTemplate(`generated`);
console.log(`The re-imported file PptxAutomizerGeneratedFile.pptx seems to have ${slides.length} slides`);
// But only 2 slides were expected with removeExistingSlides: true
const result2 = yield pres2
.addSlide('empty', 1, (slide) => {
slide.addElement('images', 1, 'Grafik 5');
})
.addSlide('generated', 2, (slide) => {
slide.addElement('images', 1, 'Grafik 5');
})
.addSlide('generated', 3, (slide) => {
slide.modifyElement('BarsStacked', [index_1.modify.setChartData(dataSmallerMod)]);
})
.write(`modify-automizer-generated-file.test.pptx`);
(0, general_helper_1.vd)(result2);
});
run().catch((error) => {
console.error(error);
});
//# sourceMappingURL=dev.js.map