AGB  ·  Datenschutz  ·  Impressum  







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

"kontrolliertes" Drucken

Ein Thema von Delix · begonnen am 8. Jul 2010 · letzter Beitrag vom 8. Jul 2010
Antwort Antwort
Delix

Registriert seit: 4. Mai 2004
Ort: Lippstadt
56 Beiträge
 
#1

"kontrolliertes" Drucken

  Alt 8. Jul 2010, 10:18
Wir drucken mit Delphi / Fastreport Rechnungen, die jeweils als einzelner Druckjob ausgegeben werden. Bei einem Kunden ist es bei einem Drucklauf von ca. 1000 Rechnungen vorgekommen, dass ein zusammenhängender Block von ca. 30 Rechnungen offensichtlich nicht gedruckt wurde. Lt. unserem Programm wurden aber alle Rechnungen korrekt ausgegeben. Der Drucker ist via Printserver an eine Windows 2008-Server angeschlossen.

Meine Frage ist: Wie kann man sicherstellen, das jedes einzelne Dokument tatsächlich gedruckt wurde oder gibt es im Nachhinein eine Kontrollmöglichkeit?

Schöne Grüsse
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: "kontrolliertes" Drucken

  Alt 8. Jul 2010, 10:29
Sobald der Druckauftrag an den Druckerspooler übergeben ist gibt es m.W. keine Möglichkeit mehr festzustellen, ob der Auftrag auch durchgeführt wurde
Markus Kinzler
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#3

AW: "kontrolliertes" Drucken

  Alt 8. Jul 2010, 12:34
...Meine Frage ist: Wie kann man sicherstellen, das jedes einzelne Dokument tatsächlich gedruckt wurde oder gibt es im Nachhinein eine Kontrollmöglichkeit?
Hallo,

hier findest du eine recht gute Übersicht, wie der Server Drucke überwachen kann:

http://www.windowsnetworking.com/art...003-Part3.html

Zunächst landen die Events in einem Logfile. Zur automatischen Überprüfung müsste man ein entsprechendes Script erstellen.

Gruss Reinhard
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

AW: "kontrolliertes" Drucken

  Alt 8. Jul 2010, 13:05
Wie schwer wäre es, sowas zu einem Druckauftrag zusammenzufassen!? Also schon Programmseitig zu reagieren.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Delix

Registriert seit: 4. Mai 2004
Ort: Lippstadt
56 Beiträge
 
#5

AW: "kontrolliertes" Drucken

  Alt 8. Jul 2010, 14:47
Danke erst mal!

Das mit dem Logging werde ich mir mal genauer ansehen. Zusammenfassen fällt aus, da je nach Rechnungsart und Sprache unterschiedliche Reports verwendet werden müssen.

Schönen Gruss
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

AW: "kontrolliertes" Drucken

  Alt 8. Jul 2010, 17:50
Das Programm könnte die Anzahl der Aufträge im Spooler abfragen.
In meiner Software verhindere ich so, dass hunderte Druckjobs im Spooler hängen weil der Drucker nicht bereit ist.
Wenn mehr als 3 Jobs (einstellbar) im Spooler sind, geht ein Fenster auf und der Benutzer kann entscheiden, ob er trotzdem weiterdrucken oder warten möchte bis das Limit unterschritten wurde.

Delphi-Quellcode:
function PrinterJobsCount(const PrinterName : String) : Integer;
var
   hPrinter : THandle;
   PPI2 : PPrinterInfo2;
   dwNeeded : DWORD;
begin
   Result := -1;

   // open the printer
   if NOT OpenPrinter(PChar(PrinterName), hPrinter, Nil) then
      raise EPrinter.Create('Can''t open printer '+PrinterName+
         #13+SysErrorMessage(GetLastError));

   try
      // just get the amount of needed memory
      GetPrinter(hPrinter, 2, Nil, 0, @dwNeeded);

      // allocate the memory
      GetMem(PPI2, dwNeeded);
      try
         // get the printer information
         if NOT GetPrinter(
            hPrinter, // handle to printer
            2, // information level
            PPI2, // printer information buffer
            dwNeeded, // size of buffer
            @dwNeeded // bytes received or required
            )
          then
            raise EPrinter.Create('Error getting information for printer: '+
               PrinterName+#13+SysErrorMessage(GetLastError));

         Result := PPI2^.cJobs;
      finally
         FreeMem(PPI2);
      end;
   finally
      ClosePrinter(hPrinter);
   end;
end;
Andreas

Geändert von shmia ( 8. Jul 2010 um 17:55 Uhr) Grund: + Sourcecode
  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 04:39 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