生成瑞士QRbill付款单的库

qrbill的Python项目详细描述


https://travis-ci.org/claudep/swiss-qr-bill.svg?branch=masterhttps://img.shields.io/pypi/v/qrbill.svg

Python库生成瑞士QR账单

从2020年起,瑞士付款单将逐步转换为 QR账单格式。 可以在https://www.paymentstandards.ch/上找到规范

该库旨在生成格式正确的QR账单作为SVG文件 从命令行输入或使用QRBill类。在

安装

您可以使用以下工具轻松安装此库:

$ pip install qrbill

命令行用法示例

最小值:

^{pr2}$

更完整:

$ 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"

使用方法:

$ qrbill -h

如果没有指定–outputSVG文件路径,则SVG文件将以以下名称命名 帐户和当前日期/时间并写入当前目录。在

Python用法示例

>>> from qrbill.bill 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')

以PDF格式输出

如果您想生成生成账单的PDF版本,我们建议使用 svglib<;https://pypi.org/project/svglib/>;图书馆。它可以用在 使用svg2pdf脚本的命令行,或直接从Python执行:

>>> import tempfile
>>> from qrbill.bill 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.NamedTemporaryFile(mode='w') as temp:
>>>     my_bill.as_svg(temp)
>>>     temp.seek(0)
>>>     drawing = svg2rlg(temp.name)
>>> renderPDF.drawToFile(drawing, "file.pdf")

运行测试

您可以通过执行以下操作来运行测试:

$ python tests/test_qrbill.py

或者:

$ python setup.py test

变更日志

0.5.2(2020年11月17日)

  • 最终债权人只供将来使用,它已从命令行中删除 参数。在
  • 代码中大写的Helvetica字体名称(#43)。在
  • 最上面一行打印得稍微低一点,以便更容易看到(#42)。在

0.5.1(2020-08-19)

  • 修正了使用CombinedAddress(#31)时二维码中缺少的国家/地区字段。在
  • 添加了对将账单打印为完整A4格式的支持,使用full_pageQRBill.as_svg()的参数或CLI参数--full-page。在
  • 收据与主体之间的垂直分隔线可以省略 通过--no-payment-lineCLI参数。在
  • 新的--text命令行参数允许原始文本输出。在
  • 添加了对备用过程行的支持(--alt-procs参数, #40页)。在

0.5(2020-06-24)

  • QRBill.as_svg()现在接受类似文件的对象。在
  • 添加了对组合地址格式的支持。在
  • 默认情况下,将打印顶部分隔线。它可以停用 通过QRBill.__init__()top_line布尔参数。在
  • 二维码的纠错等级现在符合规范(M)。在

0.4(2020-02-24)

直到0.4版才记录更改。发育阶段仍然是阿尔法阶段。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
尝试运行JFLAP。戴软呢帽的罐子23。Java正在抛出异常   无引用的java数组布尔复制   hibernate如何在java SE应用程序中使用JPA EntityManager   java如何使用ORMLite在SQLite中持久化JavaFX属性?   java无法将项目部署到GAE   java:谷歌地图维基百科层   java Resultset(getter/setter类)对象在第二次执行时未删除旧值   s中的java struts2:选择列表>请求的列表键“”作为集合/数组/映射/枚举/迭代器类型   java如何在Karaf 4.0.5中获得BaseDao中的entityManager?   java VSCode未从控制台读取西里尔文   java字体。createFromAsset()返回字体的空指针异常   java错误:将Android Studio从0.6.1更新到0.8.9后,没有合适的构造函数