DEVLOG: OPENPDF 2026
Date: April 19, 2026
Project Lead: Fjord Enzo Bertrand-Helmgens
License: GNU GPL v3.0
Infrastructure Update: Transition from Binary to PyPI
I have moved the project from a standalone binary distribution model to a Python Package (PyPI) structure. This change allows for standard installation and better dependency management across different environments.
Project Resources:
Changes and Fixes:
1. Distribution Model
I have transitioned the architecture to use the src/ layout and pyproject.toml standards. The tool is now installed via pip, which provides the ‘openpdf’ command directly to the system path.
2. Encryption and Security
I have standardized the encryption logic on 128-bit AES. I also updated the command-line interface to require the –password=“PASSWORD” format to ensure the shell correctly handles special characters during the encryption process.
3. PDF Compliance and Stability
I refactored the object registry and trailer generation to resolve a crash occurring when accessing Document Properties in certain PDF viewers. The output now strictly follows the PDF 1.4 specification for cross-reference tables and metadata dictionaries.
4. Interface and Documentation
I replaced the default help output with a custom manual. I organized the arguments into logical groups and added specific descriptions for each flag. I also included practical usage examples within the help menu to clarify the syntax for new users.
Technical Specifications
-
Runtime: Python 3.8+
-
License: GNU GPL v3.0 (Updated in project metadata and headers).
-
Dependencies: pypdf (utilized for trailer and metadata normalization).
-
Command Syntax: Professional CLI with grouped argument parsing.
Roadmap
- (x) Upload to PyPI.
- (x) Resolution of metadata property crashes.
- ( ) Support for standard input (stdin) piping.
- ( ) Directory-wide batch processing.
- ( ) Native image embedding support.
- ( ) Custom TrueType (TTF) and OpenType (OTF) font support.
- ( ) Fully transition away from pypdf for password encryption.