Druckausgabe (Zieldatei festlegen)



  • Hallo!

    Vielleicht kann mir ja hier jemand helfen.

    Ich habe ein Windows-Programm welches in relativ kurzen Abständen immer wieder hintereinander 3 Dokumente drucken soll.
    Die Ausgabe soll über einen Postscript-Druckertreiber in 3 Dateien erfolgen.

    Durchgang 1:
    DOC1 -> DOC_01_1.ps
    DOC2 -> DOC_01_2.ps
    DOC3 -> Doc_01_3.ps

    Durchgang 2:
    DOC1 -> DOC_02_1.ps
    DOC2 -> DOC_02_2.ps
    DOC3 -> Doc_02_3.ps

    ...

    Das ganze soll weitgehend ohne Benutzereingriffe erfolgen. Es wäre bloed wenn man dauernd den nächsten Dateinamen eingeben müsste.
    Kann man den Namen der PS-Datei in die gedruckt werden soll irgenwie innerhalb des Programmes setzen, damit bei Drucken nich timmer die Abfrage erfolgt?

    Vielen Dank



  • Dazu brauchst du eine Funktion wie PrintFile("File.ext"), die das in Abhängigkeit des Dateiinhaltes macht. Für eine reine ASCII-Textdateie kannst du eine solche Funktion von meiner HP http://berniebutt.npage.de herunterladen.



  • Ich glaube da ist ein Missverständnis aufgetreten.

    Es gib noch keine Dateien.
    Das Programm erzeugt verschiedene Dokumente, die bisher ganz normal manuell ausgedruckt werden müssen.
    Da die drei Dokumente nicht innerhalb des Programmes in eines überführt werden können, die notwendigen Anpassungen würden wahrscheinlich Wochen, wenn nicht Monate dauern sollen die drei Dokumente nun nicht auf Papier ausgedruckt werden sondern in jeweils eine Datei gedruckt werden. Wenn wir dann als Drucker einen Postscriptdrucker verwenden erhalten wir 3 Postscriptdateien, die wir archivieren können, eventuell werden wir sie auch ins PDF-Format konvertieren und eventuell auch mergen.
    Da wir diese 3 Dokumente sehr häufig drucken müssen würden wir den Druck gerne automatisieren. Dafür müssten wir aber die Vergabe des Names der Zieldateien aus dem Programm heraus machen.
    Genau drum geht es in der Frage.

    Wie drucken wir das erste Dokument in die Datei DOC_01_1.ps , die zweite in die DOC_01_2.ps und die dritte DOC_01_3.ps ohne den Zielnamen händig eingeben zu müssen.



  • Was denn nun? 😕 Gibt es schon Dateien zum Drucken oder nicht? 😞
    Jeder Drucker braucht einen klar verständlichen Auftrag, was er wie drucken soll! 🤡



  • Was ist denn darin nicht zu verstehen?

    Man stelle sich vor man öffnet Winword erstellt nacheinander drei Briefe und druckt diese aus. Da die Ausgabe nicht auf Papier erfolgen soll sondern in eine Postscriptdatei ist der Druckertreiber entsprechend eingestellt.
    Dann muss allerdings jedesmal der Name der Datei eingetragen werden in die gedruckt werden soll => DOC_01_1.ps, DOC_01_2.ps und DOC_01_31.ps

    Das Programm um das es sich in Wahrheit handelt liegt uns im Quellcode vor.
    Wir würden nun gerne vor dem Ausdruck jeweils den Namen der Zieldatei festlegen damit dies nicht vom Anwender gemacht werden muss und damit die Dateien die korrekten Namen haben.
    Außerdem wollen wir in Zukunft die automatisch erstellten Dokumente auch direkt drucken. Bisher muessen alle paar Stunden die zwischenzeitlich erstellten Dokumente gedruckt werden. Das wollen wir dann auch ändern wenn das Problem mit den Dateinamen gelöst ist.

    Wir haben bisher nur keinen Weg gefunden die entsprechende Eigenschaft des Druckertreibers zu setzen.


  • Mod

    Ist es möglich die DOCINFO Daten im Druckertreiber zu lesen.
    Über DrvDocumentEvent solltest Du DOCUMENTEVENT_STARTDOC behandeln können.
    http://msdn.microsoft.com/en-us/library/windows/hardware/ff548544(v=vs.85).aspx



  • Druckerproblem schrieb:

    Was ist denn darin nicht zu verstehen?

    Die Frage als solche ist voll zu verstehen: Aus einem Windowsprogramm mit WinApi sollen Druckaufträge für einen Postscript-Drucker erstellt und diese ohne Benutzertätigkeit namentlich unterschieden werden. Richtig? Für mich unklar war nur geblieben, ob zunächst benannte Dateien an den Druckertreiber geschickt werden oder der Druckertreiber ohne solche Dateien mehr machen soll.

    Es ist guter Stil hier im Forum, nicht gleich mit - vielleicht unbrauchbaren - Lösungen zu antworten, sondern im Zweifel erst einmal nachzufragen.
    Das Ding sollte aber lösbar sein. Vorschlag: bei Adobe wegen Treiber und API-Schnittstelle zu Windows-Programmen suchen oder direkt fragen.


Anmelden zum Antworten