生成PDF发票的库。

InvoiceGenerator的Python项目详细描述


https://travis-ci.org/creckx/InvoiceGenerator.svg

这是一个生成简单发票的库。 目前支持的格式是pohoda会计系统的pdf和xml。 PDF发票基于ReportLab。

安装

以根用户身份运行此命令:

pip install InvoiceGenerator

如果要升级到新版本,请添加--upgrade标志:

pip install InvoiceGenerator --upgrade

您也可以使用github存储库中的setup.py:

python setup.py install

文件

完整的文档可在 Read The Docs

示例

基本API

首先定义发票数据:

import os

from tempfile import NamedTemporaryFile

from InvoiceGenerator.api import Invoice, Item, Client, Provider, Creator

# choose english as language
os.environ["INVOICE_LANG"] = "en"

client = Client('Client company')
provider = Provider('My company', bank_account='2600420569', bank_code='2010')
creator = Creator('John Doe')

invoice = Invoice(client, provider, creator)
invoice.currency_locale = 'en_US.UTF-8'
invoice.add_item(Item(32, 600, description="Item 1"))
invoice.add_item(Item(60, 50, description="Item 2", tax=21))
invoice.add_item(Item(50, 60, description="Item 3", tax=0))
invoice.add_item(Item(5, 600, description="Item 4", tax=15))

注意:由于python的表示错误,请将数字写为整数tax=10, 十进制tax=Decimal('10.1')或字符串tax='1.2',以避免使用 很多小数位。

pdf

生成PDF发票文件:

from InvoiceGenerator.pdf import SimpleInvoice

pdf = SimpleInvoice(invoice)
pdf.gen("invoice.pdf", generate_qr_code=True)

pohoda xml

生成XML发票文件:

from InvoiceGenerator.pohoda import SimpleInvoice

pdf = SimpleInvoice(invoice)
pdf.gen("invoice.xml")

注:POHODA采用三种税率:无税率:0%,低税率:15%,高税率:21%。 如果任何项目不符合这些百分比,ratevat参数将 不为导致0%税率的项目设置。

POHODA XML格式当前仅支持SimpleInvoice。

黑客攻击

repository on github和 写代码。确保在/tests/下添加覆盖代码的测试。你可以 使用以下命令运行测试:

python setup.py test

然后通过一个请求来提出你的补丁。

使用Sphinx

python setup.py build_sphinx

然后转到doc/build/html/index.html

历史记录

1.0.0-2018年5月17日

  • 添加对pohoda xml格式的支持
  • 添加了更复杂的文档
  • 参数Address.zip已重命名为Address.zip_code
  • 将参数divisioncountry添加到Address
  • 添加了参数Address.bank_code 如果存在,银行代码将在 帐号,否则全部 Address.bank_account将被使用
  • 提供的地址与pdf发票上的区域相匹配
  • 代码样式修复
  • 修约:使用decimal.Decimal和 添加了参数Invoice.rounding_strategy
  • 二维码修正
  • 允许在SimpleInvoice
  • 中设置行宽

0.5.4-2017年3月22日

  • 修复生成包中的区域设置

0.5.3-2017-01-09

  • 使用babel进行货币格式化;修复并改进测试

0.5.2-2014年12月4日

  • 停止提及python2.6支持
  • 使invoice.variable_symbol可选

0.5.1-2014年10月28日

  • 固定形态相对导入
  • 对notes使用python本机函数splitlines

0.5.0-2014年9月21日

  • 将属性编号添加到对象发票
  • 已替换发票头中发票号的变量符号
  • 更新捷克语翻译

0.4.9-2014年7月3日

  • 修复以前提交的错误

0.4.8-2014年7月3日

  • 创建形式发票

0.4.7-2014年7月1日

  • 更改二维码生成器的日期格式
  • 禁止将发票上的日期时间转换为字符串
  • 禁用呈现空值

0.4.6-2014年5月14日

  • 仅当有多个页面时显示的页数
  • 将日期重命名为曝光日期
  • 用枕头代替枕头

0.4.5-2014年4月21日

  • 支持多页项目打印输出
  • 支持多行项目描述
  • 使用语言环境打印货币字符串和值
  • 将徽标添加到提供商标题

没有早期版本的注释。

贡献者

  • 亚当·斯特拉克(@creckx)
  • 马丁·沃尔德里奇(@rbas)
  • 彼得鲁希(@petr dlouhy)
  • 安托万·穆索(@hashar)

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

推荐PyPI第三方库


热门话题
java IntelliJ找不到依赖项选项卡   java向字符串数组string[]添加元素并在Junit中测试结果   如何在eclipse中获取活动java项目的名称   如何使用java在mysql中插入时间   java ArrayList更新了插入一行,但Jtable仍然没有刷新   如何在JavaSwing中命名坐标(点)   java Matcher/模式不打印   java错误地设置了arraylist   使用UsernamePasswordCredential提供程序的java列表Azure AD   java在HTTP请求中设置UTC时间   未加载事件:jquery完整日历Java集成   java Maven插件依赖项无法从内部repo解析依赖项   Maven更新重置Java版本   java如何向中添加图片。带有Apache POI XWPF的docx,但不指定其大小   Java最大函数递归