Dieses Projekt bietet einen lokalen Hintergrunddienst (Go) und eine Weboberfläche (HTML/JS), um automatisiert E-Mail-Druckaufträge entgegenzunehmen und auf dem Standarddrucker auszugeben.
- Go (Golang): Muss auf dem System installiert sein, um den Dienst zu kompilieren/auszuführen.
- PDFtoPrinter: Ein kleines Kommandozeilen-Tool für Windows, um PDFs lautlos zu drucken, da das Windows-native
Start-Processoft fehlerhaft mit PDFs umgeht oder Fenster offen lässt.
- Lade dir die
PDFtoPrinter.exekostenlos hier herunter: http://www.columbia.edu/~em36/pdftoprinter.html - Lege die Datei
PDFtoPrinter.exeexakt in das gleiche Verzeichnis, in dem auch deinemain.go(bzw. später die kompilierte.exe) liegt. Alternativ kannst du sie nachC:\Windows\System32\kopieren, um sie systemweit verfügbar zu machen.
- Öffne ein Terminal (z.B. PowerShell) im Ordner des Projekts (
C:\Users\...\Projects\DMUN_druckservice). - Lade die notwendigen Go-Abhängigkeiten herunter:
go mod init druckservice go get github.com/emersion/go-imap go get github.com/emersion/go-imap/client go get github.com/emersion/go-message/mail
- Kompiliere das Programm (optional, aber empfohlen für Produktivbetrieb):
go build -o druckservice.exe main.go
- Starte das Programm:
Alternativ für Testzwecke:
.\druckservice.exego run main.go
- Das HTML-Portal (
index.html) wird von den Nutzern geöffnet. Es benötigt keinen Webserver, sondern kann lokal im Browser ausgeführt werden. - Nutzer wählen dort die Anzahl Kopien, Farbe/Schwarzweiß, Duplex (Einseitig, beidseitig Buch/Kalender) aus. Skalierung ist informativ für den Betreff.
- Das Portal öffnet das Standard-E-Mail-Programm und generiert einen formatierten Betreff (z.B.
SEK _X_3 _C_BW _D_2L _S_Fit - Besprechung). - WICHTIG: Aus Sicherheitsgründen lässt sich eine lokale Datei (z.B. PDF) nicht automatisch per Web-Link als Mail-Anhang anfügen. Der Nutzer muss sie händisch in das geöffnete Mail-Verfassen-Fenster ziehen.
- Der Go-Hintergrunddienst fragt per IMAP das verbundene Postfach ab.
- Findet er eine ungelesene Mail, extrahiert er Farbe, Duplex und Seitenanzahl aus dem generierten "Tag"-Code im Betreff (
_C_...,_D_...,_X_...). - Er passt temporär (per PowerShell) den Standarddrucker an und führt daraufhin mehrfach
PDFtoPrinter.exemit dem extrahierten PDF-Anhang aus.
Skalierung (z.B. "Fit to Page" vs. "100% Original") wird von Windows Set-PrintConfiguration nicht nativ unterstützt. Die PDF wird standardmäßig so an den Drucker gesendet, wie PDFtoPrinter es in seiner internen Rendering-Engine für optimal hält (in der Regel eine Seitenanpassung "Fit to Page").