top of page

PDFKeeper

Open Source PDF Document Management

PDFKeeper is a free, open-source application that stores and organizes PDF documents in a searchable database.

​

PDFKeeper is distributed under the terms of the GNU General Public License (GPL) version 3.

​

You can download and install PDFKeeper from GitHub, or install it using the Windows Package  

Manager (winget install pdfkeeper --source=winget).

Open Laptop

About

PDFKeeper began as an idea to solve a personal document‑storage problem. With both digital and paper documents scattered across multiple locations, finding what I needed—especially at tax time—was becoming increasingly difficult. An even bigger challenge was locating a free solution that could store PDF documents in a full‑text‑search‑ready relational database accessible to anyone on the local area network. I also needed the ability to store searchable notes alongside each PDF.

​

In early 2009, after being unable to find a solution that met these requirements, I began building PDFKeeper—an open‑source application designed to use a free, full‑text‑search‑enabled relational database for storing PDF documents and notes. The target audience was the Small Office/Home Office and Small Business community. To accelerate development, I chose Open Object REXX, a scripting language with GUI support that I knew well from my OS/2 days. For the database, I selected Oracle® Database XE because it was free and capable of indexing PDF documents, with the long‑term goal of expanding compatibility to additional database platforms.

​

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 providing complimentary 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.

The project targets .NET Framework 4.0.

All documentation is replaced with a new help system.

Setup is migrated from InnoSetup to Windows Installer using WiX Toolset.

​​

2016

PDFKeeper moves to GitHub.

The solution is migrated to Visual Studio 2013.

The project now targets ​.NET Framework 4.6.1.

​

2017

The source code, user interface, help file, and setup are completely redesigned and rewritten.

Setup is changed to a per‑user installation.

​

2018

The PDFKeeper homepage goes online.

A redesigned version of PDFKeeper is released with expanded search capabilities.

Oracle® Database compatibility is expanded to 18c, 12c, and 11g Release 2.

​​

2019

The PDFKeeper logo is redesigned.

The 10th‑anniversary edition is released.

Category and Flag features are added.

Oracle® Database compatibility is expanded to 19c and 18c XE.

​

2020

The PDFKeeper repository is included in the 2020 GitHub Archive Program.

The solution is upgraded to Visual Studio 2019.

The project targets .NET Framework 4.8.

32‑bit support is discontinued.

The user interface is redesigned to improve document searching.

The source code undergoes extensive refactoring.

​​

2021

An integrated, single‑user database option using SQLite is added.

Document records can now be categorized by Tax Year.

Text annotations are indexed.

The user interface layout is updated.

PDFKeeper is added to the Windows Package Manager manifest repository and can now be installed via winget.

Text from image‑only PDF documents is extracted using OCR and indexed.

​​

2022

The source code is rearchitected into separate layers.

Windows 10 (64‑bit) or later is now required.

Oracle® Database compatibility is expanded to 21c and 21c XE.

Oracle® Cloud Autonomous Database compatibility is added.

PDF bursting is introduced.

OCR text extraction is improved.

​

2023

The user interface is redesigned.

The entire application is rearchitected and refactored using the Model‑View‑Presenter‑ViewModel (MVP-VM) pattern.

All non‑presentation code is rewritten in C#.

Editing of Title, Author, and Subject is added.

​​

2024

All presentation forms and code are rewritten in C#, completing the VB.NET‑to‑C# migration.

Database compatibility is expanded to include Oracle® Database Free.

Editing of “Date and Time Added” is added.

Attachments and embedded files can now be extracted from PDF documents.

​​

2025

Database compatibility is expanded to SQL Server and SQL Server Express 2019 and later, and to MySQL Community Server 8.4.3 LTS and higher.

The entire application has been rearchitected and refactored with enhanced dependency injection and a modern Model‑View‑ViewModel (MVVM) design.

The solution has been upgraded to Visual Studio 2022.

The project now targets .NET Framework 4.8.1.

The setup has been updated to use the modern WiX toolset.

​

2026

PDF document replacement has been added.
Custom column header aliases have been added to the Documents View.
Support for additional databases has been added.
OneDrive integration has been added for storing the local SQLite database.
Support for using existing PDF metadata in Upload Profiles has been added.

​​​

Thank you for reading!

​​

Robert F. Frasca

Project Owner and Maintainer

​

If you find PDFKeeper valuable, please consider supporting the project with a donation via PayPal, Debit, or Credit Card.

PDFKeeper is a volunteer-driven project, and all expenses are paid out of pocket. Your contribution helps cover those costs and supports future development.

​

​

​

Features

Store and manage PDF documents in a single‑user or compatible multi‑user (on‑premises or cloud) database, where they are indexed to provide full‑text search functionality.

Upload PDF documents individually or in bulk. In addition, Upload Profile folders can be set up to support integration and automation workflows.

Apply a Title, Author, Subject, Category, and Tax Year to selected documents or automatically during upload. Keywords can also be applied during upload.                           

Set the flag state on a selected document—or automatically during upload—to mark items for follow‑up.

Add notes to a selected document, including date, time, and user account name. All notes can be edited and are indexed by the database.

Find documents by Search Term, by Selections (Author, Subject, Category, and/or Tax Year), or by Date Added. You can also list Flagged Documents or All Documents.

With PDFKeeper, you can perform the following functions on a selected document: view the PDF with the bundled or default viewer; burst the PDF; extract attachments and embedded files from the PDF; copy the PDF to the Clipboard or drag and drop it into other applications; replace the PDF; manage the document’s flag state; view and edit notes; and display keywords, a PDF preview, extracted text, and search‑term snippets (when applicable).

Export selected PDF documents—including their category, tax year, notes, and flag state—from the database for easy importing.

Contact Form

Use this form to contact the Project Owner about PDFKeeper.

For bug reports, feature requests, or enhancements, visit the Issues tracker on GitHub.

For questions or help, visit the Discussions forum on GitHub.

​

The Project Owner responds to all serious inquiries, but some email systems may block or flag messages from this site. Contact through GitHub is preferred.

Thanks for submitting!

Copyright © 2026 Robert F. Frasca

  • Twitter
bottom of page