A minimalist paper data storage based on QR codes
Project description
Description
Pawpyrus is a minimalist open-source paper data storage based on QR codes and ArUco. It generates a PDF from any small-sized binary file (recommended size <100kb). Further, the paper data storage can be scanned and decoded (recommended resolution 300dpi).
It can be useful if you need to backup data on paper:
Installation
The script is pure Python and a part of PyPI, so can be installed via pip:
python3 -m pip install pawpyrus
Usage
NOTE: Backward compatibility is not provided yet. To decode a document, please use exactly the version which was used to encode it.
Encoder:
pawpyrus Encode -n "Description" -i "input.file" -o "output.pdf"
Also, pawpyrus can read data from stdin. For example, encoding GPG public keys:
gpg --export regnveig@yandex.ru | pawpyrus Encode -n "Reqnveig Public Key" -i - -o "regnveig-pubkey.pdf"
Decoder:
pawpyrus Decode -i "scan1.jpg" "scan2.png" "scan3.jpg" "masked/too/*.png" -o "output.file"
Pawpyrus PDF example you can see here.
Data Format
Pawpyrus uses a custom alphanumeric encoding, which is designed to store information in QR code effectively. For now, that makes 4.3kb per A4 page (pixel size 0.6 mm).
Got a Trouble?
QR and ArUco detectors may fail on one or several blocks. The situation is totally normal, although uncomfortable. I fixed it for now, with two detectors (opencv and pyzbar) instead of one, but the bug may reappear in some circumstances. That's why I implemented Debug Mode:
pawpyrus Decode -d "debug_dir" -i "scan1.jpg" "scan2.jpg" "scan3.jpg" -o "output.file"
With Debug Mode, you can inspect undetected QR codes, read them manually with any device you have, and create a file with text blocks which can be processed as well:
pawpyrus Decode "scan1.jpg" "scan2.jpg" "scan3.jpg" -t "unrecognized_codes.txt" -o "output.file"
Output Debug Dir example you can see here.
If you have any idea how to fix the bug better, please help.
Repository Mirrors
- Darktea (Darknet Gitea): regnveig/pawpyrus
Similar Projects
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for pawpyrus-2023.1.15.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba1d1dae5da6810d7825acea9437f2d081ad6fd878f6aa73c4ee8d1d2528f05a |
|
MD5 | 5a8d3924100b76dc5313cb40ce7cec11 |
|
BLAKE2b-256 | e5c350f36cf41cfd641c5d34951ccdf7eeae6685be82feec3adc65d8cd855761 |