https://github.com/dbrgn/arkivisto
Your friendly CLI based workflow for scanning and archiving documents efficiently.
https://github.com/dbrgn/arkivisto
Last synced: about 1 year ago
JSON representation
Your friendly CLI based workflow for scanning and archiving documents efficiently.
- Host: GitHub
- URL: https://github.com/dbrgn/arkivisto
- Owner: dbrgn
- Created: 2025-04-21T00:04:13.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-21T00:19:49.000Z (about 1 year ago)
- Last Synced: 2025-04-21T01:33:37.306Z (about 1 year ago)
- Language: Rust
- Size: 13.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Arkivisto

Your friendly CLI based workflow for scanning and archiving documents
efficiently.
[![GitHub CI][github-actions-badge]][github-actions]
**PRE-ALPHA!**
## Features
Current implementation status:
- [x] Interactive, user-friendly CLI interface
- [x] Support for multiple scanners
- [x] Scanning all from ADF
- [x] Scanning multiple pages from flatbed
- [ ] Scanning multiple pages from mixed sources
- [x] Postprocessing
- [ ] Archiving
## History
Back in 2014, I wrote a little Python script called
[pydigitize](https://github.com/dbrgn/pydigitize) to simplify the scanning and
archival of documents. It already supported most required features, such as
scanning from ADF, straightening/cleaning of documents, running OCR on
documents, generating PDF/A files and adding keywords to these files, but the
usability of the process was not optimal. The whole scan/postprocess/archive
process was slow, so I usually had multiple command line windows open at the
same time.
After some time of using the tool regularly, I showed it to
[@ubruhin](https://github.com/ubruhin), who liked the general idea but had many
ideas on how to improve the workflow. He essentially rewrote the project and
divided the workflow into three stages: Scanning, processing, and archiving. The
project was called [docscan](https://gitlab.com/ubruhin/docscan) and proved to
be a great time saver after the initial config file setup investment.
Fast forward a few more years, docscan was still very useful, the lack of strict
types in Python made it difficult to maintain and extend the codebase. Since I
still had a few ideas on how to improve the workflow, I decided to rewrite the
project again (essentially the rewrite of a rewrite), this time using Rust. The
result is a faster, more robust and maintainable codebase that is easier to
extend and improve.
## Development Notes
### Fake Scan
During development, you can fake the scanning process with a predefined list of
documents in TIFF format. This is useful for testing and debugging purposes.
To use fake scanning, pass the `--fake-scan` flag to the arkvisto binary. Note
that the `testdata/` directory must exist in the current working directory, and
that the binary must be built in debug mode.
[github-actions]: https://github.com/dbrgn/arkivisto/actions?query=branch%3Amain
[github-actions-badge]: https://github.com/dbrgn/arkivisto/actions/workflows/ci.yml/badge.svg?branch=main