Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

Eigenes Programm soll sich beim Druck einklinken, um Dokument vor dem Ausdruck aufzubereiten
WhiteGloves
myCSharp.de - Member



Dabei seit:
Beiträge: 110
Herkunft: Köln

Themenstarter:

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

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
winSharp93
myCSharp.de - Experte

Avatar #avatar-2918.png


Dabei seit:
Beiträge: 6155
Herkunft: Stuttgart

beantworten | zitieren | melden

Hallo WhiteGloves,
Zitat
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.
private Nachricht | Beiträge des Benutzers
BerndFfm
myCSharp.de - Team

Avatar #nZo9Gyth4VPDSxGqM4sT.jpg


Dabei seit:
Beiträge: 3783
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von BerndFfm am .
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
private Nachricht | Beiträge des Benutzers
WhiteGloves
myCSharp.de - Member



Dabei seit:
Beiträge: 110
Herkunft: Köln

Themenstarter:

beantworten | zitieren | melden

Zitat von BerndFfm

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.

Zitat von WhiteGloves
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
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo WhiteGloves,

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

herbivore
private Nachricht | Beiträge des Benutzers
WhiteGloves
myCSharp.de - Member



Dabei seit:
Beiträge: 110
Herkunft: Köln

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Lion1984
myCSharp.de - Member



Dabei seit:
Beiträge: 782
Herkunft: Österreich

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers