Manual
eInvoice Viewer — VisualizerInstall, work, configure
invoicePress / Manuals / eInvoice Viewer — Visualizer

eInvoice Viewer — Visualizer – Manual

Applies to version 1.9.0, for the plugin and for the add-on of the viewer app. As of 22.10.2026.

1 · Overview

The Visualizer is an add-on for the WordPress plugin "eInvoice Viewer for PEPPOL & EN16931". The viewer shows an e-invoice in a view made for the screen. The Visualizer additionally shows the same invoice as a printable document in one of five layouts and offers it as a PDF file for download. The PDF carries the original invoice XML embedded in it.

The add-on is meant for everyone who wants to print, file, pass on or show an e-invoice to someone who expects a familiar invoice image: accounting, clerks, auditors, tax firms and the operators of portals that offer their visitors a viewer.

What the Visualizer can do:

  • It shows the invoice that is open in the viewer in one of five print-oriented layouts: Kontor, Ledger, Leiste, Business Central and Norm.
  • It opens the chosen layout as a print view of its own with a button "Print" that calls the browser's print dialog.
  • From the chosen layout it produces a PDF file in the format PDF/A-3, in which the original invoice XML is embedded.
  • It fits into the viewer's toolbar. The viewer's own view stays as it is.
  • It runs entirely on your own server, without requests to the outside and without a third-party service.

What the Visualizer cannot do:

  • It does not work without the viewer. It has no shortcode of its own and no upload field of its own.
  • It has no settings page. You can bring neither a logo nor your own colours, fonts or texts into the layouts, and you cannot create a layout of your own.
  • The language of a layout cannot be chosen separately from the site. All five layouts follow the language of the page, German, English or French; for any other language they appear in German.
  • It does not check the invoice for validity. It shows what the viewer has read.
  • It invents no invoice data. The XML in the PDF is always the original file and is never derived anew from the drawn sheet.
  • It stores nothing. There is no list of produced documents and no archive.

Requirements:

RequirementValue
WordPress5.8 or newer (checked up to 7.1)
PHP8.2 or newer
Plugin"eInvoice Viewer for PEPPOL & EN16931", installed and active
Further softwarenone; the library mPDF, with which the PDF is produced, is included in the add-on
LicenceGPLv2 or later
Screenshot missingscreenshots/vz-werkzeugleiste.en.pngThe viewer's toolbar above an opened sample invoice, with the choice of the five layouts and the button "Visualizer"
The viewer's toolbar above an opened sample invoice, with the choice of the five layouts and the button "Visualizer"

2 · Installation

The Visualizer is a paid product. You receive it as a ZIP file through the shop on invoicePress.de. It is not available in the WordPress.org plugin directory.

Way A: upload the ZIP file

Way B: put the folder in place

Note: There is nothing to set after activation. No licence key is asked for.

Way C: in the viewer app

For the viewer app the add-on is a ZIP file of its own in the shop. There it draws the layouts entirely in the browser, without WordPress and without a server.

The app creates no PDF file. In the browser's print dialog you can still save the invoice as PDF.

Updating

You receive a new version again as a ZIP file. You install it the same way as the first one; when putting the folder in place, you replace the existing folder completely. Since the add-on has no settings of its own, nothing is lost.

Removing

Deactivate the plugin on the page Plugins and delete it there. The choice of layouts disappears from the toolbar, and the viewer keeps working unchanged. The add-on creates no settings of its own and stores no invoices, so no invoice data remain. The design kit choice ( option einvoice_design_kit ) is a shared setting of all eInvoice tools on your site; it stays, because it does not belong to the Visualizer alone.

3 · First steps

Screenshot missingscreenshots/vz-werkzeugleiste.en.pngThe viewer's toolbar above an opened sample invoice, with the choice of the five layouts and the button "Visualizer"
The viewer's toolbar above an opened sample invoice, with the choice of the five layouts and the button "Visualizer"
Screenshot missingscreenshots/vz-druckansicht.en.pngThe tab "Layout" in the viewer with the button "Print" at the top right, below it the sample invoice in the layout Kontor
The tab "Layout" in the viewer with the button "Print" at the top right, below it the sample invoice in the layout Kontor

