Einbinden eines Fax-Pseudodruckers zum Versand über ein Internet/Fax-Gateway

Aus LinuxUser 09/2004

Einbinden eines Fax-Pseudodruckers zum Versand über ein Internet/Fax-Gateway

Faxloses Büro

Obwohl alle Welt Faxgeräte zu besitzen scheint, kann sich der moderne Linux-Mensch dem ungebrochenen Trend zum Papier erfolgreich entziehen. Die Lösung liegt, wie so häufig, im Internet. Mit E-Mail hat sie aber nur beiläufig zutun.

Das ist Alltag pur: Brief aufsetzen, in Open Office layouten, ausdrucken, ins Fax legen, zurück ins Büro, um die Faxnummer zu suchen, wieder zum Faxgerät, Nummer eintippen und durchlaufen lassen. Wer diesen so genannten Medienbruch vermeiden und zudem Papier unf die Wartungskosten des Faxgerätes sparen will, spendiert seinem PC in der Regel ein Faxmodem. Richtig modern ist es aber nicht, ein analoges Telefonkabel neben DSL zu verlegen. Zudem muss der Rechner für den Faxempfang rund um die Uhr laufen. Für Notebook-Besitzer, die unterwegs sind, fällt dies Ansinnen sowieso meist flach.

Den elegantesten Ausweg aus der Misere weisen spezielle Internet-Gateways. Die Webhoster Strato [1] und 1&1 [2] bieten beispielsweise ihren Kunden solche Fax-Gateways. Andere Anbieter [3],[4] bieten den vergleichbaren Service auch separat. Der Mieter setzt einfach seine Faxe per E-Mail an den Server des Dienstleisters ab, der sich dann um die Analogtelefon-seitige Sache kümmert.

Die Fax-Gateways funktionieren auch in umgekehrter Reihenfolge und nehmen übers Telefonnetz eingehende Faxe an. Jeder Benutzer bekommt dazu eine eigene Faxnummer zugewiesen. Das Gateway wandelt ein eintreffende Fax in eine Grafikdatei um und stellt sie per E-Mail dem rechtmäßigen Empfänger zu. Die entstehenden Kosten halten sich im Cent-Rahmen [1], außerdem gönnen manche Anbieter ihren Usern einige kostenfreie Nachrichten pro Monat.

Schöner faxen

Reine Ascii-Daten per Mail-Client übers Gateway zu versenden, ist ebenso einfach wie layouterisch unzeitgemäß. Das Ziel ist vielmehr, aus jeder KDE-Applikation, beispielsweise Open Office, schön gestaltete Faxe abzusetzen. Alle Gateways nehmen dazu auch Fax-kompatible TIFF-Dateien (Multipage-G3-TIFF) als Mail-Anhang entgegen, die der Client-PC zuvor erzeugt haben muss. Manche Gateways vermögen zwar mit anderen Formaten umzugehen, beispielsweise versteht [5] auch PDF-Dateien, doch TIFF ist der kleinste gemeinsame Nenner.

Die in Abbildung 1 skizzierte, recht universelle und zugleich einfach modifizierbare Webfax-Funktion bedient sich Ghostscript, um TIFFs zu erzeugen, die dann (halb-)automatisch per Mail zum Faxprovider laufen. Für Komfort sorgt eine KDE-Print-Integration als Pseudoprinter. So wird jeder Applikation mit Kprinter drucken kann ein Faxmöglichkeit zuteil. Ein Pseudodrucker ist vergleichbar mit den Optionen In Datei drucken und Als PDF versenden.

Abbildung 1: Struktur des hier vorgestellten Webfax-Systems.

Abbildung 1: Struktur des hier vorgestellten Webfax-Systems.

Ghostscript im Zentrum

Im Kern des Skriptes leistet ein Ghostscript-Aufruf die Hauptarbeit:

gs -q -dNOPAUSE -dSAFER -dPARANOIDSAFER -dBATCH -sstdout=%stderr -sDEVICE=tiffg3 -sPAPERSIZE=$PAGE_SIZE -r$RESOLUTION -sOutputFile=$TIFF_FILENAME $PS_FILE

