Create ZUGFeRD, Factur-X and XRechnung electronic invoices in .NET
EvoPdf Next produces hybrid electronic invoices: a PDF/A-3 document that shows the invoice as a page a person reads and carries the same invoice as an XML file that accounting software reads automatically. Render the page from your HTML template or from a Word document, load the invoice XML and the library embeds it with the metadata the standard prescribes. The profile is read from the XML, from MINIMUM to EXTENDED and XRECHNUNG, with Order-X for purchase orders. With PDF/UA-1 the invoice is also accessible. The library runs on Windows, Linux and macOS, including Azure, AWS, Google Cloud and Docker.
Version 15.0.3. Building EVO PDF libraries since 2010. Evaluate without registration; the demo output is watermarked until you set a license key. Included in the HTML to PDF Converter license.
Documentation · Electronic invoices from Word · Samples and demos on GitHub
dotnet add package EvoPdf.Next.HtmlToPdf.Windows
This is the Windows package; EvoPdf.Next.HtmlToPdf.Linux and EvoPdf.Next.HtmlToPdf.MacOS work the same way, or use the all-components EvoPdf.Next.* metapackage for your platform.
using EvoPdf.Next; // the profile and the document type are read from the XML var invoice = ElectronicInvoice.FromFile("invoice.xml"); var converter = new HtmlToPdfConverter(); converter.PdfDocumentOptions.PdfStandard = PdfStandard.PdfUa1PdfA3a; converter.PdfDocumentOptions.AddElectronicInvoice(invoice); byte[] pdf = converter.ConvertHtml(invoiceHtml, baseUrl);
- Windows 10, 11 and Windows Server 2016 to 2025 (x64 and ARM64)
- Linux 64-bit distributions (x64 and ARM64)
- macOS 12.0+ (Apple Silicon / ARM64)
- .NET 10.0, 9.0, 8.0, 7.0, 6.0, .NET Standard 2.0
- .NET Framework 4.6.2 to 4.8.1
- Azure App Service, Functions and Container Apps
- AWS Elastic Beanstalk, Lambda and ECS
- Google Cloud Run and Kubernetes
- Web, console and desktop applications
One PDF, two readers
A hybrid invoice carries the invoice twice in one file: the page a person reads and the XML an accounting system imports. EvoPdf Next renders the page and embeds the XML in three steps.
Render the invoice page
Convert your invoice HTML template with the HTML to PDF Converter, or convert the invoice from a Word document. Set the PDF standard to PDF/A-3b, PDF/A-3u, PDF/A-3a or PDF/UA-1 + PDF/A-3a, the carrier every electronic invoice needs.
Load the invoice XML
ElectronicInvoice.FromXml or FromFile reads the XML your accounting or ERP system produced. The profile, the document type and the invoice number are taken from the XML itself and exposed as properties, so there is nothing to select and nothing to keep in sync.
Get a compliant PDF/A-3
AddElectronicInvoice embeds the XML with the file relationship and the metadata the standard prescribes, the identification the receiving software looks for. Set the viewer page mode to open the Attachments panel, so the embedded XML is visible to the reader.
Supported profiles and document types
Factur-X and ZUGFeRD
Factur-X and ZUGFeRD are the French and the German name of the same format. Invoices are embedded in every profile of the standard:
Order-X
Purchase orders, order changes and order responses travel the same way, with the Order-X profiles:
Document types
Commercial invoices, credit notes, corrected invoices, self-billed invoices and credit notes, prepayment and partial invoices. The document type is read from the XML and exposed by the DocumentType property.
PDF standards and XML syntax
The invoice is embedded in PDF/A-3b, PDF/A-3u, PDF/A-3a or PDF/UA-1 + PDF/A-3a documents. The XML uses the UN/CEFACT Cross Industry Invoice syntax of Factur-X, ZUGFeRD 2 and XRechnung and is embedded as given. The Relationship property states how the XML relates to the page, Alternative by default.
Invoice pages from HTML, Word or code
The same ElectronicInvoice object is accepted by every converter and by the Core PDF API, so the invoice page can come from the template you already have.
PdfDocument.AddElectronicInvoiceAPI referencePdfEditor.AddElectronicInvoiceAPI referenceThe Excel, RTF and Markdown to PDF converters embed an electronic invoice the same way as the Word converter.
Accessible invoices
With the PdfUa1PdfA3a standard the invoice page is also a PDF/UA-1 document, readable with screen readers and assistive technologies, as the European Accessibility Act requires for the invoices delivered to consumers. The tagged structure follows the headings, tables and images of your HTML or Word document; the HTML should use headings, tables with header cells and alternate text for images.
Accessible PDF/UA documents in .NET → · PDF/UA and PDF/A demo →
Ready for the French and German mandates
Both countries now require structured electronic invoices between businesses and both accept the hybrid format EvoPdf Next produces.
France: Factur-X
Since September 1, 2026 every business established in France must be able to receive structured electronic invoices through an accredited platform. Large and mid-sized companies issue them from the same date and small and medium-sized companies from September 1, 2027. Factur-X is one of the accepted formats; the EN 16931 profile carries the complete invoice.
Germany: ZUGFeRD and XRechnung
Since January 1, 2025 every business in Germany must be able to receive electronic invoices. Issuing them becomes mandatory on January 1, 2027 for businesses with a turnover above 800,000 EUR and on January 1, 2028 for all. XRechnung and ZUGFeRD invoices that conform to EN 16931 are accepted; the XRECHNUNG profile serves the public sector.
Install and run on Windows, Linux and macOS
The HTML to PDF Converter uses a platform-specific runtime shipped inside the NuGet package. Windows and macOS need nothing else; on Linux a few system packages may be required, depending on the distribution: the Getting Started guides list them.
Windows
Windows 10, 11 and Windows Server 2016–2025, x64 and ARM64. No additional dependencies.
Getting Started on Windows →Linux
64-bit distributions, x64 and ARM64. The guide lists the system packages per distribution.
Getting Started on Linux →macOS
macOS 12 and later on Apple Silicon (ARM64). No additional dependencies.
Getting Started on macOS →Docker
Complete Dockerfiles for Linux (x64, ARM64) and Windows Server containers, with the runtime dependencies and the build commands.
Docker page →Azure
App Service and Functions on Windows and Linux, from code or a container image, Container Apps and AKS: plan sizing and the Linux setup.
Azure page →AWS
Elastic Beanstalk on Amazon Linux 2023 and Windows Server, Lambda functions and ECS on Fargate: the configuration file, the Dockerfiles, sizing.
AWS page →Google Cloud
Cloud Run services in both execution environments and GKE: the Dockerfile, Artifact Registry, the deploy command, sizing.
Google Cloud page →Included in the HTML to PDF Converter license
Electronic invoices from HTML and from code are covered by the HTML to PDF Converter license, which includes the Core PDF API: 450 USD for a Deployment License (one application on a single server) or 1200 USD for a Company License (unlimited developers, applications and servers, redistributable). Invoice pages from Word, Excel, RTF or Markdown documents need the EVO PDF Toolkit, 650 USD or 1400 USD, which covers every component on this site. All licenses are perpetual, with updates and support for the first year.
Electronic invoices in EvoPdf Next
Do I have to select the ZUGFeRD or Factur-X profile?
The profile is read from the invoice XML, together with the document type and the invoice number. Load the XML with ElectronicInvoice.FromXml or FromFile and the library writes the metadata that matches it, whether the XML is a MINIMUM invoice, an EN 16931 credit note or an Order-X purchase order.
Where does the invoice XML come from?
Your accounting or ERP system produces it, or you generate it with any serializer for the Cross Industry Invoice syntax. EvoPdf Next embeds the XML as given, so the data the receiving software imports is exactly the data you validated on your side.
Can I add the invoice XML to a PDF I already have?
Yes, with PdfEditor.AddElectronicInvoice, provided the source document is already a PDF/A-3 document. For documents created from scratch with the Core PDF API use PdfDocument.AddElectronicInvoice; one electronic invoice can be added to a document, next to any other file attachments.
Does the invoice page have to come from HTML?
It can come from HTML, from a Word, Excel, RTF or Markdown document or from code. The HTML to PDF Converter is the usual choice when the invoice is already an HTML template; the Word to PDF Converter takes a DOCX invoice and keeps its fonts, headers and footers.
Which PDF standard does an electronic invoice need?
A PDF/A-3 document: PDF/A-3b, PDF/A-3u or PDF/A-3a. With PDF/UA-1 + PDF/A-3a the same file is also an accessible invoice, which the European Accessibility Act requires for invoices delivered to consumers.






