@media print { @page:first { @top-right { content: none; } @top-left { content: none; } } @page { margin: 2cm 2.5cm 3cm 2.5cm; @top-left { content: element(headerIdentifier); vertical-align: bottom; } @bottom-left { content: element(footerIdentifier); vertical-align: top; width: 100%; } @bottom-right { content: element(companyIdentifier); vertical-align: top; margin-top: 4mm; width: 100%; } } } @-ro-preferences { page-layout: 1 column; initial-zoom: fit-page; } :root { font-family: sans-serif; } div.spacing { margin-top: 1.2em; } div.footer, div.header { font-size: 9pt; width: 100%; } div.footer { position: running(footerIdentifier); } div.header { position: running(headerIdentifier); } p.companyinfo { position: running(companyIdentifier); } div.header table { position: relative; } div.footer table, div.footer p { position: relative; } table.header-footer { padding: 0pt; text-align: right; border-collapse: collapse; background: #F8F8F8; width: 100%; } table.header-footer td:first-child { text-align: left; } table.header-footer td.subtotaltext { padding-right: 1.7em; } table.header-footer td.subtotaltext { position: absolute; right: 11.5em; } table.header-footer td.currency { position: absolute; right: 7em; } table.header-footer td.subtotal { position: absolute; right: 1.5em; } div.header td.subtotal::before { content: string(sum, start); } div.header td.invoicetext { width: 16cm; } div.header td.invoicetext::before { content: string(invoice, start); } div.header td.subtotaltext::before { content: string(subtotaltext, start); } div.header td.currency::before { content: string(currency, start); } div.footer td.subtotaltext::before { content: string(subtotaltext, last); } div.footer td.currency::before { content: string(currency, last); } div.footer td.subtotal::before { content: string(sum, last); } div.footer td.pagecounter::before { content: "Page " counter(page) "/" counter(pages); } p.companyinfo { background: white; border: 0.75pt solid white; } p.companyinfo { font-size: 6pt; color: #7F7F7F; text-align: center; } img.logo { height: 42pt; margin-bottom: 20pt; } div.companyinformation { text-align: right; font-size: 6pt; color: #7F7F7F; } div.addressline { font-size: 6pt; color: #7F7F7F; margin-bottom: 20pt; margin-top: -40pt; } div.recipient { font-size: 10pt; } div.descbox { float: right; width: 160pt; font-size: 8pt; } div.descboxheader { background-color: #F0F0F0; border: 0.75pt solid #777; text-align: center; font-size: 12pt; font-weight: bold; } div.descboxcontent { border-left: 0.75pt solid #777; border-bottom: 0.75pt solid #777; border-right: 0.75pt solid #777; } div.infotable { border: 0.75pt solid #777; margin-top: 0.5cm; margin-bottom: 0.5cm; } table.infotable { font-size: 8pt; width: 100%; } hr.floated { visibility: hidden; float: left; } table.postable { font-size: 9pt; width: 100%; border-collapse: separate; border-spacing: 0pt 10pt; margin-bottom: 5pt; } table.postable tbody tr:not(.postfooter ):nth-child(even) { background-color: #FAFAFA; } table.postable tr { break-inside: avoid; } hr.invisible { visibility: hidden; background: #fff; color: #fff; clear: both; margin: 0; } tr.postheader { background-color: #F0F0F0; padding: 4pt; } tr.transfer>td:first-child { overflow: hidden; } tr.tansfer>td { background-color: #F0F0F0; padding: 4pt; } tr.postheader td { white-space: nowrap; } tr.postfooter { background-color: #F0F0F0; padding: 4pt; } tr.postfootercontent { background-color: white; } td { vertical-align: top; } td.subtotal { text-align: right; padding-right: 5pt; font-weight: bold; } td.total { background-color: #fff !important; border: 0.75pt solid black; text-align: right; padding-right: 5pt; font-weight: bold; } td.right { text-align: right; width: 5em; padding-right: 0.5em; } p { font-size: 8pt; } p.terms { font-weight: bold; text-decoration: underline; font-style: italic; } body.main { string-set: subtotaltext "", sum "", currency ""; counter-reset: position; } div.sum-subtotal { string-set: sum self; visibility: hidden; position: absolute; } td.invoice { string-set: invoice "Invoice " self; } table.postable tbody tr:first-child { string-set: subtotaltext "Subtotal", currency "EUR"; } table.postable tbody tr:last-child { string-set: subtotaltext "", sum "", currency ""; } td.position { counter-increment: position; text-align: right; padding-right: 10pt; } td.position::before { content: counter(position); } div.posttext { break-inside: avoid; padding-top: 10pt; } .datamatrix { -ro-replacedelement: barcode; -ro-barcode-type: data-matrix; -ro-barcode-content: attr(message); }