AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Druckproblem

Ein Thema von Mattin · begonnen am 19. Sep 2003 · letzter Beitrag vom 20. Sep 2003
Antwort Antwort
Mattin

Registriert seit: 4. Sep 2003
72 Beiträge
 
Delphi 7 Professional
 
#1

Druckproblem

  Alt 19. Sep 2003, 14:29
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:
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;
Die Prozedure funktioniert ja soweit, bis auf das auf dem Drucker nur Datenmüll rauskommt.

Vielleicht hat ja jemand von Euch schonmal sowas probiert und kann mir vielleicht weiterhelfen ?
Mit freundlichen Grüßen
Mattin

http://www.martin-karwoth.de
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Druckproblem

  Alt 20. Sep 2003, 14:20
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.
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz