What brevier prints, and when

Every feature on this page carries its status. Available means it is in the code today. In 1.0 means it ships with the first release. Planned means it is decided but not scheduled.

Write the template

  • HTML and CSS templates

    Status: Available

    The page is HTML with CSS. No proprietary format, no drawing code.

  • Markdown for simple documents

    Status: Available

    Write a letter in Markdown with front matter. brevier eject turns it into the HTML it compiles to.

  • Data binding

    Status: Available

    Handlebars syntax binds JSON into the template: values, loops and conditions.

  • Money, date and number formats

    Status: Available

    Amounts and dates print the way German and English readers expect.

  • The visible middle

    Status: Available

    --emit-html writes the exact HTML the engine received, and --format html renders a web view of the same document.

  • Templates checked against a schema

    Status: Available

    A misspelt field fails the check before anything prints.

Print the page

  • German and English hyphenation

    Status: Available

    Compound words break at their joins: Berufsunfähigkeits-versicherung, not Beruf-sunfähigkeit. Companies can add their own words.

  • Field types and a data cleaner

    Status: Available

    Each field is text, multiline, rich or raw. Stray <br/>, &nbsp; and double spaces are cleaned per field.

  • Tables that span pages

    Status: Available

    Declared column widths and a header row that repeats on every page.

  • Übertrag

    Status: Available

    The running total is carried to the bottom of each page and to the top of the next.

  • Headers, footers and page counters

    Status: Available

    Seite 3 von 12, in one editable block, on every page.

  • Contracts and fine print

    Status: Available

    Numbered clauses, a table of contents with page numbers, and small print that stays readable. No heading is left alone at the bottom of a page.

  • DIN 5008 letters and invoices

    Status: In 1.0

    The address sits in the envelope window, with fold marks and the reference line where German offices expect them.

  • One brand file

    Status: In 1.0

    brand.yml holds the logo, colours and fonts. brand check finds missing glyphs and weak contrast.

  • PDF/A-3b for archiving

    Status: In 1.0

    Every PDF is PDF/A-3b and passes veraPDF.

  • ZUGFeRD and Factur-X e-invoices

    Status: In 1.0

    The invoice XML is bound from the same data as the page, so the two cannot disagree.

Bring what you have

  • from-code: start from your classes

    Status: Available

    Reads Java classes or Python models and writes a schema, a template and sample data.

  • Import JasperReports

    Status: In 1.0

    .jrxml files become an HTML template and a JSON Schema.

  • Import Word

    Status: In 1.0

    .docx files and their mail-merge fields become an HTML template and a JSON Schema.

  • Import AcroForm PDFs

    Status: In 1.0

    The forms iText fills today become templates, with their fields as a schema.

Run it in your pipeline

  • brevier lint

    Status: In 1.0

    Finds overflowing text, squeezed columns, hyphen runs and missing glyphs, each pointing at a line of the HTML. Runs in CI.

  • Three ways to install

    Status: Available

    pip, a Docker image, or a one-line script for Linux, macOS and Windows.

  • brevier preview

    Status: In 1.0

    Re-renders in the browser every time you save.

  • brevier serve

    Status: In 1.0

    Runs the engine as a service for your applications.