PDFKeeper
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).
About
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)
2009
The first version of PDFKeeper is released to the public on Google Code.
2010
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.
2013
PDFKeeper moves to CodePlex; .NET Framework 4.0 is targeted; all documentation is replaced by new help system; setup is migrated from InnoSetup to Windows Installer using WiX Toolset.
2016
PDFKeeper moves to GitHub; solution is migrated to Visual Studio 2013; .NET Framework 4.6.1 is targeted.
2017
Source code, user interface, help file, and setup is completely redesigned and rewritten; setup is now per-user.
2018
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.
2019
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.
2020
PDFKeeper repository is included in the 2020 GitHub Archive Program; 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.
2021
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.
2022
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.
2023
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.
Thank you for reading!
Project Owner and Maintainer
If you like PDFKeeper, please support the project by donating using PayPal, Debit, or Credit Card.
PDFKeeper is a volunteer software project with expenses that are paid for with personal funds. Your donation will help with those expenses and support future development.
Features
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; PDF copying to the Clipboard; 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.
Contact Form
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.