Das nachfolgende Script soll die Benutzung des PDF Exportfilters unter NotesToPaper bzw. Lotus Script verdeutlichen. Das Script ist nicht vollständig und daher nicht komplett lauffähig. Ein komplettes Script finden Sie in der Beispiel-Anwendung NTPPDF.NSF, die während der Installation in das Data-Verzeichnis des Clients kopiert wird und als Icon in der Programmgruppe vorhanden ist. In der Datenbank ist eine Script-Bibliothek "ExportAsPDF", die die komplette Routine enthält.
Erklärung: Alle Kommentare stehen in Kursiv und alle wichtigen Befehle innerhalb des Scriptes sind fett hervorgehoben.
Am Anfang wird der Report aktiviert ...
ReportID = NTPInitFromDatabase ( "CONLIST", ServerName, DatabaseName, NTPPROCESS_SHOWMESSAGES )
If ReportID >= 0 Then
Wichtig: Nach dem Aktivieren des Reports, muss verhindert werden, dass der Report nach der Ausführung durch NTPProcessReportExt wieder gelöscht wird!!!
Status = NTPSetOption ( ReportID, NTPOPTION_KEEPREPORT, 1 )
Keine Vorschau anzeigen
Status = NTPSetOption ( ReportID, NTPOPTION_SHOWPREVIEWWINDOW, 0 )
Alle Dokumente in der Datenbank durchlaufen
Set doc = view.GetFirstDocument
While ( Not ( doc Is Nothing ) )
Alle Felder an den Report übergeben (pro Dokument)
Call NTPSendFieldByName ( ReportID, "COMPANYNAME", Cstr(doc.CompanyName(0) ) )
….
….
Abschluss eines Datensatzes für den Report
Status = NTPEndDocument ( ReportID )
Set doc = view.GetNextDocument ( doc )
Wend
Datenübergabe beenden
Status = NTPEnd ( ReportID )
Wichtig: Die Ausführung bzw. Ausgabe des Reports muss auf die Vorschau erfolgen!
Status = NTPProcessReportExt ( ReportID, _
NTPPROCESS_PRINTTOSCREEN, _
NTPPROCESS_HIDEPRINTERDIALOG, _
NTPPROCESS_SHOWSTATUSBAR, _
NTPPROCESS_SHOWMESSAGES, 0 )
Report erstellt?
If ( Status = 0 ) Then
Nach erfolgreicher Erstellung des Reports, kann der erstellte Reportname ausgelesen werden. Dieses sollte einerseits aus Sicherheitsgründen gemacht werden und andererseits wird der Name gebraucht, um später die Vorschau-Datei löschen zu können.
Bei dem Export des Reports wird später nicht der Dateiname, sondern die ReportID übergeben.
StrBuffer = Space(254)
Status = NTPGetReportFileName ( ReportID, StrBuffer )
StrBuffer = Trim ( StrBuffer )
Haben wir eine gültige Vorschau-Datei?
If ( StrBuffer <> "" ) Then
Über die Funktion NTPCreateTempFile kann eine Datei für die Erstellung des PDF Exports erstellt werden. Die erstellte Datei muss die Endung PDF haben.
tmpFileName = Trim$ ( NTPCreateTempFile ( "PDF" ) )
Temp. Datei erstellt?
If ( tmpFileName <> "" ) Then
Optionen für den PDF Export definieren
PDFOptions = _
NTPEXPORT_PDF_FONT_USE_TRUETYPE + _
NTPEXPORT_PDF_COMPRESSION + _
NTPEXPORT_PDF_LAUNCH_APPLICATION
Über die Funktion NTPExport wird dann der Exportfilter aufgerufen und
die PDF Datei erstellt.
Status = NTPExportReport ( ReportID, 0, 6, tmpFileName, 1, 1, PDFOptions, "", "","" )
If ( Status <> 0 ) Then
Messagebox ( "NotesToPaper Error: " + NTPGetErrorText ( Status ) )
Else
Messagebox ( "The report was created as a PDF file." & Chr(13) & Chr (10) & "If the PDF viewer does not start automatic, the PDF can be viewed by opening the following file: " & tmpFileName )
End If
End If
Am Ende des Exports muss die erstellte Vorschau-Datei gelöscht werden! Normalerweise wird dieses automatisch von NotesToPaper® gemacht, da dieses allerdings zuvor im Script abgestellt wurde, muss es hier manuell gemacht werden.
Kill ( StrBuffer )
End If
End If
End If