![]() |
AW: Drucken mit gleichzeitigem generieren eines PDFs
Hallo zusammen,
ich möchte nur kurz sagen, wie ich das Ganze bis jetzt gemacht habe: Hiermit schreibe ich die PS Datei
Delphi-Quellcode:
Die Funtion ExecuteWithArgs(GetArgs) führt die Konvertierung zum PDF mit Ghostscript aus:
XStream := TMemoryStream.Create;
StdIn := THandleStream.Create(GetStdHandle(STD_INPUT_HANDLE)); StdIn.Seek(0,0); repeat BytesRead := StdIn.Read(Buffer,1024); if BytesRead > 0 then XStream.WriteBuffer(Buffer,BytesRead); until BytesRead <= 0; //exportdir = Dir to export files FStream := TFileStream.Create(exportdir + 'xy.ps', fmCreate); XStream.Position := 0; if FStream.CopyFrom(XStream, XStream.Size) > 0 then begin FStream.Free; XStream.Free; try try oGS := TGhostScript.Create; oGS.ExecuteWithArgs(GetArgs); finally FreeAndNil(oGS); end; except on E: TExceptionGS do begin end; end;
Delphi-Quellcode:
Ich rufe oGS.ExecuteWithArgs(GetArgs2) nochmal mit anderen Parametern auf um die Ausgabe zum Drucker um zu leiten.
function TForm1.GetArgs(): APAnsiChar;
var oArgs: APAnsiChar; begin setlength(oArgs, 0); AddArg(oArgs, 'gs'); AddArg(oArgs, '-r300'); AddArg(oArgs, '-dNOSAFER'); 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=' + exportdir + filename); AddArg(oArgs, '-f'); AddArg(oArgs, exportdir + 'xy.ps'); result := oArgs; end;
Delphi-Quellcode:
Hier wird ein Test-Drucker namens TESTPS angesteuert.
function TForm1.GetArgs2(): APAnsiChar;
var oArgs: APAnsiChar; begin setlength(oArgs, 0); AddArg(oArgs, 'gs'); AddArg(oArgs, '-dBATCH'); AddArg(oArgs, '-dNOPAUSE'); AddArg(oArgs, '-dNOSAFER'); AddArg(oArgs, '-sDEVICE=mswinpr2'); AddArg(oArgs, '-sOutputFile=%printer%TESTPS'); AddArg(oArgs, exportdir + 'xy.ps'); result := oArgs; end; Soweit funktioniert alles. LG Mirko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 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