27. November 2012 09:15
Pfad := 'C:\Temp\';
FileName := 'TestPdf.pdf';
Ok := ERASE(Pfad+FileName);
IF ISCLEAR(PDFCreator) THEN
CREATE(PDFCreator);
IF ISCLEAR(PDFCreatorError) THEN
CREATE(PDFCreatorError);
PDFCreatorError := PDFCreator.cError;
IF NOT PDFCreator.cStart('/NoProcessingAtStartup',TRUE) THEN
ERROR('Status: Error[' + FORMAT(PDFCreatorError.Number) + ']: ' + PDFCreatorError.Description);
PDFCreatorOption := PDFCreator.cOptions;
PDFCreatorOption.UseAutosave := 1;
PDFCreatorOption.UseAutosaveDirectory := 1;
PDFCreatorOption.AutosaveDirectory := Pfad;
PDFCreatorOption.AutosaveFormat := 0; //PDF-Format
PDFCreatorOption.AutosaveFilename := FileName;
PDFCreator.cIsConverted := FALSE;
PDFCreator.cOptions := PDFCreatorOption;
PDFCreator.cClearCache();
DefaultPrinter := PDFCreatorL.cDefaultPrinter; //Der System-Standarddrucker wird ziwschengespeichert
PDFCreatorL.cDefaultPrinter := 'PDFCreator';
PDFCreator.cPrinterStop := FALSE;
REPORT.RUNMODAL(REPORT::"Debitor - Liste",TRUE,FALSE);
// Hier Prüfung einbauen!!!!
Window.OPEN('Bitte warten, PDF wird erstellt #1# #2#...');
WindowIsOpen := TRUE;
//Auf Erstellen warten, bis PDF konvertiert ist oder 60 Sekunden um sind
CounterL := 0;
REPEAT
SLEEP(1000);
CounterL := CounterL + 1;
Window.UPDATE(1,CounterL);
UNTIL (PDFCreator.cIsConverted) OR (CounterL=60);
//Abbruch prüfen
IF NOT PDFCreator.cIsConverted THEN
ERROR('Die PDF-Datei konnte nicht erstellt werden!');
// zurücksetzen
PDFCreatorOption := PDFCreator.cOptions;
PDFCreatorOption.UseAutosave := 0;
PDFCreatorOption.UseAutosaveDirectory := 0;
PDFCreator.cOptions := PDFCreatorOption;
PDFCreatorOption.AutosaveDirectory := '';
PDFCreatorOption.AutosaveFilename := '';
PDFCreator.cOptions := PDFCreatorOption;
//Beenden der PDF-Funktion
PDFCreator.cPrinterStop := TRUE;
PDFCreator.cClearCache();
CounterL := 0;
REPEAT
SLEEP(200);
CounterL := CounterL + 1;
Window.UPDATE(2,CounterL);
UNTIL (PDFCreator.cClose()) OR (CounterL = 30);
IF CounterL = 30 THEN
ERROR('Fehler beim Beenden vom PDFCreator');
CLEAR(PDFCreator);
IF WindowIsOpen THEN
Window.CLOSE;
WindowIsOpen := FALSE;
HYPERLINK(Pfad+FileName);
27. November 2012 09:34
27. November 2012 14:11
27. November 2012 15:28
28. November 2012 09:51
28. November 2012 11:42
29. November 2012 09:20
IF NOT PDFCreator.cIsConverted THEN BEGIN
// Wenn noch nicht konvertiert ist, dann muss eine Spool-Datei vorhanden sein
// wenn keine da ist, dann war entweder nix im Bericht, oder der User hat Abbruch geklickt
// bzw. den Report nicht gestartet
CLEAR(Verzeichnis);
Verzeichnis.SETRANGE(Path,SpoolDirectory);
Verzeichnis.SETRANGE("Is a file",TRUE);
IF (Verzeichnis.COUNT=0) AND (NOT PDFCreator.cIsConverted) THEN // keine Spool-datei da und auch immer noch nicht konvertiert
ERROR('Abbruch');
CLEAR(Verzeichnis);
//Auf Erstellen warten, bis PDF konvertiert ist
Counter := 0;
WHILE (NOT PDFCreator.cIsConverted) DO BEGIN
FensterUpdate();// Hier wird nur was angezeigt
SLEEP(100);
END;
END;
31. August 2017 11:39
CLEAR(PDFCreatorQueue);
CLEAR(PDFCreator);
SLEEP(1000);
IF ISCLEAR(PDFCreator) THEN
CREATE(PDFCreator);
IF ISCLEAR(PDFCreatorQueue) THEN BEGIN
CREATE(PDFCreatorQueue);
IF NOT PDFCreator.IsInstanceRunning THEN
PDFCreatorQueue.Initialize();
END;
// Den PDFCreator-Drucker für diesen Report in Tabelle "Printer Selection" eintragen
MyPDFReport.SETTABLEVIEW(MyTable);
MyPDFReport.USEREQUESTFORM(FALSE);
MyPDFReport.RUNMODAL;
REPEAT
Seconds += 1;
UNTIL (PDFCreatorQueue.WaitForJob(10)) OR (Seconds > 20);
IF Seconds <= 20 THEN BEGIN
PrintJob := PDFCreatorQueue.NextJob;
PrintJob.SetProfileByGuid('DefaultGuid');
PrintJob.SetProfileSetting('OpenViewer','false');
PrintJob.ConvertTo(MyPDFPathAndFileName);
END;
// ReleaseCom muss immer erfolgen, auch wenn nichts zu drucken war, sonst blockiert der nächste Aufruf weil die PDFCreator-Instanz belegt ist
PDFCreatorQueue.ReleaseCom();
4. September 2017 14:31
4. September 2017 14:44
mikka hat geschrieben:Welche Klassen sind:
- PDFCreatorQueue
-PDFCreator
9. August 2020 20:34
9. August 2020 22:43
10. August 2020 09:17
GeorgRost hat geschrieben:Was könnte das sein?
IF Seconds <= 20 THEN
12. August 2020 20:56