Faxen über All-In-One-Drucker

Hallo Java-Experten,

bin beim Programmieren einer Anwendung und möchte nun gerne eine automatische Faxfunktion programmieren, die über ein Fax-Gerät [z.B. über einen All-In-One-Drucker (Canon Pixma MP780)] faxen! Unter „Drucker & Faxgeräte“ (Windows XP) erscheint bei mir z.B. ein Faxgerät namens „Canon MP780 Fax“. Kann ich, ähnlich wie einen normalen Druckauftrag, über Klassen wie „printable“/„pageable“ und „printjob“ Daten an dieses Gerät schicken, um zu faxen? Weiß jemand, ob und wie das geht? Wie programmiert man sonst unter Java das Faxen? Gibt es kostenlose APIs? Wäre für jegliche Hinweise dankbar…

Heißen Dank,

Martin

Hallo,

ohne jetzt auch nur ansatzweise etwas von JAVA zu verstehen sieht es so aus, dass alle All-In-One-Geräte oder Faxserver unter Windows dem selben Prinzip folgen. Es wird ein zusätzlicher Druckertreiber installiert, der dann von beliebigen Anwendungen ganz normal über die Druckbefehle angesteuert werden kann. D.h. mit deinen normalen Klassen für die Druckeransteuerung liegst Du richtig.

Es gibt aber trotzdem ein Problem/eine Hürde. Und zwar wird beim Drucken über den Fax-Druckertreiber von diesem eine Abfrage der Faxnummer vorgenommen. Reicht es für deine Zwecke aus, dass diese dann manuell in der Dialogbox des Druckertreibers, die sich dann automatisch meldet, einzugeben, bzw. dort über die entsprechenden Funktionen aus einer Liste auszuwählen (Fritz!-Fax kann hierzu z.B. den Outlook Kontakteordner nutzen), brauchst Du nicht weiter zu lesen.

Willst Du aber die Faxnummer aus deiner Applikation gleich mit übergeben, habe ich eine schlechte Nachricht für dich: Es gibt Fax-Druckertreiber die die Übergabe der Nummer und ggf. anderer Parameter unterstützen, und es gibt Fax-Druckertreiber die dies nicht können, bzw. für die dies zumindest nicht dokumentiert ist. D.h. Du musst bei Übergabe von Faxnummern für jeden denkbaren Fax-Druckertreiber eigene Mechanismen für die Übergabe der Nummer vorsehen.

Auf die Spitze hat Tobit die Übergabe von Parametern für seine Netzwerk-Faxlösungen getrieben. Dort kann man mit einer speziellen Schrift jede Menge Befehle direkt mit in das Dokument schreiben, die dann vom Treiber aufgelöst werden. D.h. Du kannst nicht nur die Nummer übergeben, sondern durch die Steuerbefehle auch automatisch einen Briefbogen in den Hintergrund legen lassen, eine gescannte Unterschrift einblenden, oder einen gebührenoptimierten Versand auslösen, … Damit habe ich früher viel zu tun gehabt, und einige nette Lösungen z.B. in Verbindung mit der KHK (heute Sage) Classic-Line gebastelt.

Gruß vom Wiz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

erst mal Dank an Wiz: einfach über den Fax-Druckertreiber drucken funktioniert, allerdings mit manueller FaxNr-Abfrage…

Da aber über 100 Fax hintereinander geschickt werden sollen, möchte ich gern die Fax-Nr von meiner Anwendung aus dem Druckauftrag mitgeben.
Hat einer ne Ahnung wie das gehen könnte?

Vielen Dank im Voraus,

Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Da aber über 100 Fax hintereinander geschickt werden sollen,
möchte ich gern die Fax-Nr von meiner Anwendung aus dem
Druckauftrag mitgeben.
Hat einer ne Ahnung wie das gehen könnte?

Wie ich schon geschrieben habe:

Willst Du aber die Faxnummer aus deiner Applikation gleich mit
übergeben, habe ich eine schlechte Nachricht für dich: Es gibt
Fax-Druckertreiber die die Übergabe der Nummer und ggf.
anderer Parameter unterstützen, und es gibt Fax-Druckertreiber
die dies nicht können, bzw. für die dies zumindest nicht
dokumentiert ist. D.h. Du musst bei Übergabe von Faxnummern
für jeden denkbaren Fax-Druckertreiber eigene Mechanismen für
die Übergabe der Nummer vorsehen.

D.h. Du musst ganz genau wissen, für welches Gerät Du eine entsprechende Lösung bauen willst, und dann die Dokumentation des Gerätes daraufhin durchsuchen, mittels welchem Mechanismus eine solche Übergabe bei genau diesem Gerät möglich ist (oder auch nicht). Ggf. muss man auch mal den Hersteller kontaktieren, ob die Sache ggf. nur undokumentiert ist.

Es gibt hierzu bislang keinen Standard! Ohne Angabe des Geräts wird dir niemand weiterhelfen können bzw. bei Angabe eines Geräts dessen Treiber dies überhaupt nicht unterstützt, natürlich auch nicht. Erst wenn Du weißt um welches Gerät es geht, und wie dies genau die Nummer übergeben haben will, kann man sich Gedanken um die Umsetzung (ob in Jave, C#, VB, … ist dabei zunächst mal vollkommen nebensächlich) machen. Bei Tobit reichte es AFAIR unter DOS aus, einfach @@number1234 irgendwo im Ausdruck unter zu bringen, unter Windows wird hierzu die spezielle Schriftart verwendet, … Da kocht jeder seine eigene Suppe.

Gruß vom Wiz