Die so erzeugte TIFF-Datei bekommt der E-Mail-Client übergeben. Dazwischen fragt Kdialog [6] nach der Zielfaxnummer, wie Abbildung 2 beweist. Die Wahl auf einen echten E-Mail-Client geht mit dem Wunsch einher, die gefaxten Dokumente und deren Versendedaten zu archivieren. Da sich die gezeigte Lösung bereits Kprinters bedient, liegt das KDE-Programm Kmail nahe. Generell kann jeder Client eingebunden werden, der einen Versand an eine spezifische Adresse inklusive Angabe eines Attachments per Kommandozeile beherrscht.

Abbildung 2: Kdialog fordert dem Benutzer die Zielfaxnummer ab.

Abbildung 2: Kdialog fordert dem Benutzer die Zielfaxnummer ab.

Das Skript ruft Kmail auf folgende Weise auf:

kmail -caption FAX --composer --subject webfax --attach file:$TIFF_FILENAME "$FAX_NUMBER@$FAX_SERVER"

Geöffnet wird damit ein “fertiges” E-Mail-Fenster mit eingetragenener Adresse und der konvertierten TIFF-Datei als Attachment. Der auf gleiche Weise exemplarisch vorkonfigurierte E-Mail-Clients Mutt versendet die Nachricht sofort ohne Benutzereingriff. Kommandozeilen-Clients wie pine oder mail sieht das Shellskript auch vor.

In allen Fällen müssen die Konteneinstellungen des Gateway-Servers im E-Mail-Client bereits eingestellt sein. Der Gateway-Server verhält sich wie ein normaler E-Mail-Server. Das Setup benötigt darum neben den üblichen Einstellungen für POP3 und SMTP auch die Ziel-E-Mail-Adresse inklusive der realen Zielfaxnummer. Die Mailadresse folgt meist folgender Struktur:

<§§I>Faxnummer_mit_Vorwahl_ohne_Sonderzeichen<§§I>@fax.<§§I>Providername<§§I>.<§§I>TLD<§§I>

Für Strato-Kunden beispielweise lauten die Daten: * Servername für POP3-Posteingang und SMTP-Postausgang: mail.profimail.de

  • POP3-Kontoname ist der Name des Webmessaging-Zugangs, also beispielsweise mustermann@profimail.de
  • Fax als E-Mail an: Faxnummer@fax.profimail.de.

Die Daten für andere Anbieter sehen von Falls zu Fall ein bisschen anders aus, das Grundprinzip ist jedoch gleich. Mit Evolution als E-Mail-Client klappt das Ganze zurzeit nicht, da das programm keine Attachments per Kommandozeile akzeptiert (siehe Evolution-Bugzilla-Eintrag [7]).

Eingebettet in KDE

Für die Einbindung in Kprinter zeichnet die Datei webfax.xml verantwortlich – siehe Kasten “Installation”. Als XML-Datei kann sie einfach per Hand editiert oder mit Hilfe der Bordmittel der Druckerverwaltung grafisch “erklickt” werden. Sie stellt das Bindeglied zwischen den Kommandozeilenparametern des Shellskriptes webfax [-l] [-n Nummer] [-c] [-p Seitengröße] [-h Server] [-m kmail,mutt,pine,mail] Datei.ps und deren grafische Repräsentation in der Druckereinstellungen dar.

So sind Parameter wie Auflösung oder der E-Mail-Client einfach unter Einstellungen des Webfax-Pseudodruckers bei einem Druckauftrag innerhalb von Kprinter wählbar. Das eigentliche Shellskript bekommen Nutzerinnen und Nutzer nicht zu Gesicht, sondern bleiben in der gewohnten grafischen Umgebung.

Installation

