PDF Export anpassen mit Header und Footer
getestet mit Version 24.0225.07
Anforderung
IchDie wollteStandard-PDF gerne die Möglichkeit haben, exportierte Daten einfach wieder in der digitalen Welt zu finden. WasSeite ist dazunicht besserwirklich geeignetansprechend, alsalso einwerden QR-Code.hier Header und Footer sowie Seitenzahlen eingefügt.
betroffene Dateien
Dateien müssen sich in der entsprechenden Struktur unterhalb des Themes befinden.
Ordner = kursiv
Dateien = fett
Inhalte der Dateien
export-body-start.blade.php
VorDie dem ersten div-ContainerDatei muss hieram folgendesEnde eingetragenwie werden:folgt aussehen:
@inject('totp',@if 'BookStack\Access\Mfa\TotpService')
@php
($qrCodeformat = $totp->generateQrCodeSvg($page->getUrl());
$imgStr == 'data:image/svg+xml;base64,'pdf')
<style media="print">
.print-header-footer base64_encode($qrCode){
position: fixed;
width: 100%;
@endphp}
Im.print-footer Anschluss{
kannposition: anfixed;
einerbottom: beliebigen-40px;
Stellewidth: das100%;
Bild}
an.print-header-footer-inner die{
PDFmax-width: übergeben840px;
werden.Dazumargin: muss0 folgenderauto;
Abschnittcolor: hinzugefügt#666;
werden:
@if(request().print-page-number:after {
content: "Seite "counter(page);
}
@page {
margin-top: 100px;
margin-bottom: 80px;
}
</style>
<div class="print-header-footer" style="top: -60px;">query('qr'))
<div class="print-header-footer-inner">
<div style="float: right;left; opacity: 0.8;">
<img width=height="50" src="data:image/png;base64,{{ $imgStr }}" alt="{{ $page->getUrl(base64_encode(file_get_contents(theme_path('images/logo.png'))) }}">
</div>
</div>
<div style="clear:both;"></div>
<hr style="color: #ccc;">
</div>
<div class="print-header-footer" style="bottom: -40px;">
<div class="print-header-footer-inner">
<div style="float: left; opacity: 0.8; font-size: 8pt; text-align: left">
© [Footer-Text links]
</div>
<div style="float: right; opacity: 0.8; font-size: 8pt; text-align: right">
<div class="print-page-number" style="opacity: 1"></div>
</div>
</div>
<div style="clear:both;"></div>
</div>
@endifexport-menu.blade.php
Hier muss nun einfach nach der Zeile gesucht werden mit dem Inhalt /export/pdf.
Danach die Zeile kopieren und den String ?qr=true anhängen an die selbe Stelle.
Es sollte dann wie folgt aussehen:
<ul refs="dropdown@menu" class="wide dropdown-menu" role="menu">
<li><a href="{{ $entity->getUrl('/export/html') }}" target="_blank" class="label-item"><span>{{ trans('entities.export_html') }}</span><span>.html</span></a></li>
<li><a href="{{ $entity->getUrl('/export/pdf') }}" target="_blank" class="label-item"><span>{{ trans('entities.export_pdf') }}</span><span>.pdf</span></a></li>
<li><a href="{{ $entity->getUrl('/export/pdf?qr=true') }}" target="_blank" class="label-item"><span>{{ trans('entities.export_pdf') }} + QR</span><span>.pdf</span></a></li>
<li><a href="{{ $entity->getUrl('/export/plaintext') }}" target="_blank" class="label-item"><span>{{ trans('entities.export_text') }}</span><span>.txt</span></a></li>
<li><a href="{{ $entity->getUrl('/export/markdown') }}" target="_blank" class="label-item"><span>{{ trans('entities.export_md') }}</span><span>.md</span></a></li>
</ul>In diesem Ausschnitt ist in Zeile 4 der neue Export Link hinzugefügt.
