Python library for generating QR codes for QR platba.
See http://qr-platba.cz/pro-vyvojare/ for more information about the specification (available only in czech).
from qrplatba import QRPlatbaGenerator
from datetime import datetime, timedelta
due = datetime.now() + timedelta(days=14)
generator = QRPlatbaGenerator('123456789/0123', 400.56, x_vs=2034456, message='text', due_date=due)
img = generator.make_image()
img.save('example.svg')
# optional: custom box size and border
img = generator.make_image(box_size=20, border=4)
# optional: get SVG as a string.
# Encoding has to be 'unicode', otherwise it will be encoded as bytes
svg_data = img.to_string(encoding='unicode')
To install qrplatba, simply:
$ pip install qrplatba
This module generates SVG file which is an XML-based vector image format. You can use various libraries and/or utilities to convert it to other vector or bitmap image formats. Below is an example how to use libRSVG
to convert SVG images.
libRSVG
renders SVG files using cairo and supports many output image formats. It can also be used directly in console with rsvg-convert
command.
$ rsvg-convert -f pdf example.svg -o example.pdf
QR Platba uses SPAYD format (application/x-shortpaymentdescriptor
) for encoding information related to bank transfer. In addition to generating QR codes, this library can also generate just the encoded string using the following code:
generator = QRPlatbaGenerator('123456789/0123', 400.56, x_vs=2034456, message='text', due_date=due)
spayd = generator.get_text()
This software is licensed under MIT license since version 1.0.0
.
- Added compatibility with
lxml
library. FixesTypeError
when using this library whilelxml
is installed in the same virtualenv.
- Dropped support for Python 3.7
- Added pre-commit, black and ruff for code formatting
Warning: While the API is mostly backwards compatible, the look and size of the generated QR codes has changed.
- Updated requirements to support the latest
qrcode
version - Added support for custom output sizes using
box_size
andborder
parameters - Changed legacy setuptools to poetry
- Dropped support for Python
2.x
and<3.7
- Changed license to MIT
- Added unit tests