Die meisten aktuellen Desktop-Linuxe erfüllen alle Grundvoraussetzungen zum Betrieb der Webfax-Lösung. Beim Autor dieses Artikels lief sie mit KDE 3.2, Kdialog, Kmail und Ghostscript klaglos. Das Webfax-System besteht einem Shell-Skript und der KDE-Einbindung. Nach dem Entpacken des Archivs webfax.tar.gz von der Heft-CD beziehungsweise einer vielleicht aktuelleren Version auf dem FTP-Server des LinuxUsers muss Root drei Dateien kopieren: * Die Datei webfax muss ausführbar in ein vom PATH auffindbares Verzeichnis, beispielsweise /usr/bin. * Die der KDE-Integration dienenden Dateien webfax.desktop und webfax.xml gehören nach $KDEDIR/share/apps/kdeprint/filters/.

Nun kann Root ein Webfax-Pseudodrucker einrichten: Im Konqueror tippt er print:/manager gefolgt von [Enter] und gelangt zu KDEs Druckerverwaltung. Alternativ könnte er sich über das K-Menü per Angeschlossene GeräteDrucker oder gleichlautend im Kontrollzentrum Kcontrol ins Ziel bringen. Im sich öffnenden Druckermanager gilt es die Option Speziellen Drucker/Pseudo-Drucker hinzufügen aufzurufen. Sie findet sich sowohl unter der Registerkarte Hinzufügen als auch im Kontextmenü (rechte Maustaste) innerhalb des freien Bereich des oberen Feldes.

Im dann sichtbaren Fenster sind der Druckername und eine Beschreibung frei vergebbar. Das Assoziieren des neuen Druckers mit dem Shell-Skript passiert über Befehl verwenden. In der Liste ist Fax verschicken (webfax) dabei die korrekte Wahl, wie sie Abbildung 4 zeigt.

Abbildung 4: Zur Installation fügt man im Druckermanager einen speziellen Drucker hinzu und wählt <code srcset=

Fax verschicken (webfax).” width=”300″ height=”204″ /> Abbildung 4: Zur Installation fügt man im Druckermanager einen speziellen Drucker hinzu und wählt Fax verschicken (webfax).

So gehts: Webfaxversand per Pseudodrucker

In der Praxis ruft der faxwillige Benutzer aus einer beliebigen drucktauglichen Applikation den Kpriner-Dialog auf. Dort wählt er den neuen virtuellen Faxdrucker aus und druckt wie gewohnt sein Dokument. Der im Hintergrund arbeitende Druckauftrag konvertiert das Dokument mit Ghostscipt in eine Multipage-G3-TIFF-Datei und übergibt sie einer E-Mail als Attachment.

Abbildung 3 zeigt Kmail mit der Option, die TIFF-Datei vor dem Versenden noch Anzeigen zu lassen, um gegebenenfalls die Qualität zu überprüfen, Gerade kleine Schriftarten fransen im groben Raster eines Faxes schnell aus – hier kann der Bediener das noch rechtzeitig festgestellen. Die Faxnummer ist als Teil der E-Mail-Adresse an das Gateway bereits eingetragen, sodass der Benutzer die Nachricht direkt versenden kann.

Ob das Versenden der Faxnachricht erfolgreich war, also ob beispielsweise unter der Rufnummer ein Faxgerät die Nachricht entgegengenommen hat, erfährt man vom Gateway. Klassischerweise verschickt es eine Status-Mail an den persönlichen Mail-Account. Im Mailclient sammeln sich auf diese Weise sowohl die versendeten Faxe als auch die Empfängerberichte – praktisch zur Archivierung.

Abbildung 3: Der konvertierte Druckauftrag steht zur Versendung als E-Mail bereit.

Abbildung 3: Der konvertierte Druckauftrag steht zur Versendung als E-Mail bereit.

Zukunft

Die hier erstmals vorgestelle Version ist das erste öffentliche Release. In den kommenden Wochen wollen die Entwickler Erfahrungen, Anregungen und Verbesserungen der Nutzerinnen und Nutzer sammeln, um beispielsweise eine Liste gängiger Fax-Gateways in die Druckereinstellungen zu integrieren. Zudem ist eine internationalisierte Version geplant, die auch auf den von Michael Goffioul betreuten KDEprint-Webseiten veröffentlicht werden wird.

