![]() |
Drucken mit gleichzeitigem generieren eines PDFs
Hallo zusammen,
ich würde gerne einen Druckertreiber bauen, der gleichzeitig auf den Windows Standard Drucker druckt und ein PDF erzeugt. Ich habe schon die Sufu benutzt und auch einen Verweis zu den RedMon Komponenten gefunden aber die haben keinen Support für Win10. Gibt es sowas eventuell schon als fertiges Produkt? Wie könnte ich da am Besten ansetzen? Es geht im Prinzip darum, dass ich eine Software habe, die Papierdokumente erzeugt aber gleichzeitig kein PDF erzeugen kann. Und das möchte ich mit diesem Treiber umgehen. LG Mirko |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hmm..
Redmon läuft auch auf W10 (zu mindestens hier bei uns ;) ) Generell kannst Du nun einen 'echten' Treiber programmieren, welcher als Weiche fungiert, dann ist Delphi aber raus... Oder per Redmon eine Weiche mit einem eigenen Tool, welches das Erzeugen der PDFs händelt und die Druckerdaten an den richtigen Drucker weiter gibt. Dies funktioniert aber nur praktikabel mit PS-Script fähigen Drucker, da dann die Erzeugung durch Weiterreichung an z.B. GhostScript für die PDF-Erzeugung gut funktioniert und die Druckerdaten einfach an den Drucker weiter gegeben werden können. |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Ich habe die Frage bestimmt nicht korrekt verstanden, hier ein schnippsel wie man den Microsoft Print to PDF direkt anspricht und ein PDF erzeugt.
Delphi-Quellcode:
var
DeviceMode: THandle; Device, Driver, Port: array[0..80] of Char; begin Printer.PrinterIndex := Printer.Printers.IndexOf('Microsoft Print to PDF'); // drucker Printer.GetPrinter(Device, Driver, Port, DeviceMode); Printer.SetPrinter(Device, Driver, 'Test.pdf', 0); // dateiname Printer.BeginDoc; Printer.Canvas.TextOut(100, 100, 'Test'); // pdf inhalt Printer.EndDoc; end; |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Das erzeugt PDFs. Er hat aber ein Word Dokument, welches er drucken und gleichzeitig als PDF speichern will
|
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hmm..
Oder ganz anders: Du nimmst dir z.B. PDFCreator, lässt damit automatisch das PDF in einem festen Verzeichnis ablegen. Zusätzlich hast Du einen Dienst, welcher auf das Verzeichnis schaut und beim Ablegen einer Datei, diese auf einem Drucker ausgibt. Alles kannst Du ohne Programmierung eines Treibers hinbekommen, nur den Dienst zum Verzeichnis überwachen mit Drucken müsstest Du machen, oder mal Googln.. |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Man braucht keinen Dienst, um ein Verzeichnis zu überwachen. Das kann man mit einem ganz normalen Programm:
![]() |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hallo,
wo steht hier was von Word-Dokument? Zitat:
das wPDF gibt, was einen virtuellen PDF-Drucker simuliert. Und das ganze per Software. Ein PDF-Drucker wäre z.B. eDoc Printer Pro ![]() ![]() Der glaube ich sogar eine COM-Schnittstelle. |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Das war nur ein Beispiel für ein vorhandenes Dokument, das gedruckt werden soll. :roll:
|
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hallo,
ich drücke mal zurück :) Die Frage ist halt, ob auf die Ausgabe-Datei Einfluss genommen werden kann. |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Zitat:
Gruß K-H |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Diverse PDF Drucker bieten die Option das PDF nach Erstellung auch noch als Hardcopy zu Papier zu bringen
auf die schnelle habe ich das bei pdfcreator und win2pdf gefunden. Eine ähnliche Funktion habe ich auch bei Dokumenten Management Software gesehen die alles was ausgedruckt wird auch gleich als PDF ins Archiv schiebt. Oder man dreht die Sache um und druckt einfach zuerst ein PDF und läßt dieses PDF dann auf Papier ausdrucken ein kleines Programm das das PDF Ausgabeverzeichniss überwacht und die neuen Dateien ausdruckt sollte nicht so schwer sein mfg Hannes |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hallo zusammen,
danke für das Feedback. Die Idee zunächst ein PDF zu erzeugen und anschließend noch zu drucken wäre natürlich auch gut. Die Word Datei ist ein gutes Beispiel denn ich muss das ganze über die Druckfunktion realisieren, sprich ein virtueller Drucker muss schon vorhanden sein. LG Mirko |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Man kann auch ein installiertes Office über die OLE ansprechen, dort das Word-Dokument laden und es dann Drucken und/oder als PDF exportieren.
|
AW: Drucken mit gleichzeitigem generieren eines PDFs
Zitat:
Wenn man statt des Dateinamens einen Leerstring ( '' ) angibt, fragt Windows nach "begindoc" verständlicherweise nach selbigem. Gibt es eine Möglichkeit, einen Dateinamen als Voreinstellung anzugeben, der im Dialog nach "begindoc" automatisch vorgeschlagen wird? |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Zitat:
kann du mir sagen wie es das gamcht habt ? Ich möchte von einem beliebigen Programm aus drucken. Dann soll ein Server diese Daten engegen nehmen und ein PDF Datei erzeugen und in ein Verzeichnis ablegen. Geht so etwas mit Redmin und hast due Quellen für mich ? Danke Tanja |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hmm..
Installiere doch auf dem Server z.B. PDFCreator und share diesen Drucker dann. Vom CLient aus kannst Du dann auf diesen Netzwerkdrucker zugreifen und darüber mit jeder Applikation drucken. PDFCreator kann so konfiguriert werden, dass die PDFs direkt in einem Verzeichnis abgelegt werden. Der Dateiname kann auch in Creator definiert werden. Früher hat PDFCreator intern auch den RedMon verwendet, ob dies immer noch der Fall ist, weiß ich nicht. Wenn Du dies selber machen möchtest, um mehr Einfluss zu haben, dann geht das mit RedMon. ![]() Hiermit wird ein 'Anschluss' installiert. Dieser erscheint dann bei der Druckerinstallation in der dortigen Auswahl. Wenn Du damit was machen willst, ergibt sich somit folgende Reihenfolge: - Installieren Redmon auf dem Server - Installieren Druckertreiber (PostScript!!) wie z.B. Microsoft (Generic) 'MS Publisher Color Printer'. Dort als Anschluss(Port) den RedMon angeben. - Freigeben des Druckers im Netzwerk. - Verwenden des Druckers als Netzwerkdrucker von einem beliebigen Client. Nun brauchst Du nur ein Programm/Script, welches die Druckerdaten vom Redmon entgegen nimmt und z.B. mit GhostScript in ein PDF konvertiert. Dieses wird dann als Ziel in der Konfiguration von RedMon angegeben. Somit musst Du dich der Datenweiterreichung von RedMon auseinander setzen und mit der Bearbeitung von z.B. Ghostscript. Druckertreiber Tools wie PDFCreator, oder früher FreePDFXP (nicht mehr verfügbar), machen eben dieses nach diesem Muster. Edit: Hier habe ich das alte FreePDF noch zum Download gefunden: ![]() |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Zitat:
|
AW: Drucken mit gleichzeitigem generieren eines PDFs
Zitat:
jedenfalls das Setup-Programm für Windows bringt beim installer (oder brachte früher) eine Tool-Bar (für sämtliche Browser) oder ähnliche Adware mit. Oder zumindest diesen "PDF-Architect". (wohl auch lästige Zwangsbeglückung) Hab den nicht installiert, da FreePDF (wie Du auch erwähnt hast) seine Dienste ohne jeden Beigeschmack hervorragend tut. Ist zwar ein VisualBasic Programm, aber ich wüßte kein besseres für Windows, daß ich mit gutem Gewissen empfehlen könnte. |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hmm..
Zitat:
FreePDFXP wurde leider in 2017 eingestellt und die WebSite ist inzwischen von einem anderen Tool in Beschlagnahme. Auch war es dort nicht möglich (im FreePFD) ein direktes speichern ohne Dialog einzustellen. Ich hatte es nur als Beispiel angegeben, wie mit RedMon in Kombination mit GhostScript (wurde beides von FreePDF verwendet) dies umgesetzt werden kann. Für die automatische Erzeugung von PDFs per Drucker verwende ich ein selbst geschriebenes Tool (ähnlich wie FreePDF nur ohne Dialog ;) ) in Verbindung mit RedMon. Dieses liest sich den 'Titel' aus den PhostScriptdaten (von 'MS Publisher Color Printer' erstellt und per Redmon ans Tool geschickt) aus und verwendet diesen für den Dateinamen. Somit sollte deine Anwendung nur den zukünftigen Dateinamen als 'Title' mit angeben. Dies kann mit Printers, aber auch den meisten Report-Komponeten gemacht werden. Auf der ehemaligen WebSite für FreePDFXP war auch ein Beispiel angegeben, wie ohne den Dialog mir RedMon und GhostScript PDF-Dateien direkt abgelegt werden. Hier müsste man mal schauen, ob diese Seite noch in einem WebArchiv vorhanden ist. |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Verstehe ich das richtig, dass Redmon einen Drucker an einem eigenen Port bereit stellt und ich dann bestimmen kann welcher Ausdruck wohin geht?
Ich stelle im Redmon ein, das er ein PDF über Microsoft Print to PDF erzeugen und anschließend über meinen Canon IR3035 drucken soll. Was sende ich an Redmon einen Druckauftrag oder eine PostScript Datei? LG Mirko |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hmm..
Zitat:
Redmon stellt nur einen 'Anschluss' bereit, wie z.B. LPT1: oder IP:. Ein installierter Druckertreiber (hier am besten ein Drucker, welcher PhostScript erzeugt/verwendet) erzeugt und sendet die (Roh-)Daten an diesen 'Anschluss'. Dieser 'Anschluss' überträgt diese Daten an den Drucker (per LPT/IP/USB, oder welcher 'weg' auch immer). Der Drucker nimmt diese Daten dann entgegen und erzeugt den Ausdruck. Mit RedMon als 'Anschluss' werden die Daten nun nicht an eine Physikalische Schnittstelle/Drucker weitergegeben, sondern an ein anders Programm. An welches und (teilweise) auch wie kann in der Konfiguration des 'Anschlusses'/RedMon eingestellt werden. Was dann mit diesen Druckdaten von diesem Programm gemacht wird, ist für RedMon unerheblich. Ist dieses Programm nun ein Script, welches die Druckdaten an z.B. GhostScript weiter gibt, um damit PDFs zu erzeugen, können diese als Datei abgelegt werden. PostScript Druckertreiber deshalb, weil GhostScript aus PostScript PDFs erzeugen kann. Der 'MS Publisher Color Printer', fest bei Win10 dabei, erzeugt PostScript Druckerdaten. |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Zitat:
|
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hallo zusammen,
sorry, dass ich das hier nochmal aufwärme aber ich hatte bis jetzt dazu keine Zeit mehr mich damit zu beschäftigen. Ich bin da allerdings ein wenig weiter gekommen und zwar lasse ich ein PDF mit Bullzip erzeugen und dieses an anschließend auf einem festgelegten Drucker drucken. Hier gibt es 2 Probleme: 1. Mit fehlt der Hintergrund des Briefpapiers im PDF, 2. ich muss den Papier-Drucker fest in eine globalsettings.ini Datei schreiben und das Briefpapier darf nicht im Ausdruck erscheinen. Ich habe mir Redmon angesehen, aber das ist etwas zu komplex für mich, mir fehlt das Verständnis dafür. Funktioniert es unter Windows 10 noch, es ist ja auch schon etwas älter? Dann dachte ich, ich kann einen TCP Server verwenden und den Port 9100 "abgreifen" und aus der Datei, die ich dann schreiben lasse, einmal ein PDF machen und einmal an dem vom benutzer gewählten Drucker leiten.
Delphi-Quellcode:
Wenn ich über einen generischen Drucker mit lokaler IP 127.0.0.1 drucke, wird die Datei erzeugt. Drucke ich auf einem Drucker im Netzwerk macht er logischerweise nichts.
procedure TForm1.S1Execute(AContext: TIdContext);
var DStream, FStream : TStream; begin DStream := TMemoryStream.Create; AContext.Connection.IOHandler.ReadStream(DStream, -1, true); FStream := TFileStream.Create('c:\temp\xy.prn', fmCreate); DStream.Position := 0; FStream.CopyFrom(DStream, DStream.Size); FStream.Free; DStream.Free; end; Wie könnte ich die Datei, die dort erzeugt wird, einerseits ein PDF machen (am liebsten mit Bullzip, weil ich hier den Hintergrund separat mit einspielen kann) und andererseits die Datei an den vom Benutzer ausgewählten Drucker weiter leiten? Oder kann ich irgendwie die Daten vom Port 9100 "loggen" während der Druckauftrag zum vom Benutzer gewünschten Drucker übertragen wird und dann aus der entstandenen Datei einfach ein PDF machen? Viele Grüße Mirko |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hallo, was würde passieren wenn Du zwei mal druckst? Einmal in PDF und einmal an den Drucker?
|
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hallo,
also das Ganze kommt aus einer Fremdanwendung und ich habe keinen Einfluss auf den Druckauftrag oder wie oft gedruckt wird. Das Beste wäre wahrscheinlich den Auftrag ab zufangen, eine prn Datei schreiben zu lassen und diese dann zum Erstellung des PDF zu verwenden. So weit so gut aber es bestehen die beschriebenen Probleme. LG Mirko |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hmm..
Zitat:
Redmon kann die Druckdaten an dein eigenes Programm weiter leiten und dieses erzeugt daraus per z.B. GhostScript ein PDF dem Du den Hintergrund bei Aufruf von GS mitgibst. Zusätzlich dann noch ein Ausdruck auf einem Drucker deiner Wahl, hier dann ohne deinen Hintergrund! |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hallo Holger,
okay ich habe Redmon installiert und den Port RPT1 erzeugt. Ich leite den Ausdruck also zu meinem Programm um wo ich einmal das PDF erzeuge und einmal an den Drucker weiter leite. Wie komme ich an die Daten, die ans Programm übergeben werden?
Delphi-Quellcode:
Eventuell so aber was mache ich danach damit?
var
Input: TStream; begin Input := THandleStream.Create(GetStdHandle(STD_INPUT_HANDLE)); ... LG Mirko |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Redmon ist eine tolle Sache.
Das hier ist das Einzige was mich etwas stört, auch wenn es dann jetzt doch noch mit Win10 funktionert, scheint der zukünftige Support bei 0 zu liegen. Zitat:
|
AW: Drucken mit gleichzeitigem generieren eines PDFs
Ja das hab ich auch gelesen und deswegen dachte ich dass es mit Windows 10 nicht mehr läuft.
Eigentlich bräuchte man bei Redmon gar kein eigenes Programm oder? Ich bin jetzt soweit, dass ich ein PDF mit Ghostscript pdfwrite bekomme und dann aber den Ausdruck gleichzeitig an einen Netzwerkdrucker weiterleiten kann. Problem ist noch: Wie bekomme ich den Hintergrund ins PDF und auf dem Drucker wird nichts ausgedruckt. Egal was ich im Redmon Port einstelle. REDMON_OUTPUTPRINTER zeigt den richtigen Namen des Druckers aber egal ob Copy stdout to printer, Copy temporary file to printer oder Copy pipe to printer es kommt nichts an. LG Mirko |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hmm..
Wenn die Daten per Redmon mit StdOut geschickt werden, dann geht das:
Delphi-Quellcode:
Dann an der richtigen Stelle in einer Kopie des Streams dein Hintergrundbild einfügen (dazu brauchst Du PS Kenntnisse oder GOOGLE).
function ReadStdInStream(AStream : TStream):boolean;
var Stdin : THandleStream; BytesRead : Int64; Buffer : array[0..1023] of Byte; begin result := false; try StdIn := THandleStream.Create(GetStdHandle(STD_INPUT_HANDLE)); try StdIn.Seek(0,0); repeat BytesRead := StdIn.Read(Buffer,1024); if BytesRead > 0 then AStream.WriteBuffer(Buffer,BytesRead); until BytesRead <= 0; finally StdIn.Free; end; result := (AStream.Size > 0); except on E:Exception do begin // Fehlerbehandlung end; end; end; Oder erzeugst erst das PDF und fügst dann das Bild z.B. mit ![]() hinzu. Anschießend mit GS als PDF speichern. Zum Ausdrucken des original Streams kannst Du dann auch GS verwenden (Google ist auch hier dein Freund)... Redmon in Verbindung mit einem PS Druckertreiber ist notwendig um die PS-Daten korrekt zu erhalten (von jegweligem Programm aus). Dein Programm, um die Bearbeitung und die Weiche sauber zu machen... |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Zitat:
Es scheint sich hier jemand dem Redmon angenommen zu haben, und es in das MFileMon Projekt integriert zu haben. ![]() ![]() Das scheint jedenfalls aktuell und gepflegt zu sein, und könnte der Nachfolger des Redmon sein. Habe jetzt nicht gecheckt ob es 1:1 dem Orginal Redmon entspricht, ich denke aber schon, vielleicht weiß jemand mehr darüber. |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Liste der Anhänge anzeigen (Anzahl: 2)
Ich habe das MFileMon mal getestet, hier die Dokumentation zur Installation.
Anhang 54872 So sieht die aktuelle Einstellung aus Anhang 54873 Es scheint so zu funktionieren, allerdings bekomme ich kein PDF daraus, sondern immer nur ein .PS. Wenn ich das .PS dann am Ende manuell via GS zu PDF konvertiere scheint alles OK zu sein. Die Anleitung ist wohl OK, es fehlt womöglich nur eine kleine Änderung im Command feld. Das Command soll meiner Meinung nach so funktionieren, dass via der Drucker via Pipe etwas an MFileMon schickt. Allerdings soll der Haken bei Win10 nicht gesetzt sein, weil es da irgendwie anders funktioniert. User command: "C:\Program Files\gs\gs9.27\bin\gswin64c.exe" -dBATCH -dSAFER -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -dAutoRotatePages=/PageByPage -r600 -sOutputFile="%f" - !! Important: Keep traling hyphen - This should be replaced by the input stream from the printer. Vielleicht hat jemand Erfahrung mit der Konfiguration von MFileMon / Redmon / GS, und sieht den Fehler ? Oder liegt es doch an einem Fehler in MFileMon ? |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hallo Rollo,
habe in der Firma Redmon und zu hause MFileMon isntalliert. In der Firma funnktioniert das Generieren eines PDFs mit dem Kommando das Du verwendest unter Filemon. Hier zu Hause bekomme ich Redmon zwar installiert, bekomme aber beim Hinzufügen des Ports einen "unknown error". MFileMon ließ mich den Port installieren, bekomme aber auch nur ein PS File heraus, genau wie Du. Wenn ich -sOutputFile einen festen Dateinamen gebe funktiniert das bei Redmon. Bei MFileMon nimmt er den Dateinamen, der oberhalb eingegeben wurde. Es sieht so aus, als würde er den Ghostscript Befehl gar nicht ausführen. Logdateien werden auch nicht geschrieben, egal was man im Dropdown eingibt. LG Mirko |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Ich bin jetzt so weit, dass ich den StdOut vom Redmon in eine .ps Datei schreiben lasse und dann per Ghostscript umwandeln lasse.
Das ganze mache ich mit diesem Befehl:
Code:
bg.ps ist ein kleines Postscript File mit einem Test für einen Schriftzug im Hintergund.
"C:\Program Files\gs\gs9.55.0\bin\gswin64c.exe" -sDEVICE=pdfwrite -r300 -dBATCH -dNOPAUSE -sFONTPATH=%windir%\fonts -dEmbedAllFonts -dSubsetFonts -sPAPERSIZE=a4 -sOutputFile="c:\temp\test.pdf" c:\temp\bg.ps c:\temp\word.ps
Code:
Wenn ich aus Word ein PDF Dokument mit Calibri als Schrift erzeuge rendert Ghostscript die Schrift als Grafik. Bei Arial als richtigen Text.
<<
/BeginPage { 2 eq { pop false } { gsave /Arial findfont 40 scalefont setfont newpath .90 setgray 100 700 moveto 30 rotate (test test test) false charpath 1 setlinewidth stroke grestore true } ifelse } bind >> setpagedevice -sFONTPATH=%windir%\fonts -dEmbedAllFonts -dSubsetFonts hiermit stelle ich doch eigentlich ein, dass die Schriften aus dem Windows Font Verzeichnis gezogen und eingebettet werden sollen oder? LG Mirko |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Liste der Anhänge anzeigen (Anzahl: 1)
Ich wollte Euch nur den aktuellen Stand mitteilen, falls jemand sowas auch nochmal machen möchte.
Ich habe die Ghostscript DLL eingebunden und lasse in meinem Programm jetzt aus der *.PS Datei ein PDF erzeugen. Die Initialisierung und das Laden der DLL mache ich über die angehangene Unit. So starte ich die Konvertierung zum PDF.
Delphi-Quellcode:
GetArgs:
oGS := TGhostScript.Create;
oGS.ExecuteWithArgs(GetArgs);
Delphi-Quellcode:
Funktioniert soweit gut, jetzt muss ich nur noch schauen, wie ich die PS Datei zum Drucker bekomme.
function TForm1.GetArgs: APAnsiChar;
var oArgs: APAnsiChar; begin setlength(oArgs, 0); AddArg(oArgs, 'gs'); AddArg(oArgs, '-r300'); // AddArg(oArgs, '-dSAFER'); AddArg(oArgs, '-dBATCH'); AddArg(oArgs, '-dNOPAUSE'); AddArg(oArgs, '-sDEVICE=pdfwrite'); AddArg(oArgs, '-dPDFSETTINGS=/ebook'); AddArg(oArgs, '-sFONTPATH=%windir%/fonts'); AddArg(oArgs, '-dEmbedAllFonts=true'); AddArg(oArgs, '-dSubsetFonts=true'); AddArg(oArgs, '-dNumRenderingThreads=8'); AddArg(oArgs, '-sOutputFile=c:\temp\' + filename); AddArg(oArgs, '-f'); AddArg(oArgs, 'c:\temp\xy.ps'); result := oArgs; end; Das sind Canon Image Runner, die sollten Postscript können. LG Mirko |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Zitat:
Wie gesagt, bei mir kommt leider immer nur .ps raus, ist aber bei MFileMon vielleicht ein etwas anderes Redmon. Ich habe es mit dem orginalen Redmon aber nicht getestet. Ein Gedanke war dass man damit lebt dass einfach nur .ps ausgegeben wird, und dann im Hintergrund ein Programm oder Service laufen hat, welches auf den Ausgabepfad lauscht. Sobald eine neue .ps Datei angekommen ist könnte das Programm - die Konvertierung von .ps zu PDF automatisch anstossen ( per Batch-Datei ) - die orginale .ps löschen - und womöglich das Ergebnis an einen echten Drucker schicken, wenn gewünscht - die generierte .PDF vielleicht noch irgendwohin verteilen Oder war es dass, was Du unten beschreibst ? |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hmm..
1.) Redmon kann die Druckdaten direkt als Stdout/-in an das aufgerufenen Programm weiter geben. 2.) Wenn mit der API (.DLL) von Ghostscript gearbeitet wird, kann dieser Stream direkt dorthin weiter gereicht werden, ohne zwischenspeichern als .ps. Bei Verwendung der GSxx.exe muss dieser Stream meinet Wissens zwischengespeichert werden (hier die .ps) da die Exe eine Datei als Input benötigt.. 3.) Das Erzeugte PDF kann dann zum Einen direkt wieder mit GS an den eigentlichen Drucker geschickt werden und zum Anderen mit PDFTK um dein Hintergrundbild ergänzt werden. mfilemon dürfte eine umbenannte Kopie von Redmon sein, denn nicht nur die Dialoge, sondern auch die Anleitung kommt mir von Redmon oder FreePDF bekannt vor. Ob dies gepflegt wird, mag ich bezweifeln, da die Anleitung auch nur bis Win8 geht... |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Ja, MFileMon scheint ein Ableger von Redmon zu sein, er ist aber aktuell gepflegt.
Während Redmon ziemlich alt ist. Ich hatte deshalb das MFileMon gesucht, weil igendwo stand das Win10 nicht mehr richtig funktioniert. Eben weil das Übertragen zum Stdout irgendwie geändert sei. Offensichtlich kommen ja die Daten im MFileMon auch an, als PS, nur scheint dann das GS nicht angestossen zu werden. Ich habe immer noch die Hoffnung dass dies ein einfaches Parameter-Problem ist. Falls das alte Redmon aber immer noch aktuell und amtlich ist, dann ist MFileMon natürlich überflüssig. Ich hatte mit dem Thema lange nichts zu tun, deshalb kenne ich die Historie von Redmon nicht so gut, aber könnte demnächst auch eine gute PDF-Drucker Ausgabe brauchen. Wäre schön wenn man da ein einfaches Kochrezept finden würde :-) Über den gazen Prozess bin ich mir auch nicht sicher, meine Vermutung: - Ein Drucker sendet was zum GS-PS Printer - Dieser erzeugt daraus einen PS Stream - Und ist verbunden mit MFileMon (oder Redmon ) Port - Also kommt der PS Stream via dem MFileMon Port zum eigentlich GS, welches Konvertieren soll (gemäß pdfwrite Parameter) - GS Erzeugt dan mit dem MFileMon (Redmon ) Script die PDF Datei - GS Speichert die GS Datei an dem festgelegtem Ort, und kann fortlaufenden Filnamen berücksichtigen So verstehe ich das Ganze, bis auf die letzen beiden Punkte funktioniert es ja anscheinend. Ob Redmon grundsätzlich was anderes macht als MFileMon sehe ich eigentlich nicht. |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hmm..
Deine Schritte stimmen nicht ganz! - Ein Programm schickt den Druckauftrag (per Windows GDI) an einen installierten Drucker (Treiber, z.B. 'Mircosoft Print to PDF') - Der Treiber Konvertiert die GDI-Daten in Rohdaten, welche der Drucker versteht. (Handelt es sich hierbei um einen PostScript Drucker, dann sind die Daten danach PostScript) - Die Roh-Daten werden dann an den Drucker Anschluss (Port, z.B. LPT/USB/IP oder auch Redmon) weitergeleitet und dieser Port-Treiber reicht diese dann an den Physikalischen Drucker weiter. - Der Ausdruck erfolgt. Hier kommt nun RedMon ins Spiel! Wenn Redmon als Druckeranschluss angegeben wird, dann gibt Redmon diese nicht an den Drucker weiter, sondern ,je nach Konfiguration, an ein Script oder Programm. Dieses Script kann dann mit diesen Roh-Daten machen, was es will, z.B. als .PS abspeichern, oder bei PostScript diese per GhostScript in ein PDF konvertieren, oder die Roh-Daten bearbeiten und an den 'echten' Druckeranschluss weiter leiten. Wenn Du deine CMD-Zeile mit Ghostscript bei RedMon einträgst, dann werden die Daten direkt an GS geschickt, jedoch solltest Du hierfür eine separate Batch Datei als Ziel nehmen, wie es im Internet mehrfachst beschrieben wird. |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Zitat:
das habe ich gemacht. Damit kommen auch astreine .PS und nach Konvertierung PDF's raus. Kann sein dass es mit "Microsoft Print to PDF" auch geht, aber dann muss man den ja mit Redmon umbiegen, oder sich einen 2ten "Microsoft Print to PDF" installieren. Ich denke der Trick ist, egal welcher Drucker, Redmon/MFileMon legen sich als Port an und fangen den Druck ab. Das scheint soweit ja auch zu funktionieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz