Extraction de texte à partir de reçus avec la reconnaissance de tableaux OCR.space
Ceci est unInvoice Processing, Multimodal AIworkflow d'automatisation du domainecontenant 9 nœuds.Utilise principalement des nœuds comme Set, Form, FormTrigger, HttpRequest. Extraire du texte de reçus avec la reconnaissance de tableaux d'OCR.space
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
Nœuds utilisés (9)
{
"meta": {
"instanceId": "51c6a64ef13fda2e6aa96576c25d72519ca4bc44cea9da20af60a642b594d835"
},
"nodes": [
{
"id": "0663af99-4977-4723-828d-d5e5725d036a",
"name": "Déclencheur • Téléverser une image pour OCR",
"type": "n8n-nodes-base.formTrigger",
"position": [
576,
288
],
"webhookId": "64016fb2-7c40-4bd4-bf2a-7dacc23d3a7a",
"parameters": {
"options": {},
"formTitle": "Receipt OCR",
"formFields": {
"values": [
{
"fieldType": "file",
"fieldLabel": "File (Max 1MB)",
"multipleFiles": false,
"requiredField": true
},
{
"fieldType": "radio",
"fieldLabel": "Is it a table",
"fieldOptions": {
"values": [
{
"option": "Yes"
},
{
"option": "No"
}
]
},
"requiredField": true
}
]
},
"formDescription": "Upload an image to extract text via OCR.\nMax file size: 1 MB"
},
"typeVersion": 2.3,
"alwaysOutputData": false
},
{
"id": "815fc903-a65e-46a5-8177-a0cf8d40aa01",
"name": "Préparation • Normaliser les entrées",
"type": "n8n-nodes-base.set",
"position": [
832,
288
],
"parameters": {
"options": {
"stripBinary": false
},
"assignments": {
"assignments": [
{
"id": "c454bde2-a211-448e-ac21-e044044915f6",
"name": "isTable",
"type": "string",
"value": "={{ ($json[\"Is it a table\"] ?? $json.Is_it_a_table) === \"Yes\" }}"
},
{
"id": "07545925-b27a-4471-a5d0-93abc740acf6",
"name": "File (Max 1MB)",
"type": "object",
"value": "={{ $json['File (Max 1MB)'] ?? $json.File__Max_1MB_ }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "baf07380-1179-4077-9c7f-07c92e65bee5",
"name": "OCR.space • Analyser l'image",
"type": "n8n-nodes-base.httpRequest",
"position": [
1088,
288
],
"parameters": {
"url": "https://api.ocr.space/parse/image",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "language",
"value": "pol"
},
{
"name": "file",
"parameterType": "formBinaryData",
"inputDataFieldName": "File__Max_1MB_"
},
{
"name": "OCREngine",
"value": "2"
},
{
"name": "isTable",
"value": "={{ $json.isTable }}"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "lqCRwWbcuW6VTaIz",
"name": "ocr.space"
}
},
"typeVersion": 4.2
},
{
"id": "3e1fe87f-e776-469d-bae4-f76de5032ec3",
"name": "Affichage • Afficher le texte OCR",
"type": "n8n-nodes-base.form",
"position": [
1344,
288
],
"webhookId": "f85368ca-28f1-4c49-bc12-1801c5f8a6b7",
"parameters": {
"options": {
"customCss": ".card {\n\tposition: relative;\n\tmax-width: 500px;\n\tmargin: 20px auto;\n\tpadding: 20px;\n\tbackground: #fefefe !important;\n\tborder-radius: 12px;\n\tbox-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);\n\tfont-family: 'Courier New', monospace;\n\tcolor: #1f2937;\n\tfont-size: 16px;\n\tline-height: 1.6;\n\twhite-space: pre-wrap;\n}\n\n.header p { text-align: left; }\n\n@media (max-width: 768px) {\n\t.card { margin: 10px !important; padding: 15px !important; font-size: 14px; }\n}\n",
"formTitle": "OCR Result"
},
"operation": "completion",
"completionTitle": "OCR Result",
"completionMessage": "={{ $json.ParsedResults[0].ParsedText }}"
},
"typeVersion": 2.3
},
{
"id": "ba102eff-44a3-48f3-bf37-2c4db27fa1a0",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
240,
96
],
"parameters": {
"height": 176,
"content": "### 📌 What this flow does \nUpload a receipt image → select if it’s a table → OCR.space parses it → result displayed in a styled card."
},
"typeVersion": 1
},
{
"id": "4c2f78c5-f0f1-40b8-a776-8fd846ec6922",
"name": "Note adhésive 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
512,
96
],
"parameters": {
"height": 400,
"content": "### 🔹 Trigger • Upload image for OCR \nPublic form that collects the image (≤1 MB) and asks if the content is a table."
},
"typeVersion": 1
},
{
"id": "f9d0e10c-466b-4456-9f89-2d50e4a1cf46",
"name": "Note adhésive 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
752,
96
],
"parameters": {
"width": 256,
"height": 400,
"content": "### 🔹 Prepare • Normalize inputs \nConverts the radio field (“Yes/No”) into a true/false `isTable` flag. Keeps the uploaded file attached."
},
"typeVersion": 1
},
{
"id": "36621099-7926-463a-a36d-f185cbfb8b82",
"name": "Note adhésive 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1008,
96
],
"parameters": {
"width": 256,
"height": 400,
"content": "### 🔹 OCR.space • Parse image \nSends file + options to OCR.space API. \nLanguage = `pol`, Engine = `2`, passes `isTable`. \n⚠️ Needs API key (header auth)."
},
"typeVersion": 1
},
{
"id": "70f2a795-2c1c-4265-b5d2-af8af703814c",
"name": "Note adhésive 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1264,
96
],
"parameters": {
"height": 400,
"content": "### 🔹 Display • Show OCR text \nShows parsed text from `ParsedResults[0].ParsedText` inside a clean, monospace card for easy copy-paste."
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"baf07380-1179-4077-9c7f-07c92e65bee5": {
"main": [
[
{
"node": "3e1fe87f-e776-469d-bae4-f76de5032ec3",
"type": "main",
"index": 0
}
]
]
},
"815fc903-a65e-46a5-8177-a0cf8d40aa01": {
"main": [
[
{
"node": "baf07380-1179-4077-9c7f-07c92e65bee5",
"type": "main",
"index": 0
}
]
]
},
"0663af99-4977-4723-828d-d5e5725d036a": {
"main": [
[
{
"node": "815fc903-a65e-46a5-8177-a0cf8d40aa01",
"type": "main",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Intermédiaire - Traitement des factures, IA Multimodale
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Arkadiusz
@akadiuszPartager ce workflow