aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: db2683f875de793f4e0b9c320b38f1f23f1a07d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# kjandoc

> 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.

https://github.com/user-attachments/assets/915940ab-f6a5-4e6f-b8dc-62de81d35c62

## what it does
- merges multiple .pptx files into one
- preserves visual formatting by rendering slides and rebuilding a new deck
- `pandoc`-style usage: `kjandoc input1.pptx input2.pptx -o combined.pptx`

## why this exists
`pandoc` is great, but it can't concatenate `.pptx` files. 

this uses a headless libreoffice + pdf -> png rendering to get a merge with most formatting preserved. 

the tradeoff is the output slides are images (not editable shapes).

## usage
```bash
# pandoc-style usage
./kjandoc input1.pptx input2.pptx -o combined.pptx

# tweak quality
./kjandoc input1.pptx input2.pptx -o combined.pptx --dpi 150
```

## deps
- python3
- libreoffice
- poppler (pdftoppm)
- python deps in requirements.txt

## notes
- output size is larger (images)
- visuals stay intact for the most part