Skip to content

Commit b72883b

Browse files
committed
chore(docs): add troubleshooting; modify master image
1 parent 0a6d6dd commit b72883b

File tree

1 file changed

+47
-38
lines changed

1 file changed

+47
-38
lines changed

README.md

Lines changed: 47 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# pptx-automizer: A Powerful .pptx Modifier for Node.js
22

3+
`pptx-automizer` is a Node.js-based PowerPoint (.pptx) generator that automates the manipulation of existing .pptx files. With `pptx-automizer`, you can import your library of .pptx templates, merge templates, and customize slide content. `pptx-automizer` will not write files from scratch, but edit and merge existing pptx files. You can style template slides within PowerPoint, and these templates will be seamlessly integrated into the output presentation. Most of the content can be modified by using callbacks with [xmldom](https://github.com/xmldom/xmldom).
34
`pptx-automizer` is a Node.js-based PowerPoint (.pptx) generator that automates the manipulation of existing .pptx files. With `pptx-automizer`, you can import your library of .pptx templates, merge templates, and customize slide content. `pptx-automizer` will not write files from scratch, but edit and merge existing pptx files. You can style template slides within PowerPoint, and these templates will be seamlessly integrated into the output presentation. Most of the content can be modified by using callbacks with [xmldom](https://github.com/xmldom/xmldom).
45

56
`pptx-automizer` is particularly well-suited for users who aim to manage their own library of .pptx template files, making it an ideal choice for those who work with intricate, well-designed customized layouts. With this tool, any existing slide or even a single element can serve as a data-driven template for generating output .pptx files.
@@ -11,40 +12,42 @@ Thanks to all contributors! You are always welcome to share code, tipps and idea
1112
If you require commercial support for complex .pptx automation, you can explore [ensemblio.com](https://ensemblio.com). Ensemblio is a web application that leverages `pptx-automizer` and `automizer-data` to provide an accessible and convenient solution for automating .pptx files. Engaging with Ensemblio is likely to enhance and further develop this library.
1213

1314
## Table of contents
15+
1416
<!-- TOC -->
15-
* [Requirements and Limitations](#requirements-and-limitations)
16-
* [Shape Types](#shape-types)
17-
* [Chart Types](#chart-types)
18-
* [Animations](#animations)
19-
* [Slide Masters and -Layouts](#slide-masters-and--layouts)
20-
* [Direct Manipulation of Elements](#direct-manipulation-of-elements)
21-
* [PowerPoint Version](#powerpoint-version)
22-
* [Installation](#installation)
23-
* [As a Cloned Repository](#as-a-cloned-repository)
24-
* [As a Package](#as-a-package)
25-
* [Usage](#usage)
26-
* [Basic Example](#basic-example)
27-
* [How to Select Slides Shapes](#how-to-select-slides-shapes)
28-
* [Select slide by number and shape by name](#select-slide-by-number-and-shape-by-name)
29-
* [Select slides by creationId](#select-slides-by-creationid)
30-
* [Find and Modify Shapes](#find-and-modify-shapes)
31-
* [Modify Text](#modify-text)
32-
* [Modify Images](#modify-images)
33-
* [Modify Tables](#modify-tables)
34-
* [Modify Charts](#modify-charts)
35-
* [Modify Extended Charts](#modify-extended-charts)
36-
* [Remove elements from a slide](#remove-elements-from-a-slide)
37-
* [Tipps and Tricks](#tipps-and-tricks)
38-
* [Loop through the slides of a presentation](#loop-through-the-slides-of-a-presentation)
39-
* [Quickly get all slide numbers of a template](#quickly-get-all-slide-numbers-of-a-template)
40-
* [Find all text elements on a slide](#find-all-text-elements-on-a-slide)
41-
* [Sort output slides](#sort-output-slides)
42-
* [Import and modify slide Masters](#import-and-modify-slide-masters)
43-
* [Track status of automation process](#track-status-of-automation-process)
44-
* [More examples](#more-examples)
45-
* [Testing](#testing)
46-
* [Special Thanks](#special-thanks)
47-
* [Commercial Support](#commercial-support)
17+
18+
- [Requirements and Limitations](#requirements-and-limitations)
19+
- [Shape Types](#shape-types)
20+
- [Chart Types](#chart-types)
21+
- [Animations](#animations)
22+
- [Slide Masters and -Layouts](#slide-masters-and--layouts)
23+
- [Direct Manipulation of Elements](#direct-manipulation-of-elements)
24+
- [PowerPoint Version](#powerpoint-version)
25+
- [Installation](#installation)
26+
- [As a Cloned Repository](#as-a-cloned-repository)
27+
- [As a Package](#as-a-package)
28+
- [Usage](#usage)
29+
- [Basic Example](#basic-example)
30+
- [How to Select Slides Shapes](#how-to-select-slides-shapes)
31+
- [Select slide by number and shape by name](#select-slide-by-number-and-shape-by-name)
32+
- [Select slides by creationId](#select-slides-by-creationid)
33+
- [Find and Modify Shapes](#find-and-modify-shapes)
34+
- [Modify Text](#modify-text)
35+
- [Modify Images](#modify-images)
36+
- [Modify Tables](#modify-tables)
37+
- [Modify Charts](#modify-charts)
38+
- [Modify Extended Charts](#modify-extended-charts)
39+
- [Remove elements from a slide](#remove-elements-from-a-slide)
40+
- [Tipps and Tricks](#tipps-and-tricks)
41+
- [Loop through the slides of a presentation](#loop-through-the-slides-of-a-presentation)
42+
- [Quickly get all slide numbers of a template](#quickly-get-all-slide-numbers-of-a-template)
43+
- [Find all text elements on a slide](#find-all-text-elements-on-a-slide)
44+
- [Sort output slides](#sort-output-slides)
45+
- [Import and modify slide Masters](#import-and-modify-slide-masters)
46+
- [Track status of automation process](#track-status-of-automation-process)
47+
- [More examples](#more-examples)
48+
- [Testing](#testing)
49+
- [Special Thanks](#special-thanks)
50+
- [Commercial Support](#commercial-support)
4851
<!-- TOC -->
4952

5053
# Requirements and Limitations
@@ -475,6 +478,7 @@ Find more examples on image manipulation:
475478

476479
- [Add external image](https://github.com/singerla/pptx-automizer/blob/main/__tests__/add-external-image.test.ts)
477480
- [Modify duotone color overlay for images](https://github.com/singerla/pptx-automizer/blob/main/__tests__/modify-image-duotone.test.ts)
481+
- [Swap image source on a slide master](https://github.com/singerla/pptx-automizer/blob/main/__tests__/modify-master-external-image.test.ts)
478482

479483
## Modify Tables
480484

@@ -864,6 +868,16 @@ Take a look into [**tests**-directory](https://github.com/singerla/pptx-automize
864868
- [Update chart plot area coordinates](https://github.com/singerla/pptx-automizer/blob/main/__tests__/modify-chart-plot-area.test.ts)
865869
- [Update chart legend](https://github.com/singerla/pptx-automizer/blob/main/__tests__/modify-chart-legend.test.ts)
866870

871+
## Troubleshooting
872+
If you encounter problems when opening a `.pptx`-file modified by this library, you might worry about PowerPoint not giving any details about the error. It can be hard to find the cause, but there are some things you can check:
873+
874+
- **Broken relation**: There are still unsupported shape types and `pptx-automizer` wil not copy required relations of those. You can inflate `.pptx`-output and check `ppt/slides/_rels/slide[#].xml.rels`-files to find possible missing files.
875+
- **Unsupported media**: You can also take a look at the `ppt/media`-directory of an inflated `.pptx`-file. If you discover any unusual file formats, remove or replace the files by one of the [known types](https://github.com/singerla/pptx-automizer/blob/main/src/enums/content-type-map.ts).
876+
- **Broken animation**: Pay attention to modified/removed shapes which are part of an animation. In case of doubt, (temporarily) remove all animations from your template. (see [#78](https://github.com/singerla/pptx-automizer/issues/78))
877+
- **Proprietary/Binary contents** (e.g. ThinkCell): Walk through all slides, slideMasters and slideLayouts and seek for hidden Objects. Hit `ALT+F10` to toggle the sidebar.
878+
879+
If none of these could help, please don't hesitate to [talk about it](https://github.com/singerla/pptx-automizer/issues/new).
880+
867881
## Testing
868882

869883
You can run all unit tests using these commands:
@@ -881,8 +895,3 @@ This project was inspired by:
881895
- [officegen](https://github.com/Ziv-Barber/officegen)
882896
- [node-pptx](https://github.com/heavysixer/node-pptx)
883897
- [docxtemplater](https://github.com/open-xml-templating/docxtemplater)
884-
885-
# Commercial Support
886-
887-
If you need commercial support on complex .pptx automation, please take a look at [ensemblio.com](https://ensemblio.com).
888-
![ensemblio](https://ensemblio.com/ensemblio-lg.png)

0 commit comments

Comments
 (0)