--- title: "Azure Form Recognizer" id: integrations-azure_form_recognizer description: "Azure Form Recognizer integration for Haystack" slug: "/integrations-azure_form_recognizer" --- ## haystack_integrations.components.converters.azure_form_recognizer.converter ### AzureOCRDocumentConverter Converts files to documents using Azure's Document Intelligence service. Supported file formats are: PDF, JPEG, PNG, BMP, TIFF, DOCX, XLSX, PPTX, and HTML. To use this component, you need an active Azure account and a Document Intelligence or Cognitive Services resource. For help with setting up your resource, see [Azure documentation](https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/quickstarts/get-started-sdks-rest-api). ### Usage example ```python import os from datetime import datetime from haystack_integrations.components.converters.azure_form_recognizer import AzureOCRDocumentConverter from haystack.utils import Secret converter = AzureOCRDocumentConverter( endpoint=os.environ["CORE_AZURE_CS_ENDPOINT"], api_key=Secret.from_env_var("CORE_AZURE_CS_API_KEY"), ) results = converter.run( sources=["test/test_files/pdf/react_paper.pdf"], meta={"date_added": datetime.now().isoformat()}, ) documents = results["documents"] print(documents[0].content) # 'This is a text from the PDF file.' ``` #### __init__ ```python __init__( endpoint: str, api_key: Secret = Secret.from_env_var("AZURE_AI_API_KEY"), model_id: str = "prebuilt-read", preceding_context_len: int = 3, following_context_len: int = 3, merge_multiple_column_headers: bool = True, page_layout: Literal["natural", "single_column"] = "natural", threshold_y: float | None = 0.05, store_full_path: bool = False, ) -> None ``` Creates an AzureOCRDocumentConverter component. **Parameters:** - **endpoint** (str) – The endpoint of your Azure resource. - **api_key** (Secret) – The API key of your Azure resource. - **model_id** (str) – The ID of the model you want to use. For a list of available models, see [Azure documentation] (https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/choose-model-feature). - **preceding_context_len** (int) – Number of lines before a table to include as preceding context (this will be added to the metadata). - **following_context_len** (int) – Number of lines after a table to include as subsequent context ( this will be added to the metadata). - **merge_multiple_column_headers** (bool) – If `True`, merges multiple column header rows into a single row. - **page_layout** (Literal['natural', 'single_column']) – The type reading order to follow. Possible options: - `natural`: Uses the natural reading order determined by Azure. - `single_column`: Groups all lines with the same height on the page based on a threshold determined by `threshold_y`. - **threshold_y** (float | None) – Only relevant if `single_column` is set to `page_layout`. The threshold, in inches, to determine if two recognized PDF elements are grouped into a single line. This is crucial for section headers or numbers which may be spatially separated from the remaining text on the horizontal axis. - **store_full_path** (bool) – If True, the full path of the file is stored in the metadata of the document. If False, only the file name is stored. #### run ```python run( sources: list[str | Path | ByteStream], meta: dict[str, Any] | list[dict[str, Any]] | None = None, ) -> dict[str, Any] ``` Convert a list of files to Documents using Azure's Document Intelligence service. **Parameters:** - **sources** (list\[str | Path | ByteStream\]) – List of file paths or ByteStream objects. - **meta** (dict\[str, Any\] | list\[dict\[str, Any\]\] | None) – Optional metadata to attach to the Documents. This value can be either a list of dictionaries or a single dictionary. If it's a single dictionary, its content is added to the metadata of all produced Documents. If it's a list, the length of the list must match the number of sources, because the two lists will be zipped. If `sources` contains ByteStream objects, their `meta` will be added to the output Documents. **Returns:** - dict\[str, Any\] – A dictionary with the following keys: - `documents`: List of created Documents - `raw_azure_response`: List of raw Azure responses used to create the Documents #### to_dict ```python to_dict() -> dict[str, Any] ``` Serializes the component to a dictionary. **Returns:** - dict\[str, Any\] – Dictionary with serialized data. #### from_dict ```python from_dict(data: dict[str, Any]) -> AzureOCRDocumentConverter ``` Deserializes the component from a dictionary. **Parameters:** - **data** (dict\[str, Any\]) – The dictionary to deserialize from. **Returns:** - AzureOCRDocumentConverter – The deserialized component.