Skip to main content
Introducing packages.sweber.dev
All posts
Release1 min read

Summand Pro 0.4.0 released

Summand Pro now writes a proper A4 PDF of every invoice: PDF/A-3b, selectable text, page numbers, the validation report and the original XML attached, so CII invoices stay valid ZUGFeRD files.

By Seya Weber

Summand Pro 0.4.0 is out. @weber-development/summand-read, summand-view and summand-inbox 0.4.0 are on GitHub Packages for licence holders.

Why

The HTML view of an invoice is fine on screen, but archives, tax advisors and approval workflows want a file. Until now that meant opening the view in a browser and printing it. With 0.4.0 Summand Pro writes the PDF itself, without a headless browser.

What is new in 0.4.0

A real A4 PDF of every invoice. invoiceToPdf() from @weber-development/summand-view/pdf renders the same content as the HTML view: seller and buyer, references, the line items, allowances and charges, the VAT breakdown, totals, payment details, notes and the validation report.

  • Long invoices break across pages with the table header repeated on every page, and every page has a footer with "Seite X von Y" (or "Page X of Y").
  • The text stays selectable and searchable. German umlauts, ß and the euro sign are covered by an embedded font.
  • The output is PDF/A-3b, checked with veraPDF on all of our sample invoices.
  • The original XML is attached to the PDF. For CII invoices (ZUGFeRD, Factur-X, XRechnung CII) the PDF is a valid ZUGFeRD carrier again. UBL invoices get the XML attached too, but UBL cannot be ZUGFeRD.
import { invoiceToPdf } from "@weber-development/summand-view/pdf";

const pdf = await invoiceToPdf(xml, { lang: "de" });

PDFs from the command line. summand-inbox incoming --pdf pdfs --lang de writes one PDF for every valid, non-duplicate invoice. A PDF never replaces one of the files that were checked.

The PDF is a view of the invoice, not the issuer's own layout. The XML stays the binding document, and the footer says so.

Next

Summand Pro will be able to write e-invoices, not only read them. The free package is getting the Peppol BIS Billing rules once their licence is cleared.

Licence holders upgrade with pnpm add @weber-development/summand-view@latest. New to Summand Pro? See pricing and licences.

Package in this post

Summand

Validate XRechnung, ZUGFeRD and Factur-X e-invoices against EN 16931 in pure TypeScript: in Node, the browser and at the edge, without Java.

pnpm add @sweberdev/summand
View package

Related posts

Release

Summand Pro 0.2.0 released

Summand Pro now watches your inbox folder, sorts every new e-invoice into valid, invalid and duplicate, and exports valid purchase invoices as a DATEV booking batch for your tax advisor.

Summand
Release

Summand Pro 0.3.0 released

Summand Pro now fetches e-invoices straight from a mailbox, over IMAP or Microsoft 365, and drops them into the watched inbox folder. Summand Pro is now on sale.

Summand
Release

Summand 0.2.0 released

Summand now speaks German: every EN 16931 rule and every Summand check can be reported in German, from code with lang: "de" or in the CLI with --lang de.

Summand