Einzelnen Beitrag anzeigen

oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#23

AW: Drucken mit gleichzeitigem generieren eines PDFs

  Alt 16. Feb 2022, 21:55
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:
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;
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.

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
  Mit Zitat antworten Zitat