![]() |
Mehrere PDF Dateien über TPDF drucken
Hi,
schon einmal jemand hinbekommen über das OCX Element TPDF mehrere PDF Dateien hintereinander zu drucken? Das Problem bei mir ist, das LoadFile() nicht wartet bis das PDF komplett geladen wurde und damit printAll ins leere greift. Bei einer Schleife mit mehrere Dateien kommt dabei immer das letze heraus. Setze ich ein sleep zwischen loadFile() und printAll, dann stoppt auch loadFile() und ich habe das selbe Problem. Nur mit einem showmessage kann ich das Problem umgehen. Was natürlich nicht wirklich praktikabel ist. Gruß Sven |
Re: Mehrere PDF Dateien über TPDF drucken
Keiner ne Idee? *mist*
|
Re: Mehrere PDF Dateien über TPDF drucken
Ich hab zwar die :?: Komponente :?: nicht, aber du könntest es ja somachen:
Delphi-Quellcode:
irgendwie kannst du bestimmt testen, ob der Drucker ins leere gegriffen hat und das dann wiederholen :?:
loadfile(filename);
while not printall do begin end; end; oder so:
Delphi-Quellcode:
loadfile(filename);
while not loaded do begin end; printall; |
Re: Mehrere PDF Dateien über TPDF drucken
Doch Du hast die bestimmt ;-)
Wenn Du den Acrobat Reader installiert hast, kannst Du eine ActiveX Komponente installieren. printAll ist leider eine procedure, Ereignisse für erfolgreiches laden und erfolgreiches drucken gibt es auch nicht. loadFile() ist zwar als function mit einem boolean Rückgabewert deklariert, leider gibt es gar nichts zurück :-/ |
Re: Mehrere PDF Dateien über TPDF drucken
dann versuch irgendeine Aktion durchzuführen, für die eine Datei geladen sein muss, und bei der sonnst einen exception auftritt. Die kannst du dann abfragen.
//edit: auch wenn abfragen per exception verschrien sind, was ist daran schlecht? |
Re: Mehrere PDF Dateien über TPDF drucken
Moin zusammen,
also vorweg, ich habe mit TPDF bisher keine Erfahrung, aber Du müstest die Druckerwarteschlange abfragen können, ob noch ein Dokument mit Deinem Dokumentennamen vorhanden ist. Ist es weg, dann drucke das nächste. Grüße // Martin PS: Sonst hilft vielleicht eine Mail an Adope. Probieren kann man es ja mal, denn bei den OCX´en hängt man doch sehr am Hersteller. PPS: Vielleicht findet sich hier noch etwas: ![]() 3PS: Zur automatischen OCX-Registrierung findet sich hier auch etwas: ![]() Gibt es eigentlich eine Möglichkeit ocx´se zu verwenden ohne diese zu registrieren, sozusagen dynamisch zu laden wie dll? |
Re: Mehrere PDF Dateien über TPDF drucken
er will ja garnicht die Druckerwarteschlangen abfragen sonder abfragen welchen Auftrag der Drucker gekriegt hat.
|
Re: Mehrere PDF Dateien über TPDF drucken
Moin, moin,
ja was zum Drucker geht, muß erst durch die Warteschlange. Hier gibt es Info wie man an die Warteschlange kommt: ![]() PS: Man kann auch über die Position des Dokumentes in der Warteschlange den Zeitrum bis zur erneuten Abfragen der Schlange setzen. Sonst, viel Erfolg // Martin |
Re: Mehrere PDF Dateien über TPDF drucken
Theorie gut, Praxis schlecht.
Vorallem ist das Risiko ziemlich hoch das ne Endlosschleife entsteht. Zunächst ist nach folgendem Code:
Delphi-Quellcode:
Das Ergebnis 0.
pdf1.LoadFile(pdfpfad);
pdf1.printall; showmessage(inttostr(getNumberPrintJobs)); Ich müsste also schauen wann der Druckauftrag reinkommt und bis er wieder raus ist und dann erst weitermachen in der Verarbeitung. Höchst heikel wie ich finde. Was ist z.b wenn der Drucken angehalten ist, oder die Druckaufträge nicht weiter bearbeitet?! *hmm* Dennoch danke für die Tipp. Sven |
Re: Mehrere PDF Dateien über TPDF drucken
du kannst ja in die Schleife noch eine Zeitabfrage reinbauen. Vor der Schleife schreibst du
Delphi-Quellcode:
(timestart:tdatetime)
timestart:=now;
In der Schleife dann
Delphi-Quellcode:
if 24*3600*(now-timestart)>=10 then begin //wenn die endlosschleife seit mehr als 10 sec läuft
messagedlg('Dokument konnte nicht gedruckt werden: Der Drucker reagiert nicht.',mterror,[mbok],0); exit; //break wenn nur zum nächsten doku gesprungen werden soll. end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:27 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