17.05.2014 Aufrufe

PDFlib Tutorial 9.0.1

PDFlib Tutorial 9.0.1

PDFlib Tutorial 9.0.1

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

2.4 Cobol-Sprachbindung<br />

In Cobol werden die <strong>PDFlib</strong>-API-Funktionen nicht über die Standardnamen für C, sondern<br />

über spezielle Kurznamen aufgerufen. Diese Kürzel werden hier nicht näher beschrieben,<br />

sondern in einer eigenen Umsetzungstabelle (xref.txt) aufgeführt. So ist statt<br />

PDF_load_font( ) beispielsweise die abkürzende Schreibweise PDLODFNT zu verwenden.<br />

In Cobol programmierte <strong>PDFlib</strong>-Clients werden statisch mit dem PDFLBCOB-Objekt<br />

gelinkt. Dieses lädt dynamisch das PDLBDLCB Load Module (DLL), welches beim ersten<br />

Aufruf von PDNEW (entspricht PDF_new( )) wiederum das <strong>PDFlib</strong> Load Module (DLL) dynamisch<br />

lädt. Das Instanz-Handle der neu allozierten internen <strong>PDFlib</strong>-Struktur wird im<br />

Parameter P gespeichert, der in allen folgenden Aufrufen übergeben werden muss.<br />

Das PDLBDLCB Load Module liefert die Schnittstellen zwischen den Cobol-Funktionsnamen<br />

mit jeweils 8 Zeichen Länge und den <strong>PDFlib</strong>-Kernroutinen. Außerdem bildet es<br />

die asynchrone Ausnahmebehandlung von <strong>PDFlib</strong> auf das von Cobol erwartete, monolithische<br />

Verfahren gemäß »prüfe den Rückgabewert jeder Funktion« ab.<br />

Hinweis PDLBDLCB und PDFLIB müssen dem COBOL-Programm via STEPLIB verfügbar gemacht werden.<br />

Datentypen. Die Datentypen, die in der <strong>PDFlib</strong>-Referenz benutzt werden, müssen wie<br />

in den folgenden Beispielen in Cobol-Datentypen umgesetzt werden:<br />

05 PDFLIB-A4-WIDTH USAGE COMP-1 VALUE 5.95E+2. // float<br />

05 WS-INT PIC S9(9) BINARY. // int<br />

05 WS-FLOAT COMP-1. // float<br />

05 WS-STRING PIC X(128). // const char *<br />

05 P PIC S9(9) BINARY. // long *<br />

05 RETURN-RC PIC S9(9) BINARY. // int *<br />

Alle an das <strong>PDFlib</strong>-API übergebene Cobol-Strings sollten mit einem zusätzlichen Byte<br />

zur Speicherung des abschließenden Nullbytes (LOW-VALUES (NULL)) definiert werden.<br />

Rückgabewerte. Der Rückgabewert einer <strong>PDFlib</strong>-API-Funktion wird in einem zusätzlichen<br />

Parameter namens ret bereitgestellt, der per Referenz übergeben und mit dem Ergebnis<br />

des jeweiligen Funktionsaufrufs gefüllt wird. Der Rückgabewert 0 besagt, dass<br />

die Funktion erfolgreich ausgeführt wurde; alle anderen Werte weisen auf einen Fehler<br />

hin, der zu einem Abbruch der PDF-Generierung führt. Funktionen ohne Rückgabewert<br />

(C-Funktionen mit einem Ergebnis vom Typ void) verwenden diesen Parameter nicht.<br />

Fehlerbehandlung. In der Cobol-Sprachbindung gibt es keine <strong>PDFlib</strong>-Ausnahmebehandlung,<br />

sondern den zusätzlichen Parameter rc (zur Speicherung des Return Code),<br />

der von allen API-Funktionen als Fehlerindikator unterstützt wird. Der Parameter rc<br />

wird per Referenz übergeben und zur Übermittlung von Problemen verwendet. Jeder<br />

Wert ungleich 0 weist auf ein Fehlschlagen des Funktionsaufrufs hin.<br />

2.4 Cobol-Sprachbindung 39

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!