{"id":13585814,"url":"https://github.com/dbrgn/pydigitize","last_synced_at":"2025-09-28T16:30:33.596Z","repository":{"id":66130110,"uuid":"96928739","full_name":"dbrgn/pydigitize","owner":"dbrgn","description":"Command line tool to easily scan documents into OCRd PDF/A files for archival.","archived":false,"fork":false,"pushed_at":"2023-01-14T16:55:36.000Z","size":73,"stargazers_count":61,"open_issues_count":6,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-12T10:42:22.665Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dbrgn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-11T19:26:55.000Z","updated_at":"2024-08-12T23:52:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"8817b013-390b-4f4d-a7a7-3d3e5e633fd3","html_url":"https://github.com/dbrgn/pydigitize","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbrgn%2Fpydigitize","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbrgn%2Fpydigitize/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbrgn%2Fpydigitize/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbrgn%2Fpydigitize/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dbrgn","download_url":"https://codeload.github.com/dbrgn/pydigitize/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234537468,"owners_count":18848947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T15:05:09.570Z","updated_at":"2025-09-28T16:30:33.220Z","avatar_url":"https://github.com/dbrgn.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# pydigitize\n\n![Example screenshot](example.png)\n\n## Features\n\npydigitize is a simple command-line based tool to scan/archive documents.\n\nIt does the following steps:\n\n- Scan a document with any scanner that supports SANE (ADF supported)\n- Straightening and cleaning of scanned documents\n- Run OCR on PDF so that it becomes searchable\n- Generate [PDF/A](https://en.wikipedia.org/wiki/PDF/a) file for archival\n- Add keywords to the PDF file\n\nBecause you don't want to type the same arguments for every piece of paper that\nyou scan, pydigitize supports profiles: A profile pre-configures settings like\nthe output directory, the resolution, whether to run OCR, additional PDF\nkeywords, etc. You can create a profile for all your invoices for example. Then\nevery time you get an invoice, you scan it with `./scan.py -p invoice`, done.\n\n## Requirements\n\n- Python 3.x\n- OCRmyPDF\n- libtiff\n- sane\n- unpaper\n- ghostscript\n\n## Usage\n\nSee `./scan.py --help`.\n\n## Profiles\n\nIf you want to use profiles, create a `profiles.toml` file in the current\ndirectory.\n\nFor every profile you can specify the following parameters:\n\n- `path`: The output directory\n- `name`: Set a string that will be included in every filename in slugified form\n- `ocr`: Whether to run OCR, straightening and cleanup on the scanned document\n- `keywords`: List of keywords that will be added to PDF Metadata\n\nYou can also create sub-profiles. They inherit the settings from the parent.\n\nExample:\n\n```toml\n[bill]\npath = \"/home/user/bills/\"\nname = \"bill\"\nocr = true\nkeywords = [\"bill\"]\n\n[bill.dentist]\nname = \"dentist\"\nkeywords = [\"bill\", \"dentist\"]\n\n[drawing]\npath = \"/home/user/drawings/\"\nocr = false\n```\n\nThen pass the name of the profile to the `scan.py` command using the `-p`\nparameter.\n\n    ./scan.py -p bill.dentist\n\nYou can of course override your parameters:\n\n    ./scan.py -p bill -n amazon\n\n## Interactive (Batch) Scanning\n\nIf you want to scan a specific number of pages, use the `-c` argument.\n\npydigitize will prompt you to confirm before scanning every page. This is very\nuseful for example when scanning double-sided documents on a scanner that does\nnot have a duplex unit, or when scanning a document partially in the ADF and\npartially on the flatbed.\n\nIf you don't want manual confirmation, but just want the scanner to scan as\nfast as it can, use the `--nowait` argument.\n\n## License\n\nLicensed under either of\n\n * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or\n   http://www.apache.org/licenses/LICENSE-2.0)\n * MIT license ([LICENSE-MIT](LICENSE-MIT) or\n   http://opensource.org/licenses/MIT) at your option.\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall\nbe dual licensed as above, without any additional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbrgn%2Fpydigitize","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdbrgn%2Fpydigitize","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbrgn%2Fpydigitize/lists"}