Metadata-Version: 1.1
Name: qrbill
Version: 0.7.1
Summary: A library to generate Swiss QR-bill payment slips
Home-page: https://github.com/claudep/swiss-qr-bill/
Author: Claude Paroz
Author-email: claude@2xlibre.net
License: MIT
Description: .. image:: https://travis-ci.com/claudep/swiss-qr-bill.svg?branch=master
            :target: https://travis-ci.com/claudep/swiss-qr-bill
        .. image:: https://img.shields.io/pypi/v/qrbill.svg
           :target: https://pypi.python.org/pypi/qrbill/
        
        Python library to generate Swiss QR-bills
        =========================================
        
        From 2020, Swiss payment slips will progressively be converted to the
        QR-bill format.
        Specifications can be found on https://www.paymentstandards.ch/
        
        This library is aimed to produce properly-formatted QR-bills as SVG files
        either from command line input or by using the ``QRBill`` class.
        
        Installation
        ============
        
        You can easily install this library with::
        
            $ pip install qrbill
        
        Command line usage example
        ==========================
        
        Minimal::
        
            $ qrbill --account "CH5800791123000889012" --creditor-name "John Doe"
              --creditor-postalcode 2501 --creditor-city "Biel"
        
        More complete::
        
            $ qrbill --account "CH44 3199 9123 0008 8901 2" --reference-number "210000000003139471430009017"
            --creditor-name "Robert Schneider AG" --creditor-street "Rue du Lac 1268"
            --creditor-postalcode "2501" --creditor-city "Biel"
            --extra-infos "Bill No. 3139 for garden work and disposal of cuttings."
            --debtor-name "Pia Rutschmann" --debtor-street "Marktgasse 28" --debtor-postalcode "9400"
            --debtor-city "Rorschach" --due-date "2019-10-31" --language "de"
        
        For usage::
        
            $ qrbill -h
        
        If no `--output` SVG file path is specified, the SVG file will be named after
        the account and the current date/time and written in the current directory.
        
        Note that if you don't like the automatic line wrapping in the human-readable
        part of some address, you can replace a space by a newline sequence in the
        creditor or debtor name, line1, line2, or street to force a line break in the
        printed addresses.
        (e.g. `--creditor-street "Rue des Quatorze Contours du Chemin\ndu Creux du Van"`)
        The data encoded in the QR bill will *not* have the newline character. It will
        be replaced by a regular space.
        
        Python usage example
        ====================
        
        ::
        
            >>> from qrbill import QRBill
            >>> my_bill = QRBill(
                    account='CH5800791123000889012',
                    creditor={
                        'name': 'Jane', 'pcode': '1000', 'city': 'Lausanne', 'country': 'CH',
                    },
                    amount='22.45',
                )
            >>> bill.as_svg('/tmp/my_bill.svg')
        
        Outputting as PDF or bitmap
        ===========================
        
        If you want to produce a PDF version of the resulting bill, we suggest using the
        `svglib <https://pypi.org/project/svglib/>` library. It can be used on the
        command line with the `svg2pdf` script, or directly from Python::
        
            >>> import tempfile
            >>> from qrbill import QRBill
            >>> from svglib.svglib import svg2rlg
            >>> from reportlab.graphics import renderPDF
        
            >>> my_bill = QRBill(
                    account='CH5800791123000889012',
                    creditor={
                        'name': 'Jane', 'pcode': '1000', 'city': 'Lausanne', 'country': 'CH',
                    },
                    amount='22.45',
                )
            >>> with tempfile.TemporaryFile(encoding='utf-8', mode='r+') as temp:
            >>>     my_bill.as_svg(temp)
            >>>     temp.seek(0)
            >>>     drawing = svg2rlg(temp)
            >>> renderPDF.drawToFile(drawing, "file.pdf")
        
        or to produce a bitmap image output::
        
            >>> from reportlab.graphics import renderPM
            >>> dpi = 300
            >>> drawing.scale(dpi/72, dpi/72)
            >>> renderPM.drawToFile(drawing, "file.png", fmt='PNG', dpi=dpi)
        
        Running tests
        =============
        
        You can run tests either by executing::
        
            $ python tests/test_qrbill.py
        
        or::
        
            $ python setup.py test
        
        
        Sponsors
        ========
        
        .. image:: https://seantis.ch/static/img/logo.svg
            :width: 150
            :target: https://seantis.ch/
        
        .. -*- mode: rst -*-
        
        ChangeLog
        =========
        
        0.7.1 (2022-03-07)
        ------------------
        - Fixed bad position of amount rect on receipt part (#74).
        - Increased title font size and section spacing on payment part.
        
        0.7.0 (2021-12-18)
        ------------------
        - License changed from GPL to MIT (#72).
        - Prevented separation line filled on some browsers.
        - Scissors symbol is now an SVG path (#46).
        
        0.6.1 (2021-05-01)
        ------------------
        - Added ``--version`` command-line option.
        - QR-code size is now more in line with the specs, including the embedded Swiss
          cross (#58, #59).
        - Widen space at the right of the QR-code (#57).
        - A new ``--font-factor`` command-line option allows to scale the font if the
          actual size does not fit your needs (#55).
        
        0.6.0 (2021-02-11)
        ------------------
        - Added the possibility to include newline sequences in name, street, line1, or
          line2 part of addresses to improve printed line wrapping of long lines.
        - Moved QR-code and amount section to better comply with the style guide (#52).
        - Dropped support for EOL Python 3.5 and confirmed support for Python 3.9.
        
        0.5.3 (2021-01-25)
        ------------------
        - Enforced black as swiss cross background color.
        - Allowed output with extension other than .svg (warning instead of error).
        - Split long address lines to fit in available space (#48).
        
        0.5.2 (2020-11-17)
        ------------------
        
        - Final creditor is only for future use, it was removed from command line
          parameters.
        - Capitalized Helvetica font name in code (#43).
        - The top line was printed a bit lower to be more visible (#42).
        
        0.5.1 (2020-08-19)
        ------------------
        
        - Fix for missing country field in QR code when using CombinedAddress (#31).
        - Added support for printing bill to full A4 format, using the ``full_page``
          parameter of ``QRBill.as_svg()`` or the CLI argument ``--full-page``.
        - The vertical separation line between receipt and main part can be omitted
          through the ``--no-payment-line`` CLI argument.
        - A new ``--text`` command line parameter allows for a raw text output.
        - Support for Alternate procedures lines was added (``--alt-procs`` argument,
          #40).
        
        0.5 (2020-06-24)
        ----------------
        
        - ``QRBill.as_svg()`` accepts now file-like objects.
        - Added support for combined address format.
        - A top separation line is now printed by default. It can be deactivated
          through the ``top_line`` boolean parameter of ``QRBill.__init__()``.
        - The error correction level of the QR code conforms now to the spec (M).
        
        0.4 (2020-02-24)
        ----------------
        
        Changes were not logged until version 0.4. Development stage was still alpha.
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
