Source code for pdftools_sdk.ocr.text_options

from __future__ import annotations
import io
from typing import List, Iterator, Tuple, Optional, Any, TYPE_CHECKING, Callable
from ctypes import *
from datetime import datetime
from numbers import Number
from pdftools_sdk.internal import _lib
from pdftools_sdk.internal.utils import _string_to_utf16, _utf16_to_string
from pdftools_sdk.internal.streams import _StreamDescriptor, _NativeStream
from pdftools_sdk.internal.native_base import _NativeBase
from pdftools_sdk.internal.native_object import _NativeObject

import pdftools_sdk.internal

if TYPE_CHECKING:
    from pdftools_sdk.ocr.text_processing_mode import TextProcessingMode
    from pdftools_sdk.ocr.text_skip_mode import TextSkipMode
    from pdftools_sdk.ocr.unicode_source import UnicodeSource

else:
    TextProcessingMode = "pdftools_sdk.ocr.text_processing_mode.TextProcessingMode"
    TextSkipMode = "pdftools_sdk.ocr.text_skip_mode.TextSkipMode"
    UnicodeSource = "pdftools_sdk.ocr.unicode_source.UnicodeSource"


[docs] class TextOptions(_NativeObject): """ Options for OCR processing of text These options control how existing text in the PDF document is processed during OCR. """
[docs] def __init__(self): """ """ _lib.PdfToolsOcr_TextOptions_New.argtypes = [] _lib.PdfToolsOcr_TextOptions_New.restype = c_void_p ret_val = _lib.PdfToolsOcr_TextOptions_New() if ret_val is None: _NativeBase._throw_last_error(False) super()._initialize(ret_val)
@property def mode(self) -> TextProcessingMode: """ The mode for processing text Default value: :attr:`pdftools_sdk.ocr.text_processing_mode.TextProcessingMode.NONE` Returns: pdftools_sdk.ocr.text_processing_mode.TextProcessingMode """ from pdftools_sdk.ocr.text_processing_mode import TextProcessingMode _lib.PdfToolsOcr_TextOptions_GetMode.argtypes = [c_void_p] _lib.PdfToolsOcr_TextOptions_GetMode.restype = c_int ret_val = _lib.PdfToolsOcr_TextOptions_GetMode(self._handle) if ret_val == 0: _NativeBase._throw_last_error() return TextProcessingMode(ret_val) @mode.setter def mode(self, val: TextProcessingMode) -> None: """ The mode for processing text Default value: :attr:`pdftools_sdk.ocr.text_processing_mode.TextProcessingMode.NONE` Args: val (pdftools_sdk.ocr.text_processing_mode.TextProcessingMode): property value """ from pdftools_sdk.ocr.text_processing_mode import TextProcessingMode if not isinstance(val, TextProcessingMode): raise TypeError(f"Expected type {TextProcessingMode.__name__}, but got {type(val).__name__}.") _lib.PdfToolsOcr_TextOptions_SetMode.argtypes = [c_void_p, c_int] _lib.PdfToolsOcr_TextOptions_SetMode.restype = c_bool if not _lib.PdfToolsOcr_TextOptions_SetMode(self._handle, c_int(val.value)): _NativeBase._throw_last_error(False) @property def skip_mode(self) -> TextSkipMode: """ Define text that can be skipped from text OCR processing Default value: :attr:`pdftools_sdk.ocr.text_skip_mode.TextSkipMode.NONE` Returns: pdftools_sdk.ocr.text_skip_mode.TextSkipMode """ from pdftools_sdk.ocr.text_skip_mode import TextSkipMode _lib.PdfToolsOcr_TextOptions_GetSkipMode.argtypes = [c_void_p] _lib.PdfToolsOcr_TextOptions_GetSkipMode.restype = c_int ret_val = _lib.PdfToolsOcr_TextOptions_GetSkipMode(self._handle) if ret_val == 0: _NativeBase._throw_last_error() return TextSkipMode(ret_val) @skip_mode.setter def skip_mode(self, val: TextSkipMode) -> None: """ Define text that can be skipped from text OCR processing Default value: :attr:`pdftools_sdk.ocr.text_skip_mode.TextSkipMode.NONE` Args: val (pdftools_sdk.ocr.text_skip_mode.TextSkipMode): property value """ from pdftools_sdk.ocr.text_skip_mode import TextSkipMode if not isinstance(val, TextSkipMode): raise TypeError(f"Expected type {TextSkipMode.__name__}, but got {type(val).__name__}.") _lib.PdfToolsOcr_TextOptions_SetSkipMode.argtypes = [c_void_p, c_int] _lib.PdfToolsOcr_TextOptions_SetSkipMode.restype = c_bool if not _lib.PdfToolsOcr_TextOptions_SetSkipMode(self._handle, c_int(val.value)): _NativeBase._throw_last_error(False) @property def unicode_source(self) -> UnicodeSource: """ Define additional ToUnicode sources in addition to OCR processing Default value: :attr:`pdftools_sdk.ocr.unicode_source.UnicodeSource.NONE` Returns: pdftools_sdk.ocr.unicode_source.UnicodeSource """ from pdftools_sdk.ocr.unicode_source import UnicodeSource _lib.PdfToolsOcr_TextOptions_GetUnicodeSource.argtypes = [c_void_p] _lib.PdfToolsOcr_TextOptions_GetUnicodeSource.restype = c_int ret_val = _lib.PdfToolsOcr_TextOptions_GetUnicodeSource(self._handle) if ret_val == 0: _NativeBase._throw_last_error() return UnicodeSource(ret_val) @unicode_source.setter def unicode_source(self, val: UnicodeSource) -> None: """ Define additional ToUnicode sources in addition to OCR processing Default value: :attr:`pdftools_sdk.ocr.unicode_source.UnicodeSource.NONE` Args: val (pdftools_sdk.ocr.unicode_source.UnicodeSource): property value """ from pdftools_sdk.ocr.unicode_source import UnicodeSource if not isinstance(val, UnicodeSource): raise TypeError(f"Expected type {UnicodeSource.__name__}, but got {type(val).__name__}.") _lib.PdfToolsOcr_TextOptions_SetUnicodeSource.argtypes = [c_void_p, c_int] _lib.PdfToolsOcr_TextOptions_SetUnicodeSource.restype = c_bool if not _lib.PdfToolsOcr_TextOptions_SetUnicodeSource(self._handle, c_int(val.value)): _NativeBase._throw_last_error(False) @staticmethod def _create_dynamic_type(handle): return TextOptions._from_handle(handle) @classmethod def _from_handle(cls, handle): """ Internal factory method for constructing an instance using an internal handle. This method creates an instance of the class by bypassing the public constructor. """ instance = TextOptions.__new__(cls) # Bypass __init__ instance._initialize(handle) return instance def _initialize(self, handle): super()._initialize(handle)