![]() |
Druckproblem
Hallo alle Zusammen,
ich tüddel schon seit Tagen mit einem Problem beim Drucken rum. Ich möchte gerne meine Druckauftäge direkt über einen Printserver drucken lassen.
Delphi-Quellcode:
Die Prozedure funktioniert ja soweit, bis auf das auf dem Drucker nur Datenmüll rauskommt. :cry:
procedure SpoolerDruck(const Printer, Data, sSpoolName : string);
const cRaw = 'RAW'; type TDoc_Info_1 = record DocName: PChar; OutputFile: PChar; Datatype: PChar; end; var PrinterHandle: THandle; DocInfo: TDoc_Info_1; BytesWritten: Cardinal; Count: Cardinal; Defaults: TPrinterDefaults; begin Defaults.pDatatype := cRaw; Defaults.pDevMode := nil; Defaults.DesiredAccess := PRINTER_ACCESS_USE; Count := Length(Data); if not OpenPrinter(PChar(Printer), PrinterHandle, @Defaults) then raise myPrinterError.Create('Drucker kann nicht geöffnet werden !'); DocInfo.DocName := PChar(sSpoolName); DocInfo.OutputFile := nil; DocInfo.Datatype := cRaw; try if StartDocPrinter(PrinterHandle, 1, @DocInfo) = 0 then raise myPrinterError.Create('Spooler ist nicht bereit !'); try if not StartPagePrinter(PrinterHandle) then raise myPrinterError.Create('Seite kann nicht gedruckt werden !'); try if not WritePrinter(PrinterHandle, @Data, Count, BytesWritten) then raise myPrinterError.Create('Fehler beim senden der Daten an den Drucker !'); finally if not EndPagePrinter(PrinterHandle) then raise myPrinterError.Create('End Page nicht möglich !'); end; finally if not EndDocPrinter(PrinterHandle) then raise myPrinterError.Create('Spooler kann Druck nicht abschließen !'); end; finally ClosePrinter(PrinterHandle); end; if BytesWritten <> Count then raise myPrinterError.Create('Es konnten nicht alle Daten gedruckt werden !'); end; Vielleicht hat ja jemand von Euch schonmal sowas probiert und kann mir vielleicht weiterhelfen ? |
Re: Druckproblem
Ich hab mal ne Druck-Engine gebaut (arbeitsmäßig, daher nicht abdruckbar:)), um alte DOS-Druckausgaben auf Windows umzusetzen. Gleich vorweg...es war ein Drama.
Aber ein guter ansatzpunkt ist der Quelltext von Delphi selbst, da gibts ne Unit namens Printers. Da steht alles drinn was man Grundsätzlich zum drucken von normalen Text braucht.:) Da das ganze auch im Netzwerk funzt, sollte es kein Problem sein das an den entsprechenden Server zu schicken. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:34 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