python zugferd xml实现
drafthorse的Python项目详细描述
这是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”)所有,并在允许将它们与其他软件免费捆绑在一起的专有许可下发布。