# 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
```