CIB format technischer Leitfaden (DE)
20. Schneller Einstieg
Allgemein
Einbindung von CIB format/output als C++ Codebeispiel
(PDF-Konvertierung mit Formularfeldern)
Einbindung von CIB format/output als C++ Codebeispiel
(PDF-Konvertierung mit Get-Property)
Einbindung von CIB format/output als VB Codebeispiel
Einbindung von CIB format/output als Java Codebeispiel
Allgemein
Dieses Kapitel zeigt Ihnen in einem Kurzüberblick eine mögliche Nutzung von CIB format/output aus einer Kundenapplikation. Die Beispiele nutzen keineswegs den vollen Funktionsumfang, sondern demonstrieren das grundsätzliche Prinzip beim Umgang mit CIB format/output.
Für Ihren konkreten Anwendungsfall können Sie auch gerne beim CIB Support rückfragen.
Hinweis:
Zur schnellen Benutzung von CIB format/output über die CIB runshell aus der Kommandozeile, befinden sich im Übergabepaket fertige Beispiele. Die Aufrufe der CIB runshell sind in Batch-Dateien fertig vorgegeben.
Einbindung von CIB format/output als C++ Codebeispiel (PDF-Konvertierung mit Formularfeldern)
Nachfolgendes Beispiel demonstriert die Ansteuerung von CIB format/output unter C++.
Die im Codebeipiel verwendeten Dateien sind auf die im Lieferumfang enthaltenen Beispiele abgestimmt, damit ist eine sofortige Funktionalität zu Testzwecken gewährleistet.
Die Übersetzung des Codebeispiels erfolgte in Microsoft Visual Studio C++ 6.0. Für diese Entwicklungsumgebung ist auch das Projektfile beigefügt.
Für eine Integration in das eigene Projekt ist zu beachten:
- Soll die Dll statisch oder dynamisch angezogen werden? Das Codebeispiel benutzt die statische Einbindung.
- Anbindung an die eigene Fehlerbehandlung. Das Codebeispiel enthält eine minimale textbasierte Fehlerausgabe. Der Umgang mit Fehlercodes ist demonstriert.
- Anbindung an die eigenen Dokumentanforderungen. Das Codebeispiel enthält hardcodierte Dateinamen und dient nur zu Demonstrationszwecken. Die Verwaltung gilt es komplett den eigenen Anforderungen anzupassen
Hinweis:
Dieses Beispiel stellt einen funktionierenden Gesamtablauf dar. Zur Recherche einzelner Funktionen und deren mögliche Ausprägungen wird auf die Dokumentation, Hilfe und den CIB Support verwiesen.
// Samplepdfformfields.cpp : Definiert den Einsprungpunkt für die Konsolenanwendung. // #include#include "cibprt.h" #include "COMod.h" #include int main(int argc, char* argv[]) { int t_iRes; int t_iRetVal = 0; int t_iErrorNum; char t_ErrorText[256]; long t_lPropValue; //Allgemeine Properties für die PDF-Konvertierung setzen: //Eingabedateiname CibPrSetProperty(COMOD_PROP_INPUT_FILENAME, "..\\work\\test.rtf"); //Name der PPD-Datei CibPrSetProperty(COMOD_PROP_PPD_FILENAME, "..\\work\\hp4050_6.ppd"); //Das Verzeichnis mit den Schriftarten CibPrSetProperty(COMOD_PROP_FONT_WORKSPACE, "C:\\Windows\\Fonts"); //Format, das die Ausgabedatei haben soll CibPrSetProperty(COMOD_PROP_OUTPUT_FORMAT, "FormatPdf"); //Properties für Formularfelder setzen: //Formularfelder anzeigen t_lPropValue = 1; CibPrSetProperty(COMOD_PROP_SHOW_FORMFIELDS, &t_lPropValue); //Anzahl der Zeichen des Vorgabetexts in Textfeld ist max. Eingabelänge t_lPropValue = 1; CibPrSetProperty(COMOD_PROP_FORMFIELD_USEDEFAULTTEXTMAXCHARS, &t_lPropValue); //Im Code angegebene Hintergrundfarbe für alle Checkboxen benutzen t_lPropValue = 1; CibPrSetProperty(COMOD_PROP_FORMFIELD_USECHECKBOXBACKCOLOR, &t_lPropValue); //Hintergrundfarbe für alle Checkboxen (rot) t_lPropValue = 255; CibPrSetProperty(COMOD_PROP_FORMFIELD_CHECKBOXBACKCOLOR, &t_lPropValue); //Die RTF-Datei einlesen t_iRes = CibPrLoad(); if(!t_iRes) { //Fehler ausgeben CibPrGetLastError(&t_iErrorNum); CibPrGetLastErrorText(t_ErrorText, 255); printf("Fehler %d beim Einlesen der Eingabedatei:\n%s\n", t_iErrorNum, t_ErrorText); t_iRetVal = t_iErrorNum; } else { //Die Ausgabedatei schreiben t_iRes = CibPrSave(); if(!t_iRes) { //Fehler ausgeben CibPrGetLastError(&t_iErrorNum); CibPrGetLastErrorText(t_ErrorText, 255); printf("Fehler %d beim Schreiben der Ausgabedatei:\n%s\n", t_iErrorNum, t_ErrorText); t_iRetVal = t_iErrorNum; } } return t_iRetVal; }
Beschreibung des Codebeispiels:
Das Codebeispiel setzt als Erstes die Properties für die PDF-Konvertierung mit Formularfeldern.
Durch den Aufruf von CIBPrLoad() und CIBPrSave() wird die Eingabedatei in ein PDF-Formular konvertiert.
Einbindung von CIB format/output als C++ Codebeispiel
(PDF-Konvertierung mit Get-Property)
Das nachfolgende Beispiel zeigt die Vorgehensweise beim Abholen einer Property (GetProperty).
// Sample.cpp : Definiert den Einsprungpunkt für die Konsolenanwendung. // #include#include "cibprt.h" #include "COMod.h" #include int main(int argc, char* argv[]) { int t_iRes = 1; int t_iRetVal = 0; int t_iErrorNum = 0; char t_ErrorText[256]; memset(t_ErrorText, 0, 256); long t_lPropValue; //Allgemeine Properties für die PDF-Konvertierung setzen: //Eingabedateiname CibPrSetProperty(COMOD_PROP_INPUT_FILENAME, "..\\work\\test.rtf"); //Name der PPD-Datei CibPrSetProperty(COMOD_PROP_PPD_FILENAME, "..\\work\\hp4050_6.ppd"); //Das Verzeichnis mit den Schriftarten CibPrSetProperty(COMOD_PROP_FONT_WORKSPACE, "C:\\Windows\\Fonts"); //Format, das die Ausgabedatei haben soll CibPrSetProperty(COMOD_PROP_OUTPUT_FORMAT, "FormatPdf"); //Die RTF-Datei einlesen t_iRes = CibPrLoad(); if(!t_iRes) { //Fehler ausgeben CibPrGetLastError(&t_iErrorNum); CibPrGetLastErrorText(t_ErrorText, 255); printf("Fehler %d beim Einlesen der Eingabedatei:\n%s\n", t_iErrorNum, t_ErrorText); t_iRetVal = t_iErrorNum; } else { //Die Ausgabedatei schreiben t_iRes = CibPrSave(); if(!t_iRes) { //Fehler ausgeben CibPrGetLastError(&t_iErrorNum); CibPrGetLastErrorText(t_ErrorText, 255); printf("Fehler %d beim Schreiben der Ausgabedatei:\n%s\n", t_iErrorNum, t_ErrorText); t_iRetVal = t_iErrorNum; } else { int t_Error=0; long t_documentUsedFontsStringSize = 128; char* t_documentUsedFonts = new char[t_documentUsedFontsStringSize]; memset(t_documentUsedFonts, 0, t_documentUsedFontsStringSize); do { t_iErrorNum = 0; //Wert der Property “DocumentUsedFonts abholen t_iRes = CibPrGetProperty(CIBPR_PROP_DOCUMENT_USED_FONTS, t_documentUsedFonts, t_documentUsedFontsStringSize); if (!t_iRes) { CibPrGetLastError(&t_iErrorNum); t_documentUsedFontsStringSize *= 2; delete t_documentUsedFonts; t_documentUsedFonts= new char[t_documentUsedFontsStringSize]; memset(t_documentUsedFonts, 0, t_documentUsedFontsStringSize); } } while (!t_iRes && t_Error == CIBPRT_ERROR_BUFFERTOOSMALL/*47*/); //Ausgabe auf der Konsole printf("DocumentUsedFonts:\n%s\n", t_documentUsedFonts); delete t_documentUsedFonts; t_documentUsedFonts= NULL; } } return t_iRetVal; }
Beschreibung des Codebeispiels:
Das Codebeispiel setzt als Erstes die Properties für die PDF-Konvertierung und holt danach den Wert der Property „DocumentUsedFonts“ ab.
Durch den Aufruf von CibPrLoad() und CibPrSave() wird die Eingabedatei in ein PDF konvertiert und dabei die Property „DocumentUsedFonts“ mit Inhalten versorgt, die dann über GetProperty(…) abgeholt werden können.
Einbindung von CIB format/output als VB Codebeispiel
Nachfolgendes Beispiel demonstriert die Ansteuerung von CIB format/output unter Visual Basic.
Der nachfolgende VB Code sollte am besten in ein VB Form mit zwei Buttons (Command1 und Command2), sowie einer Listbox „List1“ eingefügt werden.
Die im Codebeispiel verwendeten Dateien sind auf die im Lieferumfang enthaltenen Samples abgestimmt, damit ist eine sofortige Funktionalität zu Testzwecken gewährleistet.
Dim t_long As Long Dim t_bool As Long Dim t_result As Long Dim t_String As String Dim errMsg As String Dim t_iErrorNumber As Long t_String = "FormatPdf" t_result = CibPrSetProperty("OutputFormat", ByVal t_String) t_String = "output.rtf" t_result = CibPrSetProperty("InputFilename", ByVal t_String) t_String = "output.pdf" t_result = CibPrSetProperty("OutputFilename", ByVal t_String) t_long = CLng(Form1.hWnd) t_result = CibPrSetProperty("ParentHwnd", t_long) t_bool = CLng(True) t_result = CibPrSetProperty("AbortDlg", t_bool) MsgBox ("Starte Print um PDF zu erzeugen") t_result = CibPrLoad If t_result = 1 Then t_result = CibPrSave t_long = CibPrGetLastError(t_iErrorNumber) t_long = 256 errMsg = String(256, " ") t_long = CibPrGetLastErrorText(ByVal errMsg, t_long) If t_iErrorNumber <> 0 Then errMsg = Mid(Trim(errMsg), 1, Len(Trim(errMsg)) - 1) + " (" + CStr(t_iErrorNumber) + ")" MsgBox errMsg Else MsgBox "PDF erfolgreich erstellt!" End If
Einbindung von CIB format/output als Java Codebeispiel
Nachfolgendes Beispiel demonstriert die Ansteuerung von CIB format/output unter Java.
Der nachfolgende Java Code muss in eine Java-Klasse „FormatOutputSample“ eingefügt werden. Zusätzlich ist der Java JCoMod Wrapper (mindestens Version 2.0.20) erforderlich, der die CIB format/output native Library für Java über JNI kapselt und so eine einfache Steuerung aus Java möglich macht.
Der Wrapper besteht aus diesen Dateien:
- CoModJobs.jar
- JCoMod.dll
Damit das Beispiel kompiliert, muss die CoModJobs.jar im Classpath angegeben werden. Zum Zeitpunkt der Entwicklung war ein JDK 1.4.1 installiert.
Die im Codebeispiel verwendeten Dateien sind auf die im Lieferumfang enthaltenen Samples abgestimmt, damit ist eine sofortige Funktionalität zu Testzwecken gewährleistet.