gflohr/e-invoice-eu
GitHub: gflohr/e-invoice-eu
免费开源的电子发票生成工具链,支持多标准格式并可集成到自动化工作流中。
Stars: 173 | Forks: 26
[](http://www.wtfplnet/)
[](https://github.com/gflohr/e-invoice-eu/blob/main/LICENSE)
[](https://coveralls.io/github/gflohr/e-invoice-eu?branch=main)
[](https://www.npmjs.com/package/@e-invoice-eu/core)
[](https://gflohr.github.io/e-invoice-eu)
[](https://notebooklm.google.com/notebook/f5783dde-ebe6-4610-bac1-f181fdf45f94)
[](https://github.com/GeiserX/awesome-europe#readme)
[](https://www.standwithukraineeurope.com/en/)
# E-Invoice-EU
免费且开源的电子发票生成工具链
(Factur-X/ZUGFeRD, UBL, CII, XRechnung) 从流行的电子表格格式或
JSON 格式使用免费且开源的软件生成。
- [为什么?](#why)
- [如何使用?](#how)
- [支持哪些格式?](#what)
- [项目描述](#description)
- [文档](#documentation)
- [验证](#validation)
- [已知问题](#bugs)
- [PDF/A 支持](#pdfa)
- [报告问题](#reporting-bugs)
- [版权声明](#copyright)
- [免责声明](#disclaimer)
## 为什么?
欧盟电子发票是强制性的,但大多数现有解决方案
是专有的、商业的、封闭的且成本高昂。E-Invoice-EU 采取了不同的方法:
- ✅ **100% 免费且开源** – 无许可费,无供应商锁定
- ✅ **符合标准** – EN16931、Factur-X、ZUGFeRD、UBL、CII、XRechnung
- ✅ **集成灵活** – 可使用命令行工具、REST API 或 TypeScript/JavaScript 库
- ✅ **现代 ERP 友好** – 基于 JSON 的输入/输出使其能轻松集成到任何当代 ERP 基础设施
- ✅ **已在生产环境验证** – 已被自由职业者到跨国企业广泛使用
无论您是需要每月自动化几张发票,
还是将电子发票集成到大型工作流中:E-Invoice-EU 都能为您提供可靠的基础。
## 如何使用?
有多种方式可以使用该软件:
- 一个命令行工具 `e-invoice-eu`
- 一个带有 RESTful API 的 [网络服务](apps/server/README.md)
- 一个 [JavaScript/TypeScript 库](packages/core/README.md)
JavaScript/TypeScript 库既可以在命令行下使用,也可以在
浏览器中使用。浏览器版本的唯一限制是无法从电子表格数据生成
PDF 格式的发票,因为这需要调用
[LibreOffice](https://www.libreoffice.org/),而这在浏览器中无法实现。
相反,您必须自行提供 PDF 版本(如果需要)。
[E-Invoice-EU 文档](https://gflohr.github.io/e-invoice-eu/)
包含一个 [完整的在线发票生成演示](https://gflohr.github.io/e-invoice-eu/en/docs/other/browser-example/)。
## 支持哪些格式?
您目前可以创建以下格式的电子发票:
- `CII`:定制 ID `urn:cen.eu:en16931:2017`
- `Factur-X-Minimum`:定制 ID `urn:factur-x.eu:1p0:minimum`
- `Factur-X-BasicWL`:定制 ID `urn:factur-x.eu:1p0:basicwl`
- `Factur-X-Basic-WL` 是 `Factur-X-BasicWL` 的别名
- `Factur-X-Basic`:定制 ID `'urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic'`
- `Factur-X-EN16931`:定制 ID `urn:cen.eu:en16931:2017`
- `Factur-X-Comfort` 是 `Factur-X-EN16931` 的别名
- `Factur-X-Extended`:定制 ID `urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended`
- `Factur-X-XRechung`:定制 ID `urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0`
- `UBL`:定制 ID `urn:cen.eu:en16931:2017`
- `XRECHNUNG-CII`:定制 ID `urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0`
- `XRECHNUNG-UBL`:定制 ID `urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0`
- `ZUGFeRD-Minimum` 是 `Factur-X-Minimum` 的别名
- `ZUGFeRD-BasicWL` 是 `Factur-X-BasicWL` 的别名
- `ZUGFeRD-Basic-WL` 是 `Factur-X-BasicWL` 的别名
- `ZUGFeRD-Basic` 是 `Factur-X-Basic` 的别名
- `ZUGFeRD-EN16931` 是 `Factur-X-EN16931` 的别名
- `ZUGFeRD-Comfort` 是 `Factur-X-EN16931` 的别名
- `ZUGFeRD-Extended` 是 `Factur-X-Extended` 的别名
- `ZUGFeRD-XRechnung` 是 `Factur-X-XRechnung` 的别名
格式名称不区分大小写。
## 项目描述
本仓库旨在帮助企业(尤其是法国和德国,以及欧盟其他地区)
仅使用免费且开源的软件创建符合 EN16931 的电子发票。
## 文档
请参阅 [E-Invoice-EU 在线文档](https://gflohr.github.io/e-invoice-eu/)。
博客文章
[使用免费且开源软件创建电子发票](https://www.guido-flohr.net/creating-electronic-invoices-with-free-and-open-source-software/)
或德文版本 [使用免费和开源软件生成电子发票](https://www.guido-flohr.net/elektronische-rechnungen-mit-freier-und-quelloffener-software-erzeugen/)
也提供了更深入的介绍!
您也可以使用文档进行交互式提问:
请访问 https://gflohr.github.io/e-invoice-eu/en/docs/basics/ai-supported-documentation/
或直接访问 https://notebooklm.google.com/notebook/f5783dde-ebe6-4610-bac1-f181fdf45f94。
## 验证
强烈建议验证所有传入和传出的电子发票。
请参阅 [验证](./contrib/validators) 获取详细信息。
另一个姊妹项目提供了更简单的选项:
[e-invoice-eu-validator](https://github.com/gflohr/e-invoice-eu-validator)。
## 已知问题
### PDF/A
Factur-X/ZUGFeRD 标准要求发票封装的 PDF 符合 PDF/A 规范。
如果不了解 PDF/A,请先搜索相关资料。
本库仅使用 [`pdf-lib`](https://github.com/cantoo-scribe/pdf-lib) 创建 PDF
并对 PDF 进行复杂的转换以实现 PDF/A 合规性。
这尚未经过充分验证,可能会失败。
如果遇到不符合 PDF/A 要求的 PDF,请
打开问题并附上匿名化的 PDF。
在此期间,您可以:
- 如果已安装 [GhostScript](https://www.ghostscript.com/),请使用以下命令转换为 PDF/A:`gs -dVERBOSE -dPDFA3 -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=OUTPUT_FILE.pdf PDFA_def.ps INPUT_FILE.pdf`
- 尝试使用 [LibreOffice](https://www.libreoffice.org/) 重新创建 PDF。
- 如果 LibreOffice 的默认设置不起作用,请启用 PDF/A 支持(在“常规”部分的 PDF 选项中)。
- 如果需要自动化,可以以无头模式在命令行中启动 LibreOffice:
`libreoffice --headless "-env:UserInstallation=file:///tmp/LibreOffice_Conversion_${USER}" --convert-to 'pdf:writer_pdf_Export:{"SelectPdfVersion":{"type":"long","value":"3"}}' SOURCE_FILE.ods`
在 Unix 系统上,`libreoffice` 应在 `$PATH` 中。
在 macOS 上,路径为 `/Applications/LibreOffice.app/Contents/MacOS/soffice`。
在 MS Windows 上,路径通常类似于 `C:\\Program Files\\LibreOffice\\libreoffice.exe`(欢迎修正)。
## 报告问题
请在 https://github.com/gflohr/e-invoice-eu/issues 报告问题。
## 版权声明
版权所有 (C) 2024-2026 Guido Flohr
,保留所有权利。
本软件根据
[WTFPL](http://www.wtfpl.net/) 许可证提供。
## 免责声明
本免费软件已尽最大努力编写,但如同所有软件,可能包含错误。
使用风险自担!
不提供任何担保,也不承担任何责任。标签:Awesome Europe, CII, E-Invoice, EN16931, EU, Excel, Factur-X, JSON, LibreOffice Calc, PDF/A, UBL, XRechnung, ZUGFeRD, 乌克兰支持, 免费, 发票生成, 帮助, 开源, 数据可视化, 文档, 标准合规, 欧洲, 电子发票, 自动化攻击, 覆盖率