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.