Eine verbesserte und tiefere Integration anderer E-Mail-Clients ist bereits in Entwicklung. Konkret geplant ist es, den Aethera-Client von The kompany per DCOP anzubinden. Kmail auf gleiche Weise zum automatischer Versand einer Nachricht zu verleiten wäre mit dcop kmail Aktuelle_ID send 1 machbar, wie [8] nahe legt.

Wenn von den Benutzern mehrheitlich gefordert, könnten die Entwickler beispielsweise Kaddressbook als Quelle der Faxnummern heranziehen oder implementieren, dass einer Nachricht mehrere Faxnummern für Massen- und Serienfaxe übergebbar werden. Die Mitarbeit der Community ist ausdrücklich erwünscht – der Autor ist unter mailto:brainguardian-kde@yahoo.de erreichbar.

Der Autor

Bela-Andreas Bargel ist Pädagoge und Informatiker im Studienabschluss an der Otto-von-Guericke Universität Magdeburg. Er ist Initiator und Mitentwickler des hier vorgestellen Webfax-Systems. Er arbeitete dabei mit KDEPrint-Entwickler Michael Goffioul [11] zusammen, dem er an dieser Stelle ein nachdrückliches Merci beaucoup! übermittelt. Webfax-Ansprechpartner auf der KDE Community World Summit 2004 aKademy in Ludwigsburg Ende August 2004 [12] ist Kurt Pfeifle.

Glossar

Multipage-G3-TIFF

Ein G3-TIFF (genauer: ein TIFF Class F) entspricht den Facsimile-“Group 3”-Spezifikation des Telegraph and Telephone Consultative Committee (CCITT). Das ist der Standard aller analogen Faxgeräte. TIFF-G3 beschreibt die Auflösung, die Möglichkeit Bad Fax Lines während einer Übertragung zu protokollieren und vieles mehr. [10] Ghostscript stellt mit seiner Option -sDEVICE=tiffg3 eine entsprechende Konvertierung bereit. TIFF ist ein Akronym für Tag(ged) Image File Format. Adobe besitzt die Rechte an der Spezifikation [9]. “Multipage” bezeichnet die Möglichkeit, einzelne Bilder(seiten) hier in einer Datei zusammenzufassen, die viele Viewer überfordert. Kfax jedoch genügt diese Anforderung.

DCOP

Das mit KDE 2 eingeführte Desktop COmmunication Protocol ist der interne Standardmechanismus, mit dem KDE-Programme miteinander kommunizieren. Mit DCOP kann ein Prozess nicht nur auf Schnittstellen zugreifen, die der Applikations-Programmierer ausdrücklich dafür vorgesehen hat, sondern auf beliebige Qt-Properties. Es ist sogar möglich, Signals und Slots über Applikationsgrenzen hinweg zu verwenden.

Infos

[1] Strato Web-Messaging: http://strato.de/premium/index_webmessaging_preise.html

[2] Webhosting 1&1: http://hosting.1und1.de, Menü: Feature-ÜbersichtUnified Messaging

[3] Abacus Computer Services: http://abacusfax.de/faxrates/D/0/index.htm

[4] T-Online: http://www2.service.t-online.de/dyn/c/14/53/76/1453760.html

[5] Formate bei Abacus Computer Services: http://abacusfax.de/faxfaqs/D/0/index.htm#Dateiformate

[6] Shell-Scripting mit KDE Dialog: http://developer.kde.org/documentation/tutorials/kdialog/t1.html

[7] Wunsch einer Kommandozeilenoption für Attachments für Evolution: http://bugzilla.ximian.com/show_bug.cgi?id=28765

[8] Kmail mit DCOP: http://www.volny.cz/bwian/dcop.html

[9] TIFF-Spezifikation: http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf

[10] TIFF Class F: http://palimpsest.stanford.edu/bytopic/imaging/std/tiff-f.html

[11] KDEPrint: http://printing.kde.org

[12] aKademy: http://conference2004.kde.org

LinuxUser 09/2004 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben