生成瑞士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第三方库


热门话题
javascript节点js require()和Rhino Shell load()之间的区别是什么?   While循环中的java If语句   java GXT如何在XTemplate中显示treeobject?   如何将黑白图像加载到二进制文件中?   java ORMLite不知道如何存储班级航班。扫描仪。modelFX。机场航空公司的AirlineFx。使用另一个类或自定义持久器   java组织。阿帕奇。德比。客户是SqlException JSP和JSTL查询   spring如何将clob数据分配给java变量   java从上的表获取数据(Spring)   javaphp使用Exec执行带有用户定义参数的Jar文件   java jsonschema2pojo:引用相同类型的对象   使用原语从Scala调用Java vararg方法   java ClassNotFoundException:ClientBuilder Jersey 2.25.1 Tomcat 9.0   Android(Java)cr_BindingManager:无法调用determinedVisibility()从未看到pid的连接:   Java使用LocalTime类比较没有日期的时间   Java如何初始化对象的参数?