97 lines
3.7 KiB
Markdown
97 lines
3.7 KiB
Markdown
Recoding in 5 python modules
|
|
==================
|
|
|
|
- Less platform dependent implementation
|
|
- Higher versality (wrt addition of new intput / output file types)
|
|
|
|
The functionality of each module is described below:
|
|
|
|
Normalize inputs (inputs can be a pdf file, an image, a folder containing images)
|
|
----------------
|
|
|
|
- For pdf:
|
|
- Identify if page needs to be ocred (see -s and -f parameters)
|
|
- If the page needs to be OCRed:
|
|
- Extract the image corresponding to the page and save it in a tmp folder. 3 approaches to extract images:
|
|
- extract raw image from pdf and rotate it according to pdf page rotation
|
|
- if not possible: identify resolution and rasterize
|
|
- if not possible: use default resolution and rasterize
|
|
- If not:
|
|
- Save the page AS-IS in the tmp folder that should contained the final page
|
|
- For image(s):
|
|
- Just copy the images with standardized name into the tmp folder containing pages to be OCRed
|
|
|
|
Preprocess normalized inputs (perform jobs in parallel)
|
|
----------------------------
|
|
|
|
- Orientation (if requested by user)
|
|
- Correct orientation
|
|
- Skew angle (if requested by user)
|
|
- Correct skew angle
|
|
- Cleaning (if requested by user)
|
|
- Clean image
|
|
|
|
Perform OCR (perform jobs in parallel)
|
|
-----------
|
|
|
|
- Perform OCR and save resulting hocr file for each respective page (perfom jobs in parallel)
|
|
|
|
Generate output for each page
|
|
-----------------------------
|
|
|
|
- For pdf (if output file has a "pdf" extension):
|
|
- Generate pdf pages from hocr files (note: pdf pages can already exist if OCR has been skipped for them)
|
|
- For txt
|
|
- generate txt file for each page (containing txt located into hocr file)
|
|
|
|
Build final output
|
|
------------------
|
|
|
|
- For pdf:
|
|
- Concatenate pdf pages
|
|
- Convert to pdf/1-a
|
|
- Verify conformity to pdf/1-a
|
|
- For txt
|
|
- Concatenate all txt files into the final output txt file
|
|
|
|
|
|
|
|
Tmp folder structure
|
|
=========================
|
|
|
|
- tmp_xxxxx/
|
|
- a_raw_images (either from images or extracted from pdf file)
|
|
- b_preprocessed_images (after deswing anf cleaning)
|
|
- c_ocr_out
|
|
- d_output_pages (one file per page (at first 1 pdf file per page. Later on other formats might be supported)
|
|
- e_output_final (concatenate output pages and conversion into PDF/1-a standard, Later on support other formats)
|
|
|
|
ocrmypdf arguments
|
|
==================
|
|
|
|
ocrmypdf [-h] [-v] [-k] [-g] [-o dpi] [-f|-s] [-r] [-d] [-c] [-i] [-l lan1[+lan2...]] [-C] inputpath outputfile1 [outputfile2...]
|
|
|
|
- Overall parameters
|
|
- [-h] : Display this help message
|
|
- [-v] : Increase the verbosity (this option can be used more than once) (e.g. -vvv)
|
|
- [-k] : Do not delete the temporary files
|
|
- [-g] : Activate debug mode (max verbosity, keep tmp files, generate debug pages)
|
|
- Normalization parameters:
|
|
- [-o dpi] : If page resolution is lower x dpi, provide OCR engine with an oversampled image. (Can improve OCR results)
|
|
- [-f] : Force to OCR the whole document, even if some page already contain font data (only for pdf inputs)
|
|
- [-s] : If pages contain font data, do not OCR that page, but include the page (as is) in the final output (only for pdf inputs)
|
|
- Prepocessing parameters:
|
|
- [-r] : Correct orientation
|
|
- [-d] : Deskew each page
|
|
- [-c] : Clean each page
|
|
- [-i] : Incorporate cleaned image in final output
|
|
- OCR parameters:
|
|
- [-l lan1[+lan2...]] : Document language(s). Multiple languages may be specified, separated by '+' characters.
|
|
- [-C cfg] : Pass an additional cofg file to the tesseract OCR engine. (this option can be used more than once)
|
|
- output generation parameters:
|
|
- None by now
|
|
- input files:
|
|
- inputpath : path to image, pdf file or folder to be processed
|
|
- output files:
|
|
- outputfile1 [outputfile2 ...] : *.pdf file or *.txt file to be generated (argumenst can be repeated if both pdf and txt file should be generated
|