4 · Working with the Visualizer

Choosing a layout

As soon as the add-on is active, the viewer's toolbar offers five layouts to choose from. Each layout shows exactly the invoice data the viewer has read. The invoice is not uploaded a second time for this: the viewer hands over the data it has already read.

Entry in the choiceWhat it is
Kontor (DIN 5008)business letter with fold marks according to DIN 5008, for printing or sending by post
Ledger (international)international layout in the style of an audit report
Leiste (Info rail)compact layout with an information rail for a dense overview
Business Central stylemodelled on the invoice image of Microsoft Dynamics 365 Business Central
Norm (ZUGFeRD-Muster)the sample presentation of an invoice from the ZUGFeRD specification, pages 91 and 92

All five layouts are labelled in the language of the page: German, English or French. On a page in another language they appear in German. Units, countries and tax categories stand there with their name only, for example "3 m²" instead of "3 MTK - m²".

Kontor

Kontor sets the invoice as a German business letter with fold marks according to DIN 5008. You take it when the invoice is to be printed, folded and filed or sent by post.

Screenshot missingscreenshots/vz-layout-kontor.en.pngA sample invoice in the layout Kontor: business letter with address field and fold marks at the left edge
A sample invoice in the layout Kontor: business letter with address field and fold marks at the left edge

Ledger and Leiste

Ledger is an international layout in the style of audit documents. The tax category stands there as text. Leiste is a compact layout with an information rail that shows many details densely on one sheet.

Screenshot missingscreenshots/vz-layout-ledger.en.pngA sample invoice in the layout Ledger
A sample invoice in the layout Ledger
Screenshot missingscreenshots/vz-layout-leiste.en.pngA sample invoice in the layout Leiste with the information rail
A sample invoice in the layout Leiste with the information rail

Business Central

This layout is modelled on the invoice image of Microsoft Dynamics 365 Business Central. It fits if your documents otherwise come from this environment and should look uniform.

Screenshot missingscreenshots/vz-layout-businesscentral.en.pngA sample invoice in the layout Business Central
A sample invoice in the layout Business Central

Norm

Norm reproduces the sample presentation of an invoice that stands in the ZUGFeRD specification on pages 91 and 92. It shows the 25 details that § 14 of the German VAT Act ( UStG ) requires on an invoice, each bound to its business term of the standard. Norm looks the same on screen, in print and as a PDF, because all three are produced from the same layout description. It uses a sans-serif font throughout, puts postcode and city on one line, gives quantities with their unit and prices with at least two decimals, right-aligns the totals and carries page numbers. Norm writes numbers and dates as the language of your site prescribes.

Screenshot missingscreenshots/vz-layout-norm.en.pngA sample invoice in the layout Norm, like the sample invoice of the ZUGFeRD specification
A sample invoice in the layout Norm, like the sample invoice of the ZUGFeRD specification

The print view and the button "Print"

The print view is a self-contained document in the tab "Layout". Above it stands the button "Print". It calls your browser's print dialog; there you choose a printer or "Save as PDF". The bar itself is not printed. Its look follows the design kit chosen for the eInvoice tools of your site. The sheet below is not affected by it.

Note: A PDF that you save through the browser's print dialog contains no embedded XML. "Download as PDF" exists for that.

Download as PDF

"Download as PDF" produces a PDF file in the chosen layout on your server and delivers it as a download with the file name invoice.pdf. The file is built as PDF/A-3 (conformance level B) and carries the invoice XML as an attachment. The attachment panel is set so that a PDF program shows it on opening.

Where the XML comes from depends on the loaded file:

  • If you loaded a ZUGFeRD or Factur-X PDF, the XML embedded in it is extracted and embedded again unchanged.
  • If you loaded a CII or UBL file, this file itself is embedded.

The XML is never derived anew from the drawn sheet. For this step the browser sends the original file to your server once more, next to the data it has read.

