
Project documentation: pdfly.readthedocs.io
pdfly is the youngest project of the py-pdf organization.
It has been created by Martin Thoma in 2022.
It’s simply a CLI tool to manipulate PDF files, written in Python and based on the fpdf2 & pypdf libraries.
I’m a maintainer of the project 🙂
What can it do?
It has meany features, including:
$ pdfly meta minimal-document.pdf
Operating System Data
┏━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Attribute ┃ Value ┃
┡━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ File Name │ /tmp/minimal-document.pdf │
│ File Permissions │ -rw-r--r-- │
│ File Size │ 16,978 bytes │
│ Creation Time │ 2025-10-13 09:44:32 │
│ Modification Time │ 2025-10-13 09:44:32 │
│ Access Time │ 2025-10-13 09:44:46 │
└───────────────────┴───────────────────────────┘
PDF Data
┏━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Attribute ┃ Value ┃
┡━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ CreationDate │ 2022-04-03 18:05:42+02:00 │
│ Creator │ TeX │
│ Producer │ pdfTeX-1.40.23 │
│ Pages │ 1 │
│ Encrypted │ None │
│ PDF File Version │ %PDF-1.5 │
│ Page Layout │ │
│ Page Mode │ │
│ PDF ID │ ID1=b'q\x96\xc3\xe3U\xc1|\x9fS\xba\x9a\r\xcap\xcd\xd0' │
│ │ ID2=b'q\x96\xc3\xe3U\xc1|\x9fS\xba\x9a\r\xcap\xcd\xd0' │
│ Fonts (embedded) │ │
│ Fonts (embedded) │ /KNEUFH+CMR10 │
│ Attachments │ [] │
│ Images │ 0 images (0 bytes) │
└────────────────────┴──────────────────────────────────────────────────────────┘
-
pdflycan also combine files into new PDF documents: it can extract specific pages & merge documents (pdfly cat); selectively remove pages (pdfly rm); convert images to PDF documents (pdfly x2pdf); and even compress documents (pdfly compress) or build booklets (pdfly 2-up&pdfly booklet). -
pdflyincludes some commands to pull out specific content from PDF files:pdfly extract-images&pdfly extract-annotated-text. -
sometimes you want to edit a PDF file manually, in a text editor.
But when you do so, you break itsxreftable, that is an index of byte offsets in the document.pdfly update-offsetsis there to save the day, fixing manually-edited PDF documents, so that they can be opened in a PDF viewer again!
Release 0.5.0 & new features
Today we released a new version: pdfly release 0.5.0.
Thanks to several contributors, including developers taking part in Hacktoberfest, new exciting features have been added:
What’s next?
We have a bunch of feature ideas: up-for-grabs issues, including some good first issues aimed specially at new contributors, that are willing to help but new to open-source.
Personally, I think the pdfly sign & check-sign could become handy to many end-users, and I think we should continue to extend those commands usage options, as described in issue #71.
We would also be happy to get your feedbacks, bug reports & feature suggestions! 🙂
