https://github.com/metaist/pdfmerge
Command-line utility for merging, splicing, and rotating PDF documents.
https://github.com/metaist/pdfmerge
pdf python
Last synced: 3 months ago
JSON representation
Command-line utility for merging, splicing, and rotating PDF documents.
- Host: GitHub
- URL: https://github.com/metaist/pdfmerge
- Owner: metaist
- License: other
- Created: 2013-02-21T21:26:05.000Z (over 13 years ago)
- Default Branch: main
- Last Pushed: 2025-11-15T23:20:29.000Z (8 months ago)
- Last Synced: 2025-12-15T12:41:59.810Z (7 months ago)
- Topics: pdf, python
- Language: Python
- Homepage: http://metaist.github.io/pdfmerge/
- Size: 15.4 MB
- Stars: 142
- Watchers: 6
- Forks: 25
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# pdfmerge: CLI for merging, splicing, and rotating PDFs
## Why?
I find myself merging bits of different PDFs fairly regularly and really wanted a simple CLI way to do it.
## Install
```bash
python -m pip install pdfmerge
```
## Usage
$ pdfmerge [-h] [--version]
[-o FILE|--output FILE]
[-p PASSWORD|--password PASSWORD]
PATH[RULE[, RULE ...]] [[PATH[RULE, ...]] ...]
- `-o`, `--output` output file (default: `output.pdf`).
- `-p`, '--password` password for encrypted files (default: empty string).
- `PATH` a file, directory, or wildcard string (e.g., `file*.pdf`) of files
to merge.
- `RULE` an optional string indicating which pages to extract and rotate.
The syntax for each rule is:
[START][..][END][ROTATE]
Where `START` and `END` are positive (1-based) or negative page numbers and
`ROTATE` is one of `>`, `V`, or `<` indicating a clockwise rotation of
90, 180, 270 degrees, respectively.
## Command-line Example
$ pdfmerge -o out.pdf file1.pdf file2.pdf[3,3] file2.pdf[1V,2..-1] "other*.pdf[<]" "/path/pdf[1..4>,5]"
This example illustrates several features:
- specifying an output file
- merging multiple files, some more than once
- splicing parts of file using indices (1-based; negatives allowed)
- including the same page multiple times
- rotating a page or page range
- merging all the PDFs in a directory
[Read more about the options](https://metaist.github.io/pdfmerge/__main__.html)
# Python Module Usage
`pdfmerge` can also be imported into python scripts.
```python
from pdfmerge import pdfmerge
pdfmerge(["pdf-1.pdf", "pdf-2.pdf[2>]"], "output.pdf")
```
## License
[MIT License](https://github.com/metaist/pdfmerge/blob/main/LICENSE.md)
