![]() |
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 19:44 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