zdenop

Tesseract-OCR example of C-API: produce pdf output

Feb 8th, 2015
1,040
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.17 KB | None | 0 0
  1. /**********************************************************************
  2.  
  3.   Example of C-API: produce output with ResultRenderer
  4.  
  5.   gcc capi-example-renderer_pdf.c -o capi-example-renderer_pdf -ltesseract -llept -Wall
  6.   ./capi-example-renderer_pdf && cat ./capi-test.txt
  7.  
  8. **********************************************************************/
  9.  
  10. #include "tesseract/capi.h"
  11. #include "leptonica/allheaders.h"
  12.  
  13. int main(int argc, char **argv) {
  14.     const char* lang = "eng";
  15.     const char* image = "../tesseract-ocr/testing/phototest.tif";
  16.     const char* output = "capi-test";
  17.     const char* tessdata = "/usr/src/tesseract-ocr/";
  18.  
  19.     TessBaseAPI*  api;
  20.     TessResultRenderer* renderer = NULL;
  21.     int ret;
  22.  
  23.     api = TessBaseAPICreate();
  24.     TessBaseAPISetOutputName(api, output);
  25.  
  26.     ret = TessBaseAPIInit3(api, tessdata, lang);
  27.  
  28.     if (ret) {
  29.         TessBaseAPIDelete(api);
  30.         fprintf(stderr, "Could not initialize tesseract.\n");
  31.         exit(1);
  32.     }
  33.  
  34.     const char* api_tessdata = TessBaseAPIGetDatapath(api);
  35.     TessBaseAPISetVariable(api, "tessedit_create_pdf", "T");
  36.     renderer = TessPDFRendererCreate(output, api_tessdata);
  37.  
  38.     PIX *pix_image = pixRead(image);
  39.  
  40.     const char* retry_config = NULL;
  41.     int timeout_millisec = 0;
  42.     int page = 0;
  43.  
  44.     const char* kUnknownTitle = "";
  45.     if (renderer && !TessResultRendererBeginDocument(renderer, kUnknownTitle)) {
  46.       pixDestroy(&pix_image);
  47.       return 1;
  48.     }
  49.  
  50.    int r = 0;
  51.    r = TessBaseAPIProcessPage(api,
  52.                                  pix_image,  // struct Pix* pix,
  53.                                  page,       //int page_index,
  54.                                  image,     // const char* filename,
  55.                                  retry_config,  // const char* retry_config,
  56.                                  timeout_millisec,  // int timeout_millisec
  57.                                  renderer     // TessResultRenderer* renderer
  58.                                  );
  59.     pixDestroy(&pix_image);
  60.  
  61.     if (!r || (renderer && !TessResultRendererEndDocument(renderer))) {
  62.       return 2;
  63.     }
  64.     TessBaseAPIDelete(api);
  65.     return 0;                      // Normal exit
  66. }
Advertisement
Add Comment
Please, Sign In to add comment