Direkt zum Hauptinhalt

PDF Cups für linux Terminalserver / nomaschine Drucker auf Client umleiten

Beschreibung:

Druckumleitung auf Terminalserver / nomaschine funktioniert nicht.
Wir können aber vom Client auf ein Verzeichnis vom Terminalserver zugreifen zum beispiel per sftp oder nomachine Verzeichnisumleitung.

Mittels CUPS PDF werden alle Dateien im Homeverzeichnis im Verzeichnis PDF gespeichert.
Auf dem Client läuft ein Script was diesen ordner beobachtet und wenn PDFs drin sind diese dann an den angebenen Druckewr sendet.

Durchführung:

Auf dem Server:

Cups printer installieren

sudo apt-get install printer-driver-cups-pdf 

Alle Dokumente werden unter 

~/pdf

abgespeichert. Vom Client aus dieses Verzeichnis mounten. Via sftp oder nomachines Laufwerkdurchreiche selbst, nextcloud
oder oder oder....

Auf dem Client:

Dem Autoprint script Namen den Benutzer dran hängen

sudo mkdir -p /usr/local/bin
sudo nano /usr/local/bin/auto-print-<benutzername>.sh

Inhalt:

Die Variablen Watch Dir und Printer Name anpassen

#!/bin/bash

# --- Konfiguration ---
WATCH_DIR="/home/<benutzername>/Schreibtisch/Stamm/home/<benutzername-terminalserver>/PDF"         # Oder /var/spool/cups-pdf/duffy je nach Setup
PRINTER_NAME="TOSHIBA"        # Dein CUPS-Druckername (mit 'lpstat -p' prüfen)

# --- Endlosschleife ---
while true; do
    for file in "$WATCH_DIR"/*.pdf; do
        [ -e "$file" ] || continue  # Kein PDF vorhanden? Dann weiter

        echo "Drucke: $file"
        lp -d "$PRINTER_NAME" "$file" && rm -f "$file"
    done
    sleep 5  # alle 5 Sekunden prüfen
done

Ausführbar machen

sudo chmod +x /usr/local/bin/auto-print.sh

Systemd erstellen für den jeweiligen benutzer

sudo nano /etc/systemd/system/auto-print-<benutzername>.service

Inhalt:

Auch hier im Dateinamen den Benutzer anpassen

[Unit]
Description=Automatischer PDF-Drucker
After=network.target

[Service]
ExecStart=/usr/local/bin/auto-print-<benutzername>.sh
Restart=always
User=duffy
Environment=HOME=/home/<benutzername>
WorkingDirectory=/home/<benutzername>

[Install]
WantedBy=multi-user.target

Service aktibieren und starten, auch hier den benutzernamen wieder anpassen

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable --now auto-print-<benutzername>.service