minikurse:raspberry:pdf_automatisierung_mit_bash_und_cron_raspberry_pi_und_dokuwiki:start

Dies ist eine alte Version des Dokuments!


PDF-Automatisierung mit Bash & Cron – Raspberry Pi & DokuWiki

In diesem Mini-Kurs richtest du eine automatische PDF-Erzeugung für dein DokuWiki ein – ganz ohne manuelles Klicken. Das PDF wird täglich erstellt und auf deiner 32GB-SD-Karte gespeichert.

Lege ein neues Skript an, das dein gesamtes Kursmaterial als PDF exportiert:

sudo nano /home/pi/pdf_export.sh

Inhalt:

#!/bin/bash
# PDF-Export-Skript für DokuWiki mit dw2pdf
 
# Zielpfad für gespeicherte PDF-Datei
DATUM=$(date +%F)
ZIEL="/home/pi/pdf_exports/kursmaterial_${DATUM}.pdf"
 
# URL zum PDF-Export deiner Startseite
PDF_URL="http://localhost/doku.php?do=export_pdfbook&id=start"
 
# PDF generieren und lokal speichern
wget -O "$ZIEL" "$PDF_URL"

Dann ausführbar machen:

chmod +x /home/pi/pdf_export.sh

Damit der Webserver (www-data) und dein Pi-Nutzer (pi) beide auf das Webverzeichnis und den PDF-Ordner zugreifen können, richten wir gemeinsame Rechte ein. So sparst du dir künftig manuelles Rechte-Setzen im Terminal, und kannst direkt in FileZilla Ordner/Dateien anlegen und löschen.

sudo usermod -aG www-data pi
sudo chown -R www-data:www-data /var/www/html
sudo find /var/www/html -type d -exec chmod 2775 {} \;
sudo find /var/www/html -type f -exec chmod 664 {} \;
sudo chmod g+s /var/www/html

Ergebnis: Du kannst als <code>pi</code> direkt PDF-Dateien schreiben, Skripte anlegen oder Wiki-Dateien ändern – ohne <code>sudo</code>.

Jetzt einmal neu einloggen oder den Raspberry Pi neu starten, damit die Gruppenrechte aktiv sind.

mkdir -p /home/pi/pdf_exports

Wir erstellen eine individuelle PDF-Vorlage mit Logo, Deckblatt, Kopf- und Fußzeile.

sudo mkdir -p /var/www/html/lib/plugins/dw2pdf/tpl/odp

Pfad:

/var/www/html/lib/plugins/dw2pdf/tpl/odp/cover.html
<html>
  <head>
    <style>
      body {
        background-color: #e6f0fb;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        height: 100vh;
        font-family: sans-serif;
      }
      .logo {
        max-width: 400px;
        margin-bottom: 30px;
      }
      .title {
        font-size: 36pt;
        font-weight: bold;
        text-align: center;
      }
    </style>
  </head>
  <body>
    <img class="logo" src="@WIKIURL@lib/exe/fetch.php?media=odp-logo.png" alt="Logo" />
    <div class="title">PDF-Kursmaterial</div>
  </body>
</html>

Pfad:

  • /var/www/html/lib/plugins/dw2pdf/tpl/odp/header_even.html
  • /var/www/html/lib/plugins/dw2pdf/tpl/odp/header_odd.html
<div style="width: 100%; display: flex; justify-content: space-between; align-items: center; font-size: 10pt;">
  <img src="@WIKIURL@lib/exe/fetch.php?media=odp-logo.png" style="height: 20px;" />
  <div style="text-align: right;">
    [[@PAGE@]]
  </div>
</div>

Pfad:

  • /var/www/html/lib/plugins/dw2pdf/tpl/odp/footer_even.html
  • /var/www/html/lib/plugins/dw2pdf/tpl/odp/footer_odd.html
<div style="width: 100%; font-size: 8pt; text-align: center; color: #666;">
  © Copyright Olaf Droste Products, Immermannstr. 31, 44147 Dortmund
</div>

→ Admin → PDF Export (dw2pdf) → Wähle: odp → Speichern

Starte den Cronjob-Editor:

crontab -e

Füge am Ende diese Zeile ein:

0 0 * * * /home/pi/pdf_export.sh

Jetzt wird jeden Tag um Mitternacht automatisch dein PDF neu erstellt und in <code>/home/pi/pdf_exports/</code> abgelegt.

Wenn du beim PDF-Export folgende Fehlermeldung siehst: <code> mbstring extension must be loaded in order to run mPDF </code> … dann fehlt eine wichtige PHP-Erweiterung, die für den PDF-Export benötigt wird.

Installiere die Erweiterung einfach per Terminal:

sudo apt install php-mbstring -y
sudo systemctl restart apache2

Danach funktioniert der PDF-Export mit <code>dw2pdf</code> fehlerfrei.

Führe das Skript einmal manuell aus:

/home/pi/pdf_export.sh

→ Prüfe, ob die PDF-Datei im Zielordner liegt → Öffne sie – die Vorlage und das Layout sollten stimmen

Tipp: Du kannst das PDF später automatisch per FTP oder Webinterface bereitstellen – z. B. mit PHP oder Nextcloud.

  • minikurse/raspberry/pdf_automatisierung_mit_bash_und_cron_raspberry_pi_und_dokuwiki/start.1750956826.txt.gz
  • Zuletzt geändert: 2025/06/26 18:53
  • von strangelove