Open Source PDF Document Management
PDFKeeper is free, open source software that provides a storage and management solution for PDF documents.
PDFKeeper is distributed under the terms of the GNU General Public License (GPL) Version 3.
Download and install from GitHub or FossHub or install via Windows Package Manager (winget install pdfkeeper).
PDFKeeper began as an idea to solve a personal document storage issue. With both digital and paper documents stored in many places, it was becoming a challenge to locate documents quickly, especially at tax time. What proved to be an even bigger challenge was locating a free solution that could store PDF documents in a free, full-text search ready, relational database that could be accessed by anyone on the local area network. In addition, I had a requirement to store notes in the database with the PDF document that would also be searchable.
In early 2009, after being unsuccessful in locating a solution, I started building PDFKeeper, an open-source application that would use a free, full-text search ready, relational database for PDF document and notes storage, targeted at the Small Office Home Office and Small Business community. To develop the application quickly, I decided to build it with Open Object REXX, a scripting language with GUI support that I was very familiar with from my OS/2 days. As for the database, I chose to use Oracle® Database XE since it was free and was capable of indexing PDF documents; but it was my plan to expand database compatibility to other platforms over time.
Here are some development highlights by year: (for more details, please see the Changelog)
The first version of PDFKeeper is released to the public on Google Code.
PDFKeeper receives free testing services from nResult, a software testing company that was providing free software testing services to open-source projects; PDFKeeper is redesigned and rewritten as a WinForms application in VB.NET for .NET Framework 3.5 SP1 using SharpDevelop.
PDFKeeper moves to GitHub; solution is migrated to Visual Studio 2013; .NET Framework 4.6.1 is targeted.
Source code, user interface, help file, and setup is completely redesigned and rewritten; setup is now per-user.
PDFKeeper homepage is now online; the redesigned PDFKeeper is released with additional search capabilities; Oracle® Database compatibility is expanded to 18c, 12c, and 11g Release 2.
PDFKeeper logo is redesigned; 10th year anniversary edition is released; Category and Flag features are added; Oracle® Database compatibility is expanded to 19c and 18c XE.
Solution is upgraded to Visual Studio 2019; .NET Framework 4.8 is targeted; 32-bit support is discontinued; user interface is redesigned to improve document searching; source code goes through an extensive refactoring.
Integrated, single user database option using SQLite is added; document records can be categorized by Tax Year; text annotations are now indexed; user interface layout is changed; PDFKeeper is added to the Windows Package Manager manifest repository and can now be installed via winget; text from image-only PDF documents is now extracted using OCR and indexed.
PDFKeeper source code is rearchitected into separate layers; Windows 10 (64-bit) or higher is now required; Oracle® Database compatibility is expanded to 21c and 21c XE; Oracle® Cloud Autonomous Database 21c and 19c compatibility is added; new features are added; OCR text extraction is improved.
User interface is redesigned; the entire application is rearchitected using the Model-View-Presenter-ViewModel pattern for better maintainability; all non-UI code is rewritten in C# and merged into a single library; all PDF viewer code is rewritten in C# and is contained in a separate library; Title, Author, and Subject editing has been added.
Going forward, the focus is going to be on standard project maintenance; migrating the user interface and all UI code to C# to complete the migration from VB.NET; upgrade solution to Visual Studio 2022 and .NET 7 or higher; and upgrade the setup project to WiX Toolset v4.
To track development progress, please check out the Project boards on GitHub.
If you like PDFKeeper, please support the project by donating using PayPal, Debit, or Credit Card.
PDFKeeper is maintained solely in my spare time which also includes expenses that are paid for out of my own pocket. Your donation will help with those expenses and support future development.
Thank you for reading!
Project Owner and Maintainer
Store and manage PDF documents in a single-user or compatible, multi-user (on-prem or cloud) database where they’re indexed to provide full-text search functionality.
Upload PDF documents individually or in bulk. In addition, Upload Profile folders can be setup to allow for integration and automation.
Apply a Title, Author, Subject, Category, and Tax Year to selected documents and when PDF documents are uploaded. In addition, Keywords can be applied when PDF documents are uploaded.
Set flag state on a selected document and when PDF documents are uploaded to mark for follow-up.
Add notes to a selected document that can include the date, time, and user account name. All notes can be edited and are indexed by the database.
Find documents by Search Term, Selections (Author, Subject, Category, and/or Tax Year), or Date Added. In addition, Flagged Documents or All Documents can be listed.
With PDFKeeper, the following functions can be performed on a selected document: PDF viewing with the bundled or default viewer; PDF bursting; Flag Document state management; Notes viewing and editing; Keywords, PDF preview, PDF Text, and Search Term Snippets (when applicable) are also displayed for viewing.
Export selected PDF documents with their category, tax year, notes, and flag state from the database for easy importing.
Please use this form to send a message regarding PDFKeeper to the Project Owner. For reporting bugs and requesting new features and enhancements, please visit the Issues tracker on GitHub. To ask questions about PDFKeeper and to get help, please visit the Discussions forum on GitHub.
The project owner will reply to all serious inquiries; however, some email systems may block messages from this website or flag as junk or spam. The preferred method of contact is through the project site on GitHub.