Screenshot missingscreenshots/vz-pdf-anhang.en.pngThe downloaded PDF in a PDF program: on the left the attachment panel with the embedded XML file, on the right the invoice in the chosen layout
The downloaded PDF in a PDF program: on the left the attachment panel with the embedded XML file, on the right the invoice in the chosen layout

Empty fields and missing totals

A field without a value is printed with a dash in the layouts instead of disappearing. This also applies to the fields "Global identifier" and "Identifier scheme" of seller, buyer, payee and delivery. A total that the invoice does not state stays empty and is not shown as 0.00. If a party carries a simple and a global identifier, the layouts show both separately. Allowances and charges of a line form one full-width table per line.

Switching it off on one page

In the shortcode of the viewer you switch off on a single page what this add-on shows, for example [spev_einvoice_viewer button_spev_visualizer="no"]. Without the attribute everything stays on.

SwitchWhat the page leaves out
button_spev_visualizerthe button "Visualizer"
button_spev_visualizer_pdfthe button "Download as PDF"
tab_visualizerthe tab "Layout"; a click on "Visualizer" then shows nothing, so better switch off the button

A switch only takes something off this page. Who may use the add-on at all is set with "Available from role" in the settings of the viewer. The viewer app uses the same names in config.js, for example features: { tab_visualizer: false }. Only the value false without quotes switches off.

5 · Settings

The Visualizer has no settings page of its own and no options of its own. There is only one setting that touches its look, and it is shared by all eInvoice tools:

