# Change Log
### Client Requirements
* Windows 10 (64-bit) or higher with .NET Framework 4.8 installed.
* Any additional requirements will be referenced in the Help file that can be viewed post-install.
### Database Compatibility
* SQLite (included as a single-user database option)
#### Multi-User Database Management Systems
* Oracle Database 21c and 19c
* Oracle Database 21c and 18c Express Edition
* Oracle Cloud Autonomous Database 21c and 19c
Setup instructions are available in the Help file that can be viewed post-install.
### Upgrade Information
* Full upgrade support is only provided for PDFKeeper 7.0.0 or higher.
* Starting with PDFKeeper 9.0.0, the RemoveListAllDocuments policy has been renamed to HideAllDocuments.
* When upgrading from PDFKeeper 8.1.2 or lower, if flagged documents were being listed on startup of PDFKeeper, you will need to select "Find flagged documents on startup" in Options to enable.
* When upgrading from PDFKeeper 8.x.x, XML files in %APPDATA%\Robert F. Frasca\PDFKeeper\UploadProfiles will be upgraded. The original XML files are stored to %APPDATA%\Robert F. Frasca\PDFKeeper\UploadProfiles.bak where they will remain and can be deleted if no longer needed.
* When upgrading from PDFKeeper 8.1.0 or lower, if prompted for an admin account, select No and then right click on the Windows Start Menu, select Run, and then type: winget install pdfkeeper
* Starting with PDFKeeper 8.0.0, Windows 10 (64-bit) or higher is required.
* Starting with PDFKeeper 8.0.0, 64-bit Oracle Data Access Components 21.4 is required when connecting to Oracle Database. Instructions are available in the Help file that can be viewed post-install.
* When upgrading from PDFKeeper 7.2.3 or lower, XML files in %APPDATA%\Robert F. Frasca\PDFKeeper\UploadConfig are upgraded and stored in %APPDATA%\Robert F. Frasca\PDFKeeper\UploadProfiles. The original XML files will remain for backwards compatibility and can be deleted if no longer needed.
### New Features
* The Documents list will auto refresh every thirty seconds when the database platform is Oracle.
* Redesigned the layout of the Main form which included the removal of all Document Retrieval functionality that was replaced by the Find Documents dialog.
* Created Documents menu on the Main form that contains items related to the multi-selecting of Documents in the list.
* Redesigned the Add PDF dialog.
* Redesigned the Upload Profiles dialog which included the removal of all Upload Profile editing functionality that was replaced by the Upload Profile Editor dialog.
* Status bar image will be displayed while the Documents list is being refreshed.
* Removed Refresh from the View menu on the Main form.
* Removed Update PDF Text Columns from the Tools menu on the Main form.
* Renamed Date/Time in the Edit menu on the main form to Append Date/Time.
* Moved Text from the Insert menu on the main form to the Edit menu and renamed to Append Text.
* Renamed "List flagged documents on startup" to "Find flagged documents on startup" on the Options dialog.
* Changed Upload Directory Maintenance to execute directly before the Upload.
* Changed Rejected PDF files check to execute directly after the Upload.
* Removed Oracle Database Schema Upgrade help topic and script support.
* Renamed RemoveListAllDocuments policy to HideAllDocuments.
* Changed class name in the Upload Profile XML schema.
* Removed the copying of BouncyCastle.Crypto.dll to BouncyCastle.Crypto.dll.bak during setup and the restore command class that is no longer needed since BouncyCastle.Crypto.dll is no longer being deleted during the upgrade of PDFKeeper.
* Updated Magick.NET to 13.4.0. (CVE-2023-4863)
* ArgumentException: The parameter is incorrect. Image dimensions are too large! This exception will be prevented by skipping each PDF page that is to be processed by OCR with a pixel width or pixel height that exceeds the maximum image pixel dimensions supported by the Windows OCR engine. (#13)
### Development Changes
* Implemented the Model-View-Presenter-ViewModel pattern to improve maintainability.
* Created Components and User Controls to eliminate redundancy and improve modularity.
* Rewrote all non-UI code in C# and consolidated into PDFKeeper.Core.
* Rewrote all code related to PDF viewing in C# and consolidated into PDFKeeper.PDFViewer.
* Updated Microsoft.CodeAnalysis.NetAnalyzers to 7.0.4.
### Additional Information
* Oracle Database 19c (19.3) requires the Microsoft Visual C++ 2013 Redistributable (x64) - 12.0.30501 to be installed on the computer hosting the database.
* By default, text will not be extracted from embedded images contained in a PDF.
* PDF text extraction will be skipped for each page that is to be processed by OCR when the pixel width or pixel height exceeds the maximum image pixel dimensions supported by the Windows OCR engine.
PDFKeeper is free, open source software that provides a storage and management solution for PDF documents.
This software requires a relational database for document storage. It can be implemented for single user use with the builtin, local SQLite database or in a multi user, on-prem or cloud environment using a compatible database. Please note, future versions might extend support for other database management systems. You can request this by posting an issue on its GitHub page available here.
Note: PDFKeeper requires Windows 10 (64-bit) or higher with .NET Framework 4.8
- 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 category/tax year to selected documents and when PDF documents are uploaded.
- Set the 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/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.