# PDF Export mit QR-Code

<p class="callout success">getestet mit Version **24.02**</p>

## Anforderung

Ich wollte gerne die Möglichkeit haben, exportierte Daten einfach wieder in der digitalen Welt zu finden. Was ist dazu besser geeignet als ein **QR-Code**.

## betroffene Dateien

<p class="callout info">Dateien müssen sich in der entsprechenden Struktur unterhalb des Themes befinden.  
Ordner = *kursiv*  
Dateien = **fett**</p>

- *layouts*
    - *parts*
        - **export-body-start.blade.php**
- *entities*
    - **export-menu.blade.php**

## Inhalte der Dateien

<details id="bkmrk-export-body-start.bl"><summary>export-body-start.blade.php</summary>

Vor dem ersten `div`-Container muss hier folgendes eingetragen werden:

```
@inject('totp', 'BookStack\Access\Mfa\TotpService')

@php
$qrCode = $totp->generateQrCodeSvg($page->getUrl());
$imgStr = 'data:image/svg+xml;base64,' . base64_encode($qrCode);
@endphp
```

Im Anschluss kann an einer beliebigen Stelle das Bild an die PDF übergeben werden.  
Dazu muss folgender Abschnitt hinzugefügt werden:

```php
@if(request()->query('qr'))
    <div style="float: right;">
        <img width="50" src="{{ $imgStr }}" alt="{{ $page->getUrl() }}">
    </div>
@endif
```

</details><details id="bkmrk-revisions-index-row-"><summary>export-menu.blade.php</summary>

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:

```html
<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.

</details>## Screenshots

[![image.png](https://bookstack.jelinek-rz.de/uploads/images/gallery/2024-06/scaled-1680-/image.png)](https://bookstack.jelinek-rz.de/uploads/images/gallery/2024-06/image.png)