DropDMS turns WordPress into a simple, private archive for receipts, invoices and letters.
- Drag & drop upload of PDF, JPG, PNG, WebP and GIF files, many at once.
- Text recognition (OCR) in the browser. PDFs with a text layer are read directly; scans and photos are recognized with Tesseract. Nothing is sent to a cloud service, and your server needs no extra software.
- Duplicate check before upload. The browser computes a SHA-256 fingerprint first, so a receipt that is already in the archive is reported before any OCR time is spent.
- Search in title, file name, note and recognized text – partial words or the MySQL full-text index.
- Categories (hierarchical), document date, note, and the recognized text can be corrected by hand.
- Thumbnails in the list and a preview on the edit screen.
- Run text recognition again for a single document.
- Files are stored in the database together with their text and thumbnail. They are not reachable by URL in the uploads folder; WordPress delivers them only after a permission check. This also works on nginx without server rules.
- Own capabilities (
dropdms_view, dropdms_upload, dropdms_edit, dropdms_delete, dropdms_manage) that you can assign to any role.
- No limits on the number of documents.
DropDMS Pro
The separate add-on
DropDMS Pro adds a document list for your website (block and shortcode with search, filters and visibility per category) and text recognition for many documents at once. DropDMS works fully without it.
Privacy
DropDMS does not contact external services. All libraries for text recognition (Tesseract.js, its WebAssembly core, the language data for German and English, pdf.js) ship with the plugin and are loaded from your own site. Your documents never leave your site.
- Install and activate the plugin.
- Open DropDMS → Documents and drop files into the upload area.
- Optional: create categories under DropDMS → Categories and adjust the recognition language and file size under DropDMS → Settings.
The largest file you can store depends on your PHP upload limits and on the MySQL/MariaDB setting
max_allowed_packet. The settings page shows the effective limit.