SettingDefaultEffect
Design kit of the eInvoice tools (under eInvoice Viewer → Viewer, that is, on the viewer's page)Kit HDecides the look of the bar above the print view and of the button "Print". The choice applies to all eInvoice tools of the site. The print layout itself and the PDF do not change because of it.

Note: Only if no eInvoice plugin with a settings page of its own is active does this choice appear under Settings → General. Since the Visualizer requires the viewer, you normally find it on the viewer's page.

Shortcodes

The Visualizer brings no shortcode of its own. It appears wherever the viewer's shortcode stands:

[spev_einvoice_viewer]

The viewer's manual describes the attributes of this shortcode.

Available from role

On the page eInvoice Viewer → Viewer you choose under "Add-ons available from role" from which role the Visualizer appears in the viewer. Visitors below this role see neither the choice of layouts nor "Download as PDF", and the server answers a request built by hand with "This add-on is not available for your account." The choice exists from the viewer 2.35.0.

Switching off the PDF button

You can switch off the PDF download only with a filter in the source code, not with a setting. The example stands in chapter 10.

6 · Special cases

You want to file an XRechnung and need a sheet of paper. Load the invoice into the viewer, choose "Kontor (DIN 5008)", open the print view and press "Print". The fold marks help with folding and punching.

You want to pass on a pure XML invoice as one file that anyone can open. Load the CII or UBL file, choose a layout and download the PDF. The recipient sees the invoice as a sheet, and the original XML sits as an attachment in the same PDF.

You have a ZUGFeRD PDF whose visual image is hard to read. Load the PDF, choose a layout and download the new PDF. The sheet is set anew; the embedded XML is the same as in the original PDF.

You want to show the invoice to a foreign business partner or auditor. Open the viewer on the English or French version of your site, if there is one. All five layouts and the PDF then appear in that language.

You want to show that an invoice carries the mandatory details according to § 14 UStG. Choose Norm. The layout shows the 25 required details in the arrangement of the sample invoice from the ZUGFeRD specification.

You run a public portal and want to offer the layouts but have no PDF produced on your server. Switch off the PDF download with the filter from chapter 10. The print view with the button "Print" stays.

7 · Working with other packages

PackageRelationshipWhat results
eInvoice Viewer for PEPPOL & EN16931requirementThe viewer reads the invoice and provides the toolbar. The Visualizer hooks its choice in there and shows exactly the data that were read.
Design kit of the eInvoice toolsshared settingThe kit chosen on the site decides the look of the bar above the print view.
eInvoice Viewer — Exporterindependent add-on for the viewerIt adds a button "Export to Excel" to the viewer. Both add-ons work with the invoice open in the viewer and do not need each other.
Validators (eInvoice Validator for KoSIT, for Mustang, for VAMPIRE)independent packagesThey check an invoice for validity. The Visualizer does not check.

The layouts show the fields of EN 16931. The additional fields of the "Extended Profiles" add-on do not appear in them; none of the five layouts binds a field of an extension.

8 · Troubleshooting

The table gives the messages as they appear on an English site.

SignCauseRemedy
The plugin cannot be activated.The viewer is not installed or not active.Install and activate "eInvoice Viewer for PEPPOL & EN16931", then activate the Visualizer.
The choice of layouts is missing in the toolbar.The Visualizer is not active, or no invoice is loaded yet.Activate the plugin, reload the page, load an invoice.
Single visitors see no choice of layouts; a request ends with "This add-on is not available for your account."Their role lies below the role chosen for the Visualizer under "Add-ons available from role".Choose a lower role on the viewer's settings page.
"Security check failed. Please reload the page."The page's security token has expired or is invalid.Reload the page and load the invoice again.
"Unknown layout."The request names a layout that does not exist.Reload the page and choose a layout from the choice.
"No invoice model received." or "The invoice model could not be read. Please try again."The invoice data that were read did not reach the server, or reached it incompletely.Load the invoice again and try once more. If it persists, check the server's size limits for requests.
"No file received.", "The upload failed. Please try again." or "The file could not be read." with the PDFThe original file did not reach the server for embedding.Load the invoice again and try once more; check the server's limit for file uploads.
"The uploaded PDF does not contain a readable e-invoice."The loaded PDF contains no readable embedded XML.Use a ZUGFeRD or Factur-X PDF or the XML file itself.
"The PDF export is not enabled on this site."The PDF download is switched off on this site through the filter.Ask the site's operator or remove the filter. The print view stays available.
"The PDF could not be produced as PDF/A-3 with the embedded XML: …"The library could not embed the XML into the PDF; the reason stands after the colon.Check the reason given. The print view with "Print" remains as a way out.
"The e-invoice reading library is not installed. Please reinstall this plugin.", likewise for the PDF rendering library and the e-invoice embedding libraryThe plugin lacks bundled files, for example after an incomplete upload.Delete the plugin and reinstall it from the ZIP file.
The add-on appears in English although the site is German.In versions before 1.7.4 the translations were missing when network-activated and on older WordPress versions.Update the add-on.
A layout appears in a different language than expected.All layouts follow the language of the page; for a language other than German, English or French they appear in German. Before version 1.8.0, Kontor and Business Central were always German, Ledger and Leiste always English.Open the viewer on the version of the site in the desired language, or update the add-on.

9 · Privacy and security

What goes to the server. Unlike the display in the viewer, the layouts are produced on your server. To draw a layout, the visitor's browser sends the invoice data read by the viewer to your WordPress installation. For the PDF it additionally sends the original invoice file, so that its XML can be embedded.

What is stored. Nothing. The data are processed only for the duration of the one request. The result goes back to the browser as a page or as a PDF file; no copy stays on the server.

What goes to the outside. Nothing. The add-on makes no request to a third-party service. The PDF is produced with the bundled library mPDF on your server.

Who can use the function. The layouts and the PDF download are also available to visitors who are not logged in, just like the viewer itself, unless a role is chosen under "Add-ons available from role". Every request is checked with a security token (nonce). It is fetched fresh, so that the function also works on pages that come from a cache.

Caution: Because invoice data go from the browser to your server, your site should be reachable over HTTPS. On a public page every visitor creates computing load on your server with the PDF download; if you do not want that, switch off the PDF download (chapter 10).

10 · For developers

KindNameMeaning
Filter of the viewerspev_extension_allowedThe add-on asks this filter with the slug visualizer before it draws a layout or produces a PDF, and answers with status 403 on false. The viewer answers it from version 2.35.0 according to "Add-ons available from role"; without it the answer is always yes.
Filtersp_einvoice_viewer_pdf_export_enabledDefault true. If the filter returns false, the server refuses the PDF download with status 403. The filter is a switch for the operator and not a licence check.
AJAX actionspvz_nonceReturns a fresh security token for the action spvz_visualize. Also for visitors who are not logged in.
AJAX actionspvz_visualizeExpects nonce, model (the read invoice data as JSON) and layout by POST. Answers with JSON; on success a complete HTML document stands under html.
AJAX actionspvz_export_pdfExpects nonce, model, layout and the original file as file. On success the PDF file itself comes back (application/pdf, file name invoice.pdf), on failure JSON with a message.
Layout keysprint-kontor, print-ledger, print-leiste, print-businesscentral, print-normAllowed values for layout.
MethodSPVZ_Plugin::layout_options()Returns the layout keys with their labels in a fixed order.
MethodSPVZ_Plugin::pdf_export_enabled()Returns the result of the filter above.
ConstantsSPVZ_VERSION, SPVZ_FILE, SPVZ_DIR, SPVZ_URLVersion, main file, directory and URL of the plugin.
Text domaineinvoice-viewer-visualizerTranslations lie in the plugin's folder languages.

The server answers errors with the status values 400 (missing or unreadable input), 403 (security check, switched-off PDF download or a role below "Add-ons available from role"), 422 (invoice cannot be displayed or embedded) and 500 (missing library).

Switching off the PDF download, for example in a small plugin of your own:

add_filter( 'sp_einvoice_viewer_pdf_export_enabled', '__return_false' );

The produced PDF carries the entry "eInvoice Viewer — Visualizer" with the version number as an additional producer tool.

11 · Versions

VersionChange
1.8.0Kontor, Ledger, Leiste and Business Central are redesigned and appear in the language of the page: German, English or French. Units, countries and tax categories show their name only, for example "3 m²" instead of "3 MTK - m²".
1.7.4Invoices that name XRechnung 4.0 or EN 16931-1:2026 open and show their identifier. The bundled translations also appear when network-activated and on older WordPress versions. On the viewer's settings page you can choose from which role this add-on is available; this needs the viewer from 2.35.0.
1.7.3The button "Print" follows the design kit. Norm is reworked as a PDF and in the print view. Ledger, Kontor, Leiste and Business Central stay within the page in the browser and in the PDF; Ledger shows the tax category as text.
1.7.2UBL invoices according to the national adaptations for Portugal (CIUS-PT) and Romania (CIUS-RO) are read.
1.7.1For UBL invoices the layouts show the VAT amount in accounting currency and the address of an attachment; every invoice shows its tender reference. The package no longer lacks a file of a bundled library.
1.7.0The bar above the print view follows the chosen design kit.
1.6.5Totals that the invoice does not state stay empty instead of showing 0.00.
1.6.0New: the fifth layout Norm.
1.3.0New: "Download as PDF" with embedded XML.
1.2.0The button "Visualizer" no longer uploads the invoice a second time.
1.0.0First version with four layouts: Kontor, Ledger, Leiste, Business Central.

12 · List of images

This list shows which screenshots this manual expects and which were found in the folder screenshots/ of the package. An image is always named key.language.png, for example vz-werkzeugleiste.en.png. The images show sample data only.

StatusFileWhat it shows
–vz-werkzeugleiste.en.pngThe viewer's toolbar above an opened sample invoice, with the choice of the five layouts and the button "Visualizer"
–vz-werkzeugleiste.en.pngThe viewer's toolbar above an opened sample invoice, with the choice of the five layouts and the button "Visualizer"
–vz-druckansicht.en.pngThe tab "Layout" in the viewer with the button "Print" at the top right, below it the sample invoice in the layout Kontor
–vz-layout-kontor.en.pngA sample invoice in the layout Kontor: business letter with address field and fold marks at the left edge
–vz-layout-ledger.en.pngA sample invoice in the layout Ledger
–vz-layout-leiste.en.pngA sample invoice in the layout Leiste with the information rail
–vz-layout-businesscentral.en.pngA sample invoice in the layout Business Central
–vz-layout-norm.en.pngA sample invoice in the layout Norm, like the sample invoice of the ZUGFeRD specification
–vz-pdf-anhang.en.pngThe downloaded PDF in a PDF program: on the left the attachment panel with the embedded XML file, on the right the invoice in the chosen layout