python zugferd xml实现

drafthorse的Python项目详细描述


https://travis-ci.com/pretix/python-drafthorse.svg?branch=masterhttps://codecov.io/gh/pretix/python-drafthorse/branch/master/graph/badge.svghttp://img.shields.io/pypi/v/drafthorse.svg

这是zugferd xml格式的底层python实现。祖格费尔德是德国人 发送数字发票的格式。zugferd xml文件将附加到pdf 文件此库可用于生成或分析此XML文件的内容,以及 将其附加到PDF。我们暂时不支持解析pdf文件。

低级的意思是,这个库对zugferd数据模型1:1进行建模,而不需要进一步 抽象或简化。可以设置和分析zugferd 1.0中定义的所有参数。

所有输出都根据官方xsd进行了验证,但是没有对概要文件级别(基本、舒适、扩展)进行验证。

用法

解析:

>>> from drafthorse.models.document import Document
>>> samplexml = open("sample.xml", "rb").read()
>>> doc = Document.parse(samplexml)
>>> str(doc.trade.agreement.seller.name)
'Lieferant GmbH'

正在生成:

>>> from datetime import date
>>> from drafthorse.models.document import Document
>>> from drafthorse.models.note import IncludedNote

>>> doc = Document()
>>> doc.context.guideline_parameter.id = "urn:ferd:CrossIndustryDocument:invoice:1p0:comfort"
>>> doc.header.id = "RE1337"
>>> doc.header.name = "RECHNUNG"
>>> doc.header.type_code = "380"
>>> doc.header.issue_date_time.value = date.today()
>>> doc.header.languages.add("de")
>>> note = IncludedNote()
>>> note.content.add("Test Node 1")
>>> doc.header.notes.add(n)
>>> doc.trade.agreement.seller.name = "Lieferant GmbH"

>>> xml = doc.serialize()
>>> xml
b'<?xml version="1.0" encoding="UTF-8"?><rsm:CrossIndustryDocument …'

# Attach XML to an existing PDF.
# Note that the existing PDF should be compliant to PDF/A-3!
# You can validate this here: https://www.pdf-online.com/osa/validate.aspx
>>> new_pdf_bytes = attach_xml(original_pdf_bytes, xml, 'BASIC')

开发

要运行包含的测试:

pip install -r requirements_dev.txt
py.test tests

根据ci的要求自动对导入内容进行排序:

pip install isort
isort -rc .

学分和许可证

维护者:raphael michel<;michel@rami.io>;

python代码的许可证:apache license 2.0

PDF处理(DRAFRSORS/PDF.PY)是基于FACTUR-X的代码,版权2012-2018,Alexis de Lattre & lt;^ {A5}&Gt; 在BSD许可下发布。

这些软件包包括zugferd规范(.xsd和.xml文件)的模式和示例,这些模式和示例归forum für elektronische rechnungen bei der awv e.v(“ferd”)所有,并在允许将它们与其他软件免费捆绑在一起的专有许可下发布。

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

推荐PyPI第三方库


热门话题
java为什么只为字符数组重载println方法,而不为字符串、整数等其他数组重载?   java将快速线程返回到池中,而不是等待慢速线程   创建jar文件时java SwingWorker不工作   java如何将依赖注入RabbitListener   java如何在gradle任务中通过scp复制目录?   java在MySql数据库中创建表时,遇到NullPointerException   java HTTP Status 500 Servlet执行引发异常   在JAVA中对arraylist使用继承时出错   java PowerMockito未完成存根异常   如果没有错误/警告增加到某个极限,java是否停止在eclipse中构建项目或使用maven?   java Robolectric如何测试DateFormat。getBestDateTimePattern()   google云平台GCP数据存储Java API,构建一个空值实体   VerifyListener和FocusListener之间的java冲突   安卓是否可以在Java中的另一个方法内部强制调用一个方法?   JavaWindows7、JDK1.8、SpringBoot应用程序JAR在方法安全性方面占用了大量时间。getProviders()返回   Bean提供程序的java错误消息   java Slick动画每帧必须有一个持续时间   java无法在Trie中设置isLeaf标志   java为什么JVM不能创建包含main方法的类的对象,以便从该类访问main方法,如果它具有该类的名称?   java Apache Camel+CXF端点身份验证