Laden...

Eigenes Programm soll sich beim Druck einklinken, um Dokument vor dem Ausdruck aufzubereiten

Erstellt von WhiteGloves vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.069 Views
W
WhiteGloves Themenstarter:in
109 Beiträge seit 2009
vor 13 Jahren
Eigenes Programm soll sich beim Druck einklinken, um Dokument vor dem Ausdruck aufzubereiten

Guten Abend zusammen,

ich spinne gerade ein wenig rum und versuche eine Lösung für ein seit lange bestehendes Problem zu finden.
Der Hintergrund ist glaube ich erstmal nicht so wichtig.

Man stelle sich folgendes Szenario vor:
Man ist gezwungen seinen Text im Windows Notepad zu schreiben, anschließend möchte man das geschriebene Ausdrucken.
Der Ausdruck soll allerdings nicht direkt auf ein Blatt Papier gedruckt werden, sondern vorher soll der Text noch automatisch durch ein Tool gejagt werden welches den Text verändert und anschließend nicht ausdruckt sondern an einen PDF Drucker weiter gibt.

Quasi:
Ich tippe meinem Text im Notepad, klicke auf Drucken und wähle einen speziellen Drucker "SuperDuberDrucker" und klicke auf Druck.
Im Hintergrund sollte der geschriebene Text nun an mein Tool weitergeleitet werden, dieses bereitet den Text auf speichert ihn als Datei ab um diese anschließend via GhostScript zu einem PDF zu wandeln.

Folglich:
Brauche ich einen Drucker der eigentlich ein Tool ist...

Wenn jemand eine Idee hätte, wie man das Umzusetzen könnte, der solle seine Idee bitte unbedingt hier posten 😉

Hallo, ich heiße Hein Blöd und bin Softwareentwickler

5.742 Beiträge seit 2007
vor 13 Jahren

Hallo WhiteGloves,

ich tippe meinem Text im Notepad, klicke auf Drucken und wähle einen speziellen Drucker "SuperDuberDrucker" und klicke auf Druck.

Naja - und einen Treiber für eben diesen virtuellen Drucker wirst du wohl schreiben müssen.

Schaue dir z.B. mal den Sourcecode von PDFCreator - der macht IMHO genau das. Evtl. reicht es ja schon, diesen zu erweitern.

3.825 Beiträge seit 2006
vor 13 Jahren

Hallo Whiteglove,

es reicht wenn Du auf den Drucker HP Color Laserjet 5/5m PS (HP Color Laserjet 2800 PS bei Windows 7) ausgibst, Ausgabe auf lokalen Anschluß "c:\qs" und danach Ghostscript aufrufst.

Was willst Du denn an dem Text ändern ?

Oder schreibe den Editor selbst, Notepad-Funktionalität ist nun nicht so schwierig.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

W
WhiteGloves Themenstarter:in
109 Beiträge seit 2009
vor 13 Jahren

es reicht wenn Du [...] Ausgabe auf lokalen Anschluß "c:\qs" und danach Ghostscript aufrufst.

Was willst Du denn an dem Text ändern ?

Bevor ich GhostScript aufrufe, muss der Text durch ein Tool durchlaufen, was dort geändert wird ist erstmal nebensächlich. Egal ob es um formatierung, filtern, prüfen geht.

Man ist gezwungen seinen Text im Windows Notepad zu schreiben

Notepad war hier nur ein vergleich. Mein User ist gezwungen in einem bestimmten (Notepad ähnlichem) Programm zu schreiben. Ihm ein alternatives Programm zur Verfügung zu stellen ist nicht möglich.

Hallo, ich heiße Hein Blöd und bin Softwareentwickler

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo WhiteGloves,

hast du den Beitrag von winSharp93 übersehen? Das wäre m.E. der sauberste und zuverlässigste Weg.

herbivore

W
WhiteGloves Themenstarter:in
109 Beiträge seit 2009
vor 13 Jahren

Ich habe mir den Quellcode heruntergeladen und mir in Teilweiße angeschaut, habe aber das Gefühl damit eine Mücke mit einem Elefanten zu erschlagen...

Gerade habe ich einen anderen eventuellen Ansatz gefunden.

Ich habe einen neuen Drucker hinzugefügt und als Anschlusstyp einen Redirected Port gewählt.
Anschließend beim Klick auf Konfigurieren des Anschlusses, gibt es die Möglichkeit für den Redirected Port ein Programm anzugeben.
Dort habe ich ein kleines MiniTool angegeben, welches nichts anderes tut als die Parameter die über die Befehlszeile kommen in einer MessageBox auszugeben.
In der Zeile dadrunter lassen sich in dem Konfigurationsdialog die Argumente für das Programm angeben.
Dort habe ich %1 eingetragen.
Dadrunter ist eine Auswahlliste (Output):

  • Program handles output
  • Prompt for Filename
  • Copy stdout to printer
  • Copy temporary file to printer
  • Copy pipe to printer

Wenn ich beispielsweiße "Prompt for filename" angebe und dann aus einem Programm heraus auf diesen Drucker drucke, kommt ein SaveFileDialog zum Speichern einer Datei.
Wenn ich dann einen Ort und einen Dateinamen vergeben habe und auf Speichern klicke, kommt mein MiniTool in den Vordergrund und gibt in der MessageBox den gerade eben definierten Pfad zur gespeicherten Datei an und beendet sich wieder.
Die (angeblich) gespeicherte Datei ist aber leider nicht vorhanden - wird also nicht gespeichert -.-

Ich weiß es nicht, habe aber das Gefühl das ich damit auf dem richtigen Weg bin.

Hallo, ich heiße Hein Blöd und bin Softwareentwickler

L
770 Beiträge seit 2006
vor 13 Jahren

Sollte das nicht der PDFCreator können?
Da kannst du ja bei der Anschlusskonfiguration ein Tool angeben, dass es verarbeitet? (Redirect this port to the program)

Lion

lg Lion