https://chezsoi.org/lucas/blog/spotlight-on-pdfly.html Ludochaordic Fantaisies programatico-ludiques * Search form Ludochaordic Spotlight on pdfly, the Swiss Army knife for PDF files Mon 13 October 2025 Lucas Cimon 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 ... pdfly logo 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: * display PDF metadata using pdfly meta and pdfly pagemeta commands. Example: $ 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) | +--------------------+----------------------------------------------------------+ * pdfly can 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). * pdfly includes 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 its xref table, that is an index of byte offsets in the document. pdfly update-offsets is 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: * pdfly sign allows you to easily sign PDF documents, while pdfly check-sign makes it easy to check a PDF document signature. Thanks to @moormaster for implementing this in PRs #165 & #166 . * pdfly extract-annotated-pages extract only annotated pages from a PDF, hence helping to review or rework pages from a large document iteratively. Thanks to Hal Wine (@hwine) for implementing this in PR #128 . * pdfly rotate rotate specific pages of a document. Thanks to Subhajit Sahu (@wolfram77) for implementing this in PR #98 . 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! * lang:en * libre-software * open-source * python * library * release * pdf * pdfly * hacktoberfest * pypi * prog --------------------------------------------------------------------- An avatar I use on the web Lucas Cimon Saint-Mathurin-sur-LoireFrance Software engineer. Tabletop RPG writer. Love libre software, and especially Python . Currently working for oui.sncf @Nantes * Pages * Bienvenue * Projets en cours * Creations de jeux de role * Mes jeux de role favoris * Images sous licences libres * Je soutiens * Open-Source * Slides * Net-Art * Mentions legales * Decouvertes videoludiques * Gopher access (beta) Ubiquity Syndication ATOM Shaarli En ce moment je lis Une Volvo blanche - Erik Svetoft (BD) Avatars An avatar I use on the web An avatar I use on the web Blogroll * Justin Mason's Weblog * Neal Krawetz Hacker Factor Blog * Shaarli de sebsauvage * Hugin & Munin * Radio Roliste * C'est pas du jeu de role * Trop Long ; Pas Lu ! * Le blog de Gulix * Le blog de JeePee * Pitche - Scenarios et aides pour divers JDR et JDRA * Le Fix di6dent * ptgptb * Derriere le paravent de Greg Pogorzelski * Oglaf * Blog BD de Boulet * Warpdoor * AlphaBetaGamer * Free Game Planet * OuJeViPo * Du papier et des jeux * Blog de David Larlet * No Limit Secu * LinuxFR * Framablog * Reflets.info * Tristan Nitot * Blog de Victor Stinner * Rhizome.org * Du Monde Dans l'Objectif * Galerie d'Elliot Jolivet aka Tensei * Galerie d'Elodie Olivier * Antre Deletre - Peinture sur figurines * Renard'eau * L'instant Present * Atelier COALA * boka.l - Laure Coignard Logo La Topette Logo La Revue Dessinee Logo Backseat Logo SPARK Logo Mediapart Logo Blast Logo Le Media Logo Fonds Pour Une Press Libre Logo Fakir Logo LaQuadratureDuNet Logo Framasoft Logo Enercoop Logo andro switch Logo attac Logo Microformats Logo Webmention Logo Low-tech * * * * * * * * * * Powered by Pelican. Theme mg thanks to Luca Chiricozzi * Pages * Bienvenue * Projets en cours * Creations de jeux de role * Mes jeux de role favoris * Images sous licences libres * Je soutiens * Open-Source * Slides * Net-Art * Mentions legales * Decouvertes videoludiques * Gopher access (beta) * * Ubiquity * * Syndication ATOM Shaarli * * En ce moment je lis Une Volvo blanche - Erik Svetoft (BD) * * Blogroll * Justin Mason's Weblog * Neal Krawetz Hacker Factor Blog * Shaarli de sebsauvage * Hugin & Munin * Radio Roliste * C'est pas du jeu de role * Trop Long ; Pas Lu ! * Le blog de Gulix * Le blog de JeePee * Pitche - Scenarios et aides pour divers JDR et JDRA * Le Fix di6dent * ptgptb * Derriere le paravent de Greg Pogorzelski * Oglaf * Blog BD de Boulet * Warpdoor * AlphaBetaGamer * Free Game Planet * OuJeViPo * Du papier et des jeux * Blog de David Larlet * No Limit Secu * LinuxFR * Framablog * Reflets.info * Tristan Nitot * Blog de Victor Stinner * Rhizome.org * Du Monde Dans l'Objectif * Galerie d'Elliot Jolivet aka Tensei * Galerie d'Elodie Olivier * Antre Deletre - Peinture sur figurines * Renard'eau * L'instant Present * Atelier COALA * boka.l - Laure Coignard * * Logo La Topette * Logo La Revue Dessinee * Logo Backseat * Logo SPARK * Logo Mediapart * Logo Blast * Logo Le Media * Logo Fonds Pour Une Press Libre * Logo Fakir * Logo LaQuadratureDuNet * Logo Framasoft * Logo Enercoop * Logo andro switch * Logo attac * Logo Microformats * Logo Webmention * Logo Low-tech