diff options
| author | kj_sh604 | 2026-02-13 01:50:53 -0500 |
|---|---|---|
| committer | kj_sh604 | 2026-02-13 01:50:53 -0500 |
| commit | d6e209418dfbabebe1cfef0ff5498046a70db4b3 (patch) | |
| tree | ecba42e4f29f261e057f66381510254f8d1f5052 | |
| parent | df983f4efab1ec881fdd8a1483c83c68ded3225f (diff) | |
feat: repo files
| -rw-r--r-- | LICENSE | 12 | ||||
| -rw-r--r-- | README.md | 34 | ||||
| -rw-r--r-- | requirements.txt | 5 |
3 files changed, 51 insertions, 0 deletions
| @@ -0,0 +1,12 @@ | |||
| 1 | Copyright kj_sh604 <https://github.com/kj-sh604> | ||
| 2 | |||
| 3 | Permission to use, copy, modify, and/or distribute this software for any | ||
| 4 | purpose with or without fee is hereby granted. | ||
| 5 | |||
| 6 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | ||
| 7 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND | ||
| 8 | FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | ||
| 9 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||
| 10 | LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | ||
| 11 | OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | ||
| 12 | PERFORMANCE OF THIS SOFTWARE. \ No newline at end of file | ||
diff --git a/README.md b/README.md new file mode 100644 index 0000000..a1a5516 --- /dev/null +++ b/README.md | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | # kjandoc | ||
| 2 | |||
| 3 | > i needed something to combine multiple pptx files, i couldn't believe pandoc can't do that, so here's a creative but probably useless attempt at it. | ||
| 4 | |||
| 5 | ## what it does | ||
| 6 | - merges multiple .pptx files into one | ||
| 7 | - preserves visual formatting by rendering slides and rebuilding a new deck | ||
| 8 | - pandoc-style usage: `kjandoc input1.pptx input2.pptx -o combined.pptx` | ||
| 9 | |||
| 10 | ## why this exists | ||
| 11 | pandoc is great, but it can't concatenate powerpoint decks. | ||
| 12 | |||
| 13 | this uses a headless libreoffice + pdf -> png rendering to get a pixel-perfect merge. | ||
| 14 | |||
| 15 | the tradeoff is the output slides are images (not editable shapes). | ||
| 16 | |||
| 17 | ## usage | ||
| 18 | ```bash | ||
| 19 | # pandoc-style usage | ||
| 20 | ./kjandoc input1.pptx input2.pptx -o combined.pptx | ||
| 21 | |||
| 22 | # tweak quality | ||
| 23 | ./kjandoc input1.pptx input2.pptx -o combined.pptx --dpi 150 | ||
| 24 | ``` | ||
| 25 | |||
| 26 | ## deps | ||
| 27 | - python3 | ||
| 28 | - libreoffice | ||
| 29 | - poppler (pdftoppm) | ||
| 30 | - python deps in requirements.txt | ||
| 31 | |||
| 32 | ## notes | ||
| 33 | - output size is larger (images) | ||
| 34 | - visuals stay intact for the most part \ No newline at end of file | ||
diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..b9c4f5c --- /dev/null +++ b/requirements.txt | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | lxml==6.0.2 | ||
| 2 | pillow==12.1.1 | ||
| 3 | python-pptx==1.0.2 | ||
| 4 | typing_extensions==4.15.0 | ||
| 5 | xlsxwriter==3.2.9 \ No newline at end of file | ||
