.. _reference_document:

===============================================================================
id3 Document API
===============================================================================

|product-name| provides an easy to use programming interface available in various languages.

|api-description| 

It includes:

.. toctree::
  :hidden:

  DetectedDocument<detected_document/detected_document>
  DocumentAuthenticator<document_authenticator/document_authenticator>
  DocumentCategory<document_category/document_category>
  DocumentDetector<document_detector/document_detector>
  DocumentError<document_error/document_error>
  DocumentException<document_exception/document_exception>
  DocumentFormat<document_format/document_format>
  DocumentImage<document_image/document_image>
  DocumentInfo<document_info/document_info>
  DocumentInfoDictionary<document_info_dictionary/document_info_dictionary>
  DocumentLibrary<document_library/document_library>
  DocumentLicense<document_license/document_license>
  DocumentModel<document_model/document_model>
  DocumentOrientation<document_orientation/document_orientation>
  DocumentReader<document_reader/document_reader>
  HologramAuthenticationResult<hologram_authentication_result/hologram_authentication_result>
  HologramAuthenticationResultList<hologram_authentication_result_list/hologram_authentication_result_list>
  ImageBuffer<image_buffer/image_buffer>
  ImageError<image_error/image_error>
  ImageFormat<image_format/image_format>
  LibVersion<lib_version/lib_version>
  LicenseError<license_error/license_error>
  LicenseHardwareCodeType<license_hardware_code_type/license_hardware_code_type>
  LicenseType<license_type/license_type>
  MrzHelper<mrz_helper/mrz_helper>
  MrzReader<mrz_reader/mrz_reader>
  MrzReadingResult<mrz_reading_result/mrz_reading_result>
  MrzType<mrz_type/mrz_type>
  PixelFormat<pixel_format/pixel_format>
  Point<point/point>
  PointList<point_list/point_list>
  ProcessingUnit<processing_unit/processing_unit>
  Rectangle<rectangle/rectangle>
  StringDict<string_dict/string_dict>
  StringList<string_list/string_list>
  TextField<text_field/text_field>
  TextFieldList<text_field_list/text_field_list>


Classes
-------

.. list-table:: 
  :width: 100%
  :widths: 30 70

  * - :ref:`DetectedDocument<id3_document_detected_document_class>`
    - 
     | Represents a detected document.

  * - :ref:`DocumentAuthenticator<id3_document_document_authenticator_class>`
    - 
     | Verifies the authenticity of a document using security features such as holograms.

  * - :ref:`DocumentDetector<id3_document_document_detector_class>`
    - 
     | Detects documents in images.

  * - :ref:`DocumentImage<id3_document_document_image_class>`
    - 
     | Represents a document image.

  * - :ref:`DocumentInfo<id3_document_document_info_class>`
    - 
     | Represents document information.

  * - :ref:`DocumentInfoDictionary<id3_document_document_info_dictionary_class>`
    - 
     | Represents a dictionary of document information.

  * - :ref:`DocumentLibrary<id3_document_document_library_class>`
    - 
     | Initializes the SDK library.

  * - :ref:`DocumentLicense<id3_document_document_license_class>`
    - 
     | Manages the license for this SDK.

  * - :ref:`DocumentReader<id3_document_document_reader_class>`
    - 
     | Reads text field on a document using optical character recognition (OCR).

  * - :ref:`HologramAuthenticationResult<id3_document_hologram_authentication_result_class>`
    - 
     | Represents the result of hologram authentication.

  * - :ref:`HologramAuthenticationResultList<id3_document_hologram_authentication_result_list_class>`
    - 
     | Represents a list of hologram authentication results.

  * - :ref:`ImageBuffer<id3_document_image_buffer_class>`
    - 
     | Represents an image buffer.

  * - :ref:`MrzHelper<id3_document_mrz_helper_class>`
    - 
     | Provides functionalities to decode and check a MRZ.

  * - :ref:`MrzReader<id3_document_mrz_reader_class>`
    - 
     | Detects and reads an MRZ in an image.

  * - :ref:`MrzReadingResult<id3_document_mrz_reading_result_class>`
    - 
     | Represents the result of MRZ reading.

  * - :ref:`PointList<id3_document_point_list_class>`
    - 
     | Represents a point list.

  * - :ref:`StringDict<id3_document_string_dict_class>`
    - 
     | Represents a string dictionary.

  * - :ref:`StringList<id3_document_string_list_class>`
    - 
     | Represents a string lists.

  * - :ref:`TextField<id3_document_text_field_class>`
    - 
     | Represents a text field extracted from a document.

  * - :ref:`TextFieldList<id3_document_text_field_list_class>`
    - 
     | Represents a list of text fields extracted from a document.


Enumerations
------------

.. list-table:: 
  :width: 100%
  :widths: 30,70

  * - :ref:`DocumentCategory<id3_document_document_category_enum>`
    - 
     | Enumerates document categories.

  * - :ref:`DocumentError<id3_document_document_error_enum>`
    - 
     | Enumerates possible error codes.

  * - :ref:`DocumentFormat<id3_document_document_format_enum>`
    - 
     | Enumerates document formats, according to ISO/IEC 7810.

  * - :ref:`DocumentModel<id3_document_document_model_enum>`
    - 
     | Enumerates the AI models available in this SDK.

  * - :ref:`ImageError<id3_document_image_error_enum>`
    - 
     | Enumerates possible error codes related to image management.

  * - :ref:`ImageFormat<id3_document_image_format_enum>`
    - 
     | Enumerates supported image formats.

  * - :ref:`LicenseError<id3_document_license_error_enum>`
    - 
     | Enumerates the error codes related to license management.

  * - :ref:`LicenseHardwareCodeType<id3_document_license_hardware_code_type_enum>`
    - 
     | Enumerates the types of hardware codes.

  * - :ref:`LicenseType<id3_document_license_type_enum>`
    - 
     | Enumerates the license types.

  * - :ref:`MrzType<id3_document_mrz_type_enum>`
    - 
     | Enumerates supported MRZ types.

  * - :ref:`PixelFormat<id3_document_pixel_format_enum>`
    - 
     | Enumerates supported pixel formats.

  * - :ref:`ProcessingUnit<id3_document_processing_unit_enum>`
    - 
     | Enumerates processing units.


Structures
----------

.. list-table:: 
  :width: 100%
  :widths: 30,70

  * - :ref:`DocumentOrientation<id3_document_document_orientation_struct>`
    - 
     | Represents the document orientation.

  * - :ref:`LibVersion<id3_document_lib_version_struct>`
    - 
     | Contains data for LibVersion

  * - :ref:`Point<id3_document_point_struct>`
    - 
     | Represents a point.

  * - :ref:`Rectangle<id3_document_rectangle_struct>`
    - 
     | Represents a rectangle.




Exceptions
----------

.. list-table:: 
  :width: 100%
  :widths: 30,70

  * - :ref:`DocumentException<id3_document_document_exception>`
    - This exception is thrown when an error occurs in the id3 Document library.
