CIB barcode technischer Leitfaden

7. Schneller Einstieg

Dieses Kapitel zeigt Ihnen in einem Kurzüberblick eine mögliche Nutzung des dynamischen Barcodes mit CIB format/output in einer Kundenapplikation.

Hinweis:

Mit CIB output ist es möglich eine MultiRTF Eingabedatei in verschiedene Ausgabeformate überzuführen. Eine MultiRTF Datei ist EINE physikalische Datei, die intern aber mehrere RTF-Dokumente beinhaltet.

Sie kann z.B. über CIB merge unter Verwendung des –o+ Parameters über mehrere Mischläufe aneinandergehängt werden.

Herkömmliche RTF-Verarbeitungsprogramme (z.B. MS-Office) können MultiRTFs i.d.R. zwar einlesen, zeigen aber dann nur den Inhalt der allerersten RTF Datei.

CIB view/output sind in der Lage den kompletten Inhalt auszugeben.

Bei einer MultiRTF-Umsetzung in andere Zielformate kann man unterscheiden ob die Ausgabe in lauter einzelne Zieldateien erfolgen soll, oder ob eine Zieldatei den gesamten Inhalt wiedergeben soll.


Ein C- Beispiel mit MultiRTF und dynamischen Barcodes

Nachfolgendes Beispiel konvertiert eine MultiRTF Datei nach PDF und setzt auf jede Dokumentseite einen Barcode eigenen Inhalts.

#include "cibprt.h"
BOOL DoMultiRTFToPdfWithBarcode()
{
     BOOL t_fSingleOutput = TRUE; /*Es soll nur eine Zieldatei entstehen*/
CibPrSetProperty(COMOD_PROP_MULTIRTF_SINGLEOUTPUT, &t_fSingleOutput, sizeof(BOOL));
     BOOL t_MultirtfPropertiesSupported = FALSE; /*Abwärtskompatibilität*/
     BOOL t_MultiRtfPending = FALSE; /*default ist kein MultiRTF*/
     /*Eingabedatei setzen "InputFilename"*/
CibPrSetProperty(COMOD_PROP_INPUT_FILENAME, "MultiTest.rtf");
     /*Ausgabedatei setzen "OutputFilename"*/
CibPrSetProperty(COMOD_PROP_OUTPUT_FILENAME, "BarcodeAusgabe.pdf");
     /*Ausgabeformat setzen "OutputFormat" "FormatPdf"*/
  CibPrSetProperty(COMOD_PROP_OUTPUT_FORMAT, COMOD_OPT_FORMAT_PDF);
     do {
          if(!CibPrLoad())
          {
               /*Fehlerbehandlung einbauen*/
               return FALSE;
          }
          char* t_PageCount[15]; /*StringProperty*/
          memset(t_PageCount,0,15); /*initialisieren*/
          /*Anzahl Seiten des aktiven Einzeldokumentes abholen "PageCount"*/
     CibPrGetProperty(COMOD_PROP_PAGECOUNT,&t_PageCount,14);
          /*abhängig von der Seitenzahl jetzt einen beliebigen String*/
         long t_nPageCount = atol(t_PageCount,10);           /*mit mehreren Bacrodeinfo's zusammenbauen*/
          char t_MultiBarcodeString[4096];        
memset(t_MultiBarcodeString,0,4096);
          for(int i=0; i < t_nPageCount; i++)
          {
               char t_PageBarcode;
               /*hier kann jetzt dynamisch abhängig von der Seitenangabe etc.*/
               /*eine Barcodevorgabe generiert werden*/
          strcpy(t_PageBarcode,"POS:x;y;<PageNr>;BARCODE:Code39;1234567890;                     horizontalleft;0.5mm;7.5mm;nochecksum");
               if(i > 0)
                    strcat(t_MultiBarcodeString,";"); /*Trenner dazwischen*/
          strcat(t_MultiBarcodeString,t_PageBarcode);
          }
          /*Barcodeinfo für dieses Dokument absetzen "BarcodeFilename"*/
     CibPrSetProperty(COMOD_PROP_BARCODE_FILENAME,&t_MultiBarcodeString);
          if(!CibPrSave())
          {
               /*Fehlerbehandlung einbauen*/
               return FALSE;
          }
     /* ACHTUNG: Ältere CIB Dlls können das nicht*/
     t_MultirtfPropertiesSupported = CibPrGetProperty(COMOD_PROP_MULTIRTF_PENDING, &t_MultiRtfPending, sizeof(BOOL));
     }
     while (t_MultirtfPropertiesSupported && t_MultiRtfPending);
     /* Anzahl der enthaltenen Dokumente ausgeben*/
     long t_MultiRtfIndex = 0;
CibPrGetProperty(COMOD_PROP_MULTIRTF_INDEX, &t_MultiRtfIndex, sizeof(long));
     if (t_MultirtfPropertiesSupported && (t_MultiRtfIndex > 1))
     printf("%ld Dokumente.\n", t_MultiRtfIndex);
}/* DoMultiRTFToPdfWithBarcode*/