{"_id":"@bapunhansdah/pptxgenjs","_rev":"5-4ec3e10c02a4b88bc973bafe45e269ba","name":"@bapunhansdah/pptxgenjs","dist-tags":{"latest":"1.1.3"},"versions":{"1.0.0":{"name":"@bapunhansdah/pptxgenjs","version":"1.0.0","keywords":["powerpoint","pptx","pptxgenjs","presentation","slide-generator","animation","javascript-powerpoint","typescript-powerpoint","javascript-pptx","pptx-animations","html-to-powerpoint","react-powerpoint"],"author":{"url":"https://github.com/bapunhansdah","name":"Bapun Hansdah"},"license":"MIT","_id":"@bapunhansdah/pptxgenjs@1.0.0","maintainers":[{"name":"bapunhansdah","email":"bapunhansdah777@gmail.com"}],"homepage":"https://github.com/bapunhansdah/PptxGenJS","bugs":{"url":"https://github.com/bapunhansdah/PptxGenJS/issues"},"dist":{"shasum":"241893e6dabc2396c7f6c9675fb819c0055f79db","tarball":"https://registry.npmjs.org/@bapunhansdah/pptxgenjs/-/pptxgenjs-1.0.0.tgz","fileCount":10,"integrity":"sha512-xKNZdRb28/dNeuVeA8Hr7j39bYPx+C1Zffb1cJkP2HLPugTn8xWZR6XInm4qpfIP9OUiCGNm7SukVZeqEd4g2g==","signatures":[{"sig":"MEQCICfuZJfUIXMnTSaCKY+1XEfTHsmx3CMAPdC1vOYvxoG2AiAtwO/B28wPjobP23cqeBC9hhQPL4LZMIH7WyswU6pw5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3091172},"main":"dist/pptxgen.cjs.js","types":"types","module":"dist/pptxgen.es.js","browser":{"fs":false,"os":false,"path":false,"https":false,"express":false,"node:fs":false,"image-size":false,"node:https":false},"exports":{"types":"./types/index.d.ts","import":"./dist/pptxgen.es.js","require":"./dist/pptxgen.cjs.js"},"gitHead":"28af1ba3aa70f02a82292104496e5e97efbe4dbc","scripts":{"defs":"gulp reactTestDefs","ship":"gulp ship","build":"rollup -c --bundleConfigAsCjs","start":"gulp","watch":"rollup -cw"},"_npmUser":{"name":"bapunhansdah","email":"bapunhansdah777@gmail.com"},"repository":{"url":"git+https://github.com/bapunhansdah/PptxGenJS.git","type":"git"},"_npmVersion":"10.9.2","description":"Enhanced fork of PptxGenJS with full animation support and PowerPoint transition effects.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"https":"^1.0.0","jszip":"^3.10.1","image-size":"^1.2.1","@types/node":"^22.8.1"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","tslib":"^2.8.0","eslint":"^9.25.1","rollup":"^4.24.2","express":"^5.1.0","@eslint/js":"^9.25.1","typescript":"^5.6.3","gulp-concat":"^2.6.1","gulp-ignore":"^3.0.0","gulp-insert":"^0.5.0","gulp-uglify":"^3.0.2","gulp-sourcemaps":"^3.0.0","gulp-delete-lines":"0.0.7","typescript-eslint":"^8.31.0","@rollup/plugin-commonjs":"^28.0.1","@stylistic/eslint-plugin":"^4.2.0","@typescript-eslint/parser":"^8.31.0","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.31.0"},"_npmOperationalInternal":{"tmp":"tmp/pptxgenjs_1.0.0_1763970769088_0.0869667186523877","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@bapunhansdah/pptxgenjs","version":"1.1.0","keywords":["powerpoint","pptx","pptxgenjs","presentation","slide-generator","animation","javascript-powerpoint","typescript-powerpoint","javascript-pptx","pptx-animations","html-to-powerpoint","react-powerpoint"],"author":{"url":"https://github.com/bapunhansdah","name":"Bapun Hansdah"},"license":"MIT","_id":"@bapunhansdah/pptxgenjs@1.1.0","maintainers":[{"name":"bapunhansdah","email":"bapunhansdah777@gmail.com"}],"homepage":"https://github.com/bapunhansdah/PptxGenJS","bugs":{"url":"https://github.com/bapunhansdah/PptxGenJS/issues"},"dist":{"shasum":"1f978a3e65bdb208c8fe3da42b0d21269d5216dc","tarball":"https://registry.npmjs.org/@bapunhansdah/pptxgenjs/-/pptxgenjs-1.1.0.tgz","fileCount":10,"integrity":"sha512-AfkSqBc/O1h8fBWrDrn0bVq25W568th4vyQy5P10YRAlYpAqf0aDtEpfYuqdhR8ZnDtMZ1qUXXFxkPXVkD8oFQ==","signatures":[{"sig":"MEUCIF3uVvg6OmQP9NCERwfZlk6+CpXnOM67jSfw4sRnplNeAiEAojpZAQSof7G8vx/epzcxT07Uoi1UOyKcS13t46IRLKo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3094425},"main":"dist/pptxgen.cjs.js","types":"types","module":"dist/pptxgen.es.js","browser":{"fs":false,"os":false,"path":false,"https":false,"express":false,"node:fs":false,"image-size":false,"node:https":false},"exports":{"types":"./types/index.d.ts","import":"./dist/pptxgen.es.js","require":"./dist/pptxgen.cjs.js"},"gitHead":"28af1ba3aa70f02a82292104496e5e97efbe4dbc","scripts":{"defs":"gulp reactTestDefs","ship":"gulp ship","build":"rollup -c --bundleConfigAsCjs","start":"gulp","watch":"rollup -cw"},"_npmUser":{"name":"bapunhansdah","email":"bapunhansdah777@gmail.com"},"repository":{"url":"git+https://github.com/bapunhansdah/PptxGenJS.git","type":"git"},"_npmVersion":"10.9.2","description":"Enhanced fork of PptxGenJS with full animation support and PowerPoint transition effects.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"https":"^1.0.0","jszip":"^3.10.1","image-size":"^1.2.1","@types/node":"^22.8.1"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","tslib":"^2.8.0","eslint":"^9.25.1","rollup":"^4.24.2","express":"^5.1.0","@eslint/js":"^9.25.1","typescript":"^5.6.3","gulp-concat":"^2.6.1","gulp-ignore":"^3.0.0","gulp-insert":"^0.5.0","gulp-uglify":"^3.0.2","gulp-sourcemaps":"^3.0.0","gulp-delete-lines":"0.0.7","typescript-eslint":"^8.31.0","@rollup/plugin-commonjs":"^28.0.1","@stylistic/eslint-plugin":"^4.2.0","@typescript-eslint/parser":"^8.31.0","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.31.0"},"_npmOperationalInternal":{"tmp":"tmp/pptxgenjs_1.1.0_1763971187332_0.7123150174283479","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@bapunhansdah/pptxgenjs","version":"1.1.1","keywords":["powerpoint","pptx","pptxgenjs","presentation","slide-generator","animation","javascript-powerpoint","typescript-powerpoint","javascript-pptx","pptx-animations","html-to-powerpoint","react-powerpoint"],"author":{"url":"https://github.com/bapunhansdah","name":"Bapun Hansdah"},"license":"MIT","_id":"@bapunhansdah/pptxgenjs@1.1.1","maintainers":[{"name":"bapunhansdah","email":"bapunhansdah777@gmail.com"}],"homepage":"https://github.com/bapunhansdah/PptxGenJS","bugs":{"url":"https://github.com/bapunhansdah/PptxGenJS/issues"},"dist":{"shasum":"4a6e9347c548adf5bf0577652f763085f1672c6a","tarball":"https://registry.npmjs.org/@bapunhansdah/pptxgenjs/-/pptxgenjs-1.1.1.tgz","fileCount":10,"integrity":"sha512-k12vr/AmI7UxGAYiVh0y+zT2KrAGrAbynaLz+NIKukdgmmZ8tLqSuIZNtWA17EK67ZIsfWFCOrNM7gh+Yhf0Pg==","signatures":[{"sig":"MEUCIAZB4x+r44S1O3kw2UgDmrm8TcrFurcjCQo7cOipMvVyAiEAtMV4s0PLIKgvzBSofuXC9tefLgUG6kj/w+S94ksMIwM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3094386},"main":"dist/pptxgen.cjs.js","types":"types","module":"dist/pptxgen.es.js","browser":{"fs":false,"os":false,"path":false,"https":false,"express":false,"node:fs":false,"image-size":false,"node:https":false},"exports":{"types":"./types/index.d.ts","import":"./dist/pptxgen.es.js","require":"./dist/pptxgen.cjs.js"},"gitHead":"49976f5dc4c5a67c5e871081435de7ef21112329","scripts":{"defs":"gulp reactTestDefs","ship":"gulp ship","build":"rollup -c --bundleConfigAsCjs","start":"gulp","watch":"rollup -cw"},"_npmUser":{"name":"bapunhansdah","email":"bapunhansdah777@gmail.com"},"repository":{"url":"git+https://github.com/bapunhansdah/PptxGenJS.git","type":"git"},"_npmVersion":"10.9.2","description":"Enhanced fork of PptxGenJS with full animation support and PowerPoint transition effects.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"https":"^1.0.0","jszip":"^3.10.1","image-size":"^1.2.1","@types/node":"^22.8.1"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","tslib":"^2.8.0","eslint":"^9.25.1","rollup":"^4.24.2","express":"^5.1.0","@eslint/js":"^9.25.1","typescript":"^5.6.3","gulp-concat":"^2.6.1","gulp-ignore":"^3.0.0","gulp-insert":"^0.5.0","gulp-uglify":"^3.0.2","gulp-sourcemaps":"^3.0.0","gulp-delete-lines":"0.0.7","typescript-eslint":"^8.31.0","@rollup/plugin-commonjs":"^28.0.1","@stylistic/eslint-plugin":"^4.2.0","@typescript-eslint/parser":"^8.31.0","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.31.0"},"_npmOperationalInternal":{"tmp":"tmp/pptxgenjs_1.1.1_1764043335678_0.26744278642059394","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@bapunhansdah/pptxgenjs","version":"1.1.2","keywords":["powerpoint","pptx","pptxgenjs","presentation","slide-generator","animation","javascript-powerpoint","typescript-powerpoint","javascript-pptx","pptx-animations","html-to-powerpoint","react-powerpoint"],"author":{"url":"https://github.com/bapunhansdah","name":"Bapun Hansdah"},"license":"MIT","_id":"@bapunhansdah/pptxgenjs@1.1.2","maintainers":[{"name":"bapunhansdah","email":"bapunhansdah777@gmail.com"}],"homepage":"https://github.com/bapunhansdah/PptxGenJS","bugs":{"url":"https://github.com/bapunhansdah/PptxGenJS/issues"},"dist":{"shasum":"44e609682c8506f51c8ee08b44f6636ee46cdeda","tarball":"https://registry.npmjs.org/@bapunhansdah/pptxgenjs/-/pptxgenjs-1.1.2.tgz","fileCount":10,"integrity":"sha512-3+DV4U42GDn8WaDldLM3g9MZuXr3q+bPI2FpmHcpDZsPHBmMcIzr67pcD2U21rllWMLjLT8aLvdcX5po3ZMapg==","signatures":[{"sig":"MEQCIBu8UhZsutrAFCNgJ93rUjMMhxXKba49rKv8CCDcfFQFAiBZzBAuLhQwCm9gFCzWdrqJq110ss8dccq+9dR6e8lCkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3094192},"main":"dist/pptxgen.cjs.js","types":"types","module":"dist/pptxgen.es.js","browser":{"fs":false,"os":false,"path":false,"https":false,"express":false,"node:fs":false,"image-size":false,"node:https":false},"exports":{"types":"./types/index.d.ts","import":"./dist/pptxgen.es.js","require":"./dist/pptxgen.cjs.js"},"gitHead":"755cf223f788f81d9fca136b9191385ed8a4b795","scripts":{"defs":"gulp reactTestDefs","ship":"gulp ship","build":"rollup -c --bundleConfigAsCjs","start":"gulp","watch":"rollup -cw"},"_npmUser":{"name":"bapunhansdah","email":"bapunhansdah777@gmail.com"},"repository":{"url":"git+https://github.com/bapunhansdah/PptxGenJS.git","type":"git"},"_npmVersion":"10.9.2","description":"Enhanced fork of PptxGenJS with full animation support and PowerPoint transition effects.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"https":"^1.0.0","jszip":"^3.10.1","image-size":"^1.2.1","@types/node":"^22.8.1"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","tslib":"^2.8.0","eslint":"^9.25.1","rollup":"^4.24.2","express":"^5.1.0","@eslint/js":"^9.25.1","typescript":"^5.6.3","gulp-concat":"^2.6.1","gulp-ignore":"^3.0.0","gulp-insert":"^0.5.0","gulp-uglify":"^3.0.2","gulp-sourcemaps":"^3.0.0","gulp-delete-lines":"0.0.7","typescript-eslint":"^8.31.0","@rollup/plugin-commonjs":"^28.0.1","@stylistic/eslint-plugin":"^4.2.0","@typescript-eslint/parser":"^8.31.0","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.31.0"},"_npmOperationalInternal":{"tmp":"tmp/pptxgenjs_1.1.2_1764043741287_0.10658388870840785","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@bapunhansdah/pptxgenjs","version":"1.1.3","author":{"name":"Bapun Hansdah","url":"https://github.com/bapunhansdah"},"description":"Enhanced fork of PptxGenJS with full animation support and PowerPoint transition effects.","homepage":"https://github.com/bapunhansdah/PptxGenJS","license":"MIT","exports":{"types":"./types/index.d.ts","import":"./dist/pptxgen.es.js","require":"./dist/pptxgen.cjs.js"},"main":"dist/pptxgen.cjs.js","module":"dist/pptxgen.es.js","types":"types","scripts":{"build":"rollup -c --bundleConfigAsCjs","start":"gulp","ship":"gulp ship","defs":"gulp reactTestDefs","watch":"rollup -cw"},"browser":{"express":false,"fs":false,"https":false,"image-size":false,"node:fs":false,"node:https":false,"os":false,"path":false},"dependencies":{"@types/node":"^22.8.1","https":"^1.0.0","image-size":"^1.2.1","jszip":"^3.10.1"},"devDependencies":{"@eslint/js":"^9.25.1","@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-node-resolve":"^16.0.1","@stylistic/eslint-plugin":"^4.2.0","@typescript-eslint/eslint-plugin":"^8.31.0","@typescript-eslint/parser":"^8.31.0","eslint":"^9.25.1","express":"^5.1.0","gulp":"^5.0.0","gulp-concat":"^2.6.1","gulp-delete-lines":"0.0.7","gulp-ignore":"^3.0.0","gulp-insert":"^0.5.0","gulp-sourcemaps":"^3.0.0","gulp-uglify":"^3.0.2","rollup":"^4.24.2","rollup-plugin-typescript2":"^0.36.0","tslib":"^2.8.0","typescript":"^5.6.3","typescript-eslint":"^8.31.0"},"repository":{"type":"git","url":"git+https://github.com/bapunhansdah/PptxGenJS.git"},"keywords":["powerpoint","pptx","pptxgenjs","presentation","slide-generator","animation","javascript-powerpoint","typescript-powerpoint","javascript-pptx","pptx-animations","html-to-powerpoint","react-powerpoint"],"bugs":{"url":"https://github.com/bapunhansdah/PptxGenJS/issues"},"_id":"@bapunhansdah/pptxgenjs@1.1.3","gitHead":"483c00cb938351fc79434511cb11bcc0eac09bcb","_nodeVersion":"22.17.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-zPg2UF+05RalcKAjw5wdIPnJOAlwmr2bEfcOJ1geNJCjsu270MToeuczNS2/PZ6nAlpur7ieTrhvYTxYv44N+Q==","shasum":"5411c2cba2ce200ec6a61563f169a64045e1723b","tarball":"https://registry.npmjs.org/@bapunhansdah/pptxgenjs/-/pptxgenjs-1.1.3.tgz","fileCount":10,"unpackedSize":3094184,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC5ylIZNLi1HmkPz1IH0Siu1djyYXCm0pILR7ykJJ9PSAIgFWCbAy3Z6K8FXJf0UYy6CUME9yiGzZ6raUZGOGrnJTE="}]},"_npmUser":{"name":"bapunhansdah","email":"bapunhansdah777@gmail.com"},"directories":{},"maintainers":[{"name":"bapunhansdah","email":"bapunhansdah777@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pptxgenjs_1.1.3_1764044129996_0.513419241569226"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-24T07:52:49.006Z","modified":"2025-11-25T04:15:30.449Z","1.0.0":"2025-11-24T07:52:49.323Z","1.1.0":"2025-11-24T07:59:47.592Z","1.1.1":"2025-11-25T04:02:16.019Z","1.1.2":"2025-11-25T04:09:01.575Z","1.1.3":"2025-11-25T04:15:30.236Z"},"bugs":{"url":"https://github.com/bapunhansdah/PptxGenJS/issues"},"author":{"name":"Bapun Hansdah","url":"https://github.com/bapunhansdah"},"license":"MIT","homepage":"https://github.com/bapunhansdah/PptxGenJS","keywords":["powerpoint","pptx","pptxgenjs","presentation","slide-generator","animation","javascript-powerpoint","typescript-powerpoint","javascript-pptx","pptx-animations","html-to-powerpoint","react-powerpoint"],"repository":{"type":"git","url":"git+https://github.com/bapunhansdah/PptxGenJS.git"},"description":"Enhanced fork of PptxGenJS with full animation support and PowerPoint transition effects.","maintainers":[{"name":"bapunhansdah","email":"bapunhansdah777@gmail.com"}],"readme":"# PptxGenJS\r\n\r\n![PptxGenJS Sample Slides](https://raw.githubusercontent.com/gitbrent/PptxGenJS/gh-pages/img/readme_banner.png)\r\n\r\n![jsdelivr downloads](https://data.jsdelivr.com/v1/package/gh/gitbrent/pptxgenjs/badge)\r\n![NPM Downloads](https://img.shields.io/npm/dm/pptxgenjs?style=flat-square)\r\n![GitHub Repo stars](https://img.shields.io/github/stars/gitbrent/pptxgenjs?style=flat-square)\r\n![GitHub License](https://img.shields.io/github/license/gitbrent/pptxgenjs?style=flat-square)\r\n![TypeScript defs](https://img.shields.io/npm/types/pptxgenjs?style=flat-square)\r\n\r\n## 🚀 Features\r\n\r\n**PptxGenJS lets you generate professional PowerPoint presentations in JavaScript - directly from Node, React, Vite, Electron, or even the browser.**\r\nThe library outputs standards-compliant Open Office XML (OOXML) files compatible with:\r\n\r\n- ✅ Microsoft PowerPoint\r\n- ✅ Apple Keynote\r\n- ✅ LibreOffice Impress\r\n- ✅ Google Slides (via import)\r\n\r\nDesign custom slides, charts, images, tables, and templates programmatically - no PowerPoint install or license required.\r\n\r\n### Works Everywhere\r\n\r\n- Supports every major modern browser - desktop and mobile\r\n- Seamlessly integrates with **Node.js**, **React**, **Angular**, **Vite**, and **Electron**\r\n- Compatible with **PowerPoint**, **Keynote**, **LibreOffice**, and other OOXML apps\r\n\r\n### Full-Featured\r\n\r\n- Create all major slide objects: **text, tables, shapes, images, charts**, and more\r\n- Add professional **animations** to any object - entrance, emphasis, exit, and path animations\r\n- Define custom **Slide Masters** for consistent academic or corporate branding\r\n- Supports **SVGs**, **animated GIFs**, **YouTube embeds**, **RTL text**, and **Asian fonts**\r\n\r\n### Simple & Powerful\r\n\r\n- Ridiculously easy to use - create a presentation in 4 lines of code\r\n- Full **TypeScript definitions** for autocomplete and inline documentation\r\n- Includes **75+ demo slides** covering every feature and usage pattern\r\n\r\n### Export Your Way\r\n\r\n- Instantly download `.pptx` files from the browser with proper MIME handling\r\n- Export as **base64**, **Blob**, **Buffer**, or **Node stream**\r\n- Supports compression and advanced output options for production use\r\n\r\n### HTML to PowerPoint Magic\r\n\r\n- Convert any HTML `<table>` to one or more slides with a single line of code → [Explore the HTML-to-PPTX feature](#html-to-powerpoint-magic)\r\n\r\n## 🌐 Live Demos\r\n\r\nTry PptxGenJS right in your browser - no setup required.\r\n\r\n- [Basic Slide Demo](https://gitbrent.github.io/PptxGenJS/demos/) - Build a basic presentation in seconds\r\n- [Full Feature Showcase](https://gitbrent.github.io/PptxGenJS/demo/browser/index.html) - Explore every available feature\r\n\r\n> Perfect for testing compatibility or learning by example - all demos run 100% in the browser.\r\n\r\n## 📦 Installation\r\n\r\nChoose your preferred method to install **PptxGenJS**:\r\n\r\n### Quick Install (Node-based)\r\n\r\n```bash\r\nnpm install pptxgenjs\r\n```\r\n\r\n```bash\r\nyarn add pptxgenjs\r\n```\r\n\r\n### CDN (Browser Usage)\r\n\r\nUse the bundled or minified version via [jsDelivr](https://www.jsdelivr.com/package/gh/gitbrent/pptxgenjs):\r\n\r\n```html\r\n<script src=\"https://cdn.jsdelivr.net/gh/gitbrent/pptxgenjs/dist/pptxgen.bundle.js\"></script>\r\n```\r\n\r\n> Includes the sole dependency (JSZip) in one file.\r\n\r\n📁 Advanced: Separate Files, Direct Download\r\n\r\nDownload from GitHub: [Latest Release](https://github.com/gitbrent/PptxGenJS/releases/latest)\r\n\r\n```html\r\n<script src=\"PptxGenJS/libs/jszip.min.js\"></script>\r\n<script src=\"PptxGenJS/dist/pptxgen.min.js\"></script>\r\n```\r\n\r\n## 🚀 Universal Compatibility\r\n\r\nPptxGenJS works seamlessly in **modern web and Node environments**, thanks to dual ESM and CJS builds and zero runtime dependencies. Whether you're building a CLI tool, an Electron app, or a web-based presentation builder, the library adapts automatically to your stack.\r\n\r\n### Supported Platforms\r\n\r\n- **Node.js** – generate presentations in backend scripts, APIs, or CLI tools\r\n- **React / Angular / Vite / Webpack** – just import and go, no config required\r\n- **Electron** – build native apps with full filesystem access and PowerPoint output\r\n- **Browser (Vanilla JS)** – embed in web apps with direct download support\r\n- **Serverless / Edge Functions** – use in AWS Lambda, Vercel, Cloudflare Workers, etc.\r\n\r\n> _Vite, Webpack, and modern bundlers automatically select the right build via the `exports` field in `package.json`._\r\n\r\n### Builds Provided\r\n\r\n- **CommonJS**: [`dist/pptxgen.cjs.js`](./dist/pptxgen.cjs.js)\r\n- **ES Module**: [`dist/pptxgen.es.js`](./dist/pptxgen.es.js)\r\n\r\n## 📖 Documentation\r\n\r\n### Quick Start Guide\r\n\r\nPptxGenJS PowerPoint presentations are created via JavaScript by following 4 basic steps:\r\n\r\n#### Angular/React, ES6, TypeScript\r\n\r\n```typescript\r\nimport pptxgen from \"pptxgenjs\";\r\n\r\n// 1. Create a new Presentation\r\nlet pres = new pptxgen();\r\n\r\n// 2. Add a Slide\r\nlet slide = pres.addSlide();\r\n\r\n// 3. Add one or more objects (Tables, Shapes, Images, Text and Media) to the Slide\r\nlet textboxText = \"Hello World from PptxGenJS!\";\r\nlet textboxOpts = { x: 1, y: 1, color: \"363636\" };\r\nslide.addText(textboxText, textboxOpts);\r\n\r\n// 4. Save the Presentation\r\npres.writeFile();\r\n```\r\n\r\n#### Script/Web Browser\r\n\r\n```javascript\r\n// 1. Create a new Presentation\r\nlet pres = new PptxGenJS();\r\n\r\n// 2. Add a Slide\r\nlet slide = pres.addSlide();\r\n\r\n// 3. Add one or more objects (Tables, Shapes, Images, Text and Media) to the Slide\r\nlet textboxText = \"Hello World from PptxGenJS!\";\r\nlet textboxOpts = { x: 1, y: 1, color: \"363636\" };\r\nslide.addText(textboxText, textboxOpts);\r\n\r\n// 4. Save the Presentation\r\npres.writeFile();\r\n```\r\n\r\nThat's really all there is to it!\r\n\r\n## ✨ Add Professional Animations\r\n\r\nBring your presentations to life with entrance, emphasis, exit, and path animations - just like PowerPoint's built-in effects.\r\n\r\n### Basic Animation Example\r\n\r\n```javascript\r\nlet pptx = new PptxGenJS();\r\nlet slide = pptx.addSlide();\r\n\r\n// Add text with a simple fade-in animation\r\nslide.addText(\"Hello World!\", {\r\n  x: 1,\r\n  y: 1,\r\n  fontSize: 36,\r\n  animation: \"fadein\"\r\n});\r\n\r\n// Add a shape with a fly-in animation from the left\r\nslide.addShape(pptx.shapes.RECTANGLE, {\r\n  x: 2,\r\n  y: 3,\r\n  w: 3,\r\n  h: 2,\r\n  fill: { color: \"4472C4\" },\r\n  animation: {\r\n    type: \"flyin\",\r\n    direction: \"left\",\r\n    duration: 1000\r\n  }\r\n});\r\n\r\npptx.writeFile();\r\n```\r\n\r\n### Advanced Animation Configuration\r\n\r\n```javascript\r\n// Image with custom animation timing\r\nslide.addImage({\r\n  path: \"logo.png\",\r\n  x: 1,\r\n  y: 1,\r\n  w: 2,\r\n  h: 2,\r\n  animation: {\r\n    type: \"zoom\",\r\n    direction: \"slideCenter\",\r\n    duration: 1500,\r\n    delay: 500,\r\n    trigger: \"afterPrevious\"\r\n  }\r\n});\r\n\r\n// Table with emphasis animation\r\nslide.addTable(tableData, {\r\n  x: 1,\r\n  y: 3,\r\n  w: 8,\r\n  animation: {\r\n    type: \"pulse\",\r\n    duration: 800\r\n  }\r\n});\r\n```\r\n\r\n### Available Animation Types\r\n\r\n**Entrance Animations:**\r\n- `appear`, `fadein`, `flyin`, `floatin`, `split`, `wipe`, `shape`, `wheel`, `randombars`, `zoom`, `growandturn`, `swivel`, `bounce`\r\n\r\n**Emphasis Animations:**\r\n- `pulse`, `colorpulse`, `teeter`, `spin`, `growshrink`, `desaturate`, `darken`, `lighten`, `transparency`, `objectcolor`, `complementarycolor`, `linecolor`, `fillcolor`\r\n\r\n**Exit Animations:**\r\n- `disappear`, `fadeout`, `flyout`, `floatout`, `splitexit`, `wipeexit`, `shapeexit`, `wheelexit`, `randombarsexit`, `shrinkandturn`, `zoomexit`, `swivelexit`, `bounceexit`\r\n\r\n**Path Animations:**\r\n- `pathdown`, `patharcdown`, `pathturnright`, `pathcircle`, `pathzigzag`\r\n\r\n### Animation Options\r\n\r\nMany animations support additional options:\r\n\r\n```javascript\r\n// Direction options (for fly, float, split, wipe, zoom)\r\nanimation: { type: \"flyin\", direction: \"top\" | \"bottom\" | \"left\" | \"right\" | \"topLeft\" | \"topRight\" | \"bottomLeft\" | \"bottomRight\" }\r\n\r\n// Shape options (for shape animations)\r\nanimation: { type: \"shape\", shape: \"circle\" | \"box\" | \"diamond\" | \"plus\", direction: \"in\" | \"out\" }\r\n\r\n// Wheel spokes (for wheel animations)\r\nanimation: { type: \"wheel\", spokes: 1 | 2 | 3 | 4 | 8 }\r\n\r\n// Spin options\r\nanimation: { type: \"spin\", direction: \"clockwise\" | \"counterClockwise\", amount: \"quarterSpin\" | \"halfSpin\" | \"fullSpin\" | \"twoSpins\" }\r\n\r\n// Color options (for color animations)\r\nanimation: { type: \"colorpulse\", color: \"FFFF00\" }\r\n\r\n// Transparency levels\r\nanimation: { type: \"transparency\", level: 25 | 50 | 75 | 100 }\r\n```\r\n\r\n### Timing and Triggers\r\n\r\nControl when animations play:\r\n\r\n```javascript\r\nanimation: {\r\n  type: \"fadein\",\r\n  duration: 1000,        // Animation duration in milliseconds\r\n  delay: 500,            // Delay before animation starts\r\n  trigger: \"onClick\"     // \"onClick\" | \"withPrevious\" | \"afterPrevious\"\r\n}\r\n```\r\n\r\n[View Full Animation DEMO](https://pptxgenjs-animation.vercel.app)\r\n\r\n## 💥 HTML-to-PowerPoint Magic\r\n\r\nConvert any HTML `<table>` into fully formatted PowerPoint slides - automatically and effortlessly.\r\n\r\n```javascript\r\nlet pptx = new pptxgen();\r\npptx.tableToSlides(\"tableElementId\");\r\npptx.writeFile({ fileName: \"html2pptx-demo.pptx\" });\r\n```\r\n\r\nPerfect for transforming:\r\n\r\n- Dynamic dashboards and data reports\r\n- Exportable grids in web apps\r\n- Tabular content from CMS or BI tools\r\n\r\n[View Full Docs & Live Demo](https://gitbrent.github.io/PptxGenJS/html2pptx/)\r\n\r\n## 📚 Full Documentation\r\n\r\nComplete API reference, tutorials, and integration guides are available on the official docs site: [https://gitbrent.github.io/PptxGenJS](https://gitbrent.github.io/PptxGenJS)\r\n\r\n## 🛠️ Issues / Suggestions\r\n\r\nPlease file issues or suggestions on the [issues page on github](https://github.com/gitbrent/PptxGenJS/issues/new), or even better, [submit a pull request](https://github.com/gitbrent/PptxGenJS/pulls). Feedback is always welcome!\r\n\r\nWhen reporting issues, please include a code snippet or a link demonstrating the problem.\r\nHere is a small [jsFiddle](https://jsfiddle.net/gitbrent/L1uctxm0/) that is already configured and uses the latest PptxGenJS code.\r\n\r\n## 🆘 Need Help?\r\n\r\nSometimes implementing a new library can be a difficult task and the slightest mistake will keep something from working. We've all been there!\r\n\r\nIf you are having issues getting a presentation to generate, check out the code in the `demos` directory. There\r\nare demos for browser, node and, react that contain working examples of every available library feature.\r\n\r\n- Use a pre-configured jsFiddle to test with: [PptxGenJS Fiddle](https://jsfiddle.net/gitbrent/L1uctxm0/)\r\n- [View questions tagged `PptxGenJS` on StackOverflow](https://stackoverflow.com/questions/tagged/pptxgenjs?sort=votes&pageSize=50). If you can't find your question, [ask it yourself](https://stackoverflow.com/questions/ask?tags=PptxGenJS) - be sure to tag it `pptxgenjs`.\r\n- Ask your AI pair programmer! All major LLMs have ingested the pptxgenjs library and have the ability to answer functionality questions and provide code.\r\n\r\n## 🙏 Contributors\r\n\r\nThank you to everyone for the contributions and suggestions! ❤️\r\n\r\nSpecial Thanks:\r\n\r\n- [Dzmitry Dulko](https://github.com/DzmitryDulko) - Getting the project published on NPM\r\n- [Michal Kacerovský](https://github.com/kajda90) - New Master Slide Layouts and Chart expertise\r\n- [Connor Bowman](https://github.com/conbow) - Adding Placeholders\r\n- [Reima Frgos](https://github.com/ReimaFrgos) - Multiple chart and general functionality patches\r\n- [Matt King](https://github.com/kyrrigle) - Chart expertise\r\n- [Mike Wilcox](https://github.com/clubajax) - Chart expertise\r\n- [Joonas](https://github.com/wyozi) - [react-pptx](https://github.com/wyozi/react-pptx)\r\n\r\nPowerPoint shape definitions and some XML code via [Officegen Project](https://github.com/Ziv-Barber/officegen)\r\n\r\n## 🌟 Support the Open Source Community\r\n\r\nIf you find this library useful, consider contributing to open-source projects, or sharing your knowledge on the open social web. Together, we can build free tools and resources that empower everyone.\r\n\r\n[@gitbrent@fosstodon.org](https://fosstodon.org/@gitbrent)\r\n\r\n## 📜 License\r\n\r\nCopyright &copy; 2015-present [Brent Ely](https://github.com/gitbrent/)\r\n\r\n[MIT](https://github.com/gitbrent/PptxGenJS/blob/master/LICENSE)","readmeFilename":"README.md"}