Ce scénario est utilisé pour traiter des documents papier afin de les enregistrer dans une archive numérique, en particulier lors de la création d’archives de contrats, de documentation de projet, de factures, de certificats, etc.Dans ce scénario de traitement, les documents papier sont convertis en copies numériques non modifiables contenant toutes les informations du document dans un format permettant la recherche. À l’issue de ce traitement, les copies numériques des documents peuvent être facilement retrouvées dans une archive électronique à l’aide d’une recherche en texte intégral, des passages du document peuvent être copiés, et les documents peuvent être envoyés par e-mail ou imprimés.Pour créer une copie numérique, le document doit d’abord passer par plusieurs étapes de traitement, chacune présentant ses propres particularités :
Prétraitement des images numérisées
Les images numérisées peuvent nécessiter un prétraitement avant la reconnaissance, par exemple si les documents numérisés contiennent du bruit de fond, du texte incliné, des couleurs inversées, des marges noires, une orientation incorrecte ou une résolution inadéquate.
Reconnaissance simultanée d’un grand nombre de documents
Pour extraire des données textuelles d’un document, celui-ci doit être reconnu. Lors du traitement d’un grand nombre de documents, le traitement simultané peut s’avérer utile. Dans ce cas, la charge d’analyse et de reconnaissance peut être répartie entre les cœurs du processeur, ce qui permet d’accélérer le traitement.
Exportation vers un format d’archivage
Le document reconnu est enregistré dans un format de stockage adapté. Les formats les plus pratiques pour stocker des documents sont PDF, PDF/A, PDF avec MRC et PDF/A avec MRC. Lors de l’enregistrement dans ces formats, il est possible d’utiliser un mode dans lequel le texte est placé sous l’image du document — cela permet de préserver intégralement la mise en forme du document et d’activer la recherche en texte intégral. Les paramètres MRC permettent de réduire considérablement la taille du fichier sans perte de qualité visuelle. En outre, lors de l’enregistrement au format PDF, il est possible de personnaliser les paramètres de sécurité du document afin de le protéger contre toute consultation et impression non autorisées.
Les exemples de code fournis dans cette rubrique sont spécifiques à Windows.
Vous trouverez ci-dessous une description détaillée de la méthode recommandée pour utiliser ABBYY FineReader Engine 12 afin de créer des copies numériques de documents à des fins d’archivage. La méthode proposée utilise les paramètres de traitement les mieux adaptés à cet usage. Dans cette mise en œuvre, l’étape de numérisation des documents est omise. Veuillez consulter ci-dessous Optimisation supplémentaire pour des tâches spécifiques pour obtenir des conseils sur la mise en œuvre de la numérisation.
Étape 1. Chargement d’ABBYY FineReader Engine
Pour commencer à utiliser ABBYY FineReader Engine, vous devez créer l’objet Engine. L’objet Engine est l’objet de plus haut niveau dans la hiérarchie des objets ABBYY FineReader Engine ; il fournit divers paramètres globaux, certaines méthodes de traitement ainsi que des méthodes permettant de créer les autres objets.Pour créer l’objet Engine, vous pouvez utiliser la fonction InitializeEngine. Voir aussi les autres façons de charger l’objet Engine (Win).
// Initialisez ces variables avec le chemin vers FREngine.dll, votre Customer Project ID FineReader Engine,// et, le cas échéant, le chemin vers le jeton Online License et le mot de passe Online Licensewchar_t* FreDllPath;wchar_t* CustomerProjectId;wchar_t* LicensePath; // si vous n'utilisez pas de Online License, affectez des chaînes vides à ces variableswchar_t* LicensePassword;// Handle vers FREngine.dllstatic HMODULE libraryHandle = 0;// Objet Engine FineReader Engine globalFREngine::IEnginePtr Engine;void LoadFREngine(){ if( Engine != 0 ) { // Déjà chargé return; } // Première étape : charger FREngine.dll if( libraryHandle == 0 ) { libraryHandle = LoadLibraryEx( FreDllPath, 0, LOAD_WITH_ALTERED_SEARCH_PATH ); if( libraryHandle == 0 ) { throw L"Erreur lors du chargement d'ABBYY FineReader Engine"; } } // Deuxième étape : obtenir l'objet Engine typedef HRESULT ( STDAPICALLTYPE* InitializeEngineFunc )( BSTR, BSTR, BSTR, BSTR, BSTR, VARIANT_BOOL, FREngine::IEngine** ); InitializeEngineFunc pInitializeEngine = ( InitializeEngineFunc )GetProcAddress( libraryHandle, "InitializeEngine" ); if( pInitializeEngine == 0 || pInitializeEngine( CustomerProjectId, LicensePath, LicensePassword, L"", L"", VARIANT_FALSE, &Engine ) != S_OK ) { UnloadFREngine(); throw L"Erreur lors du chargement d'ABBYY FineReader Engine"; }}
Étape 2. Chargement des paramètres du scénario
ABBYY FineReader Engine permet de charger, à l’aide de la méthode LoadPredefinedProfile de l’objet Engine, tous les paramètres de traitement les mieux adaptés à ce scénario. Cette méthode prend en paramètre d’entrée le nom du profil. Pour plus d’informations, consultez Working with Profiles.ABBYY FineReader Engine prend en charge 2 variantes de paramètres pour ce scénario :
Nom du profil
Description
DocumentArchiving_Accuracy
Les paramètres ont été optimisés pour la précision :
Permet de détecter un maximum de texte dans une image, y compris le texte incorporé à l’image.
La synthèse complète de la structure logique d’un document n’est pas effectuée.
Ce profil n’est pas destiné à la conversion d’un document en RTF, DOCX ou PDF texte seul. Utilisez pour cela les profils de conversion de document.
DocumentArchiving_Speed
Les paramètres ont été optimisés pour la vitesse de traitement :
Permet de détecter un maximum de texte dans une image, y compris le texte incorporé à l’image.
La correction de l’inclinaison n’est pas effectuée.
La synthèse complète de la structure logique d’un document n’est pas effectuée.
Les processus d’analyse et de reconnaissance du document sont accélérés.
Ce profil n’est pas destiné à la conversion d’un document en RTF, DOCX ou PDF texte seul. Utilisez pour cela les profils de conversion de document.
ABBYY FineReader Engine fournit l’objet FRDocument, qui permet de traiter des documents multipages. L’utilisation de cet objet permet de préserver l’organisation logique du document.Pour charger les images d’un même document et les prétraiter, vous devez créer l’objet FRDocument et y ajouter des images. Vous pouvez procéder de l’une des manières suivantes :
Créez l’objet FRDocument à l’aide de la méthode CreateFRDocumentFromImage de l’objet Engine. Cette méthode crée l’objet FRDocument et charge les images à partir du fichier spécifié.
// Créer l’objet FRDocument à partir d’un fichier imageFREngine::IFRDocumentPtr frDocument = Engine->CreateFRDocumentFromImage( L"C:\\MyImage.tif", 0 );
Étape 4. Reconnaissance du document
Pour reconnaître un document, nous recommandons d’utiliser les méthodes d’analyse et de reconnaissance de l’objet FRDocument. Cet objet fournit toute une série de méthodes pour l’analyse, la reconnaissance et la synthèse du document. La méthode la plus pratique pour effectuer l’analyse, la reconnaissance et la synthèse en un seul appel est la méthode Process. Elle exploite également de la manière la plus efficace les fonctionnalités de traitement simultané des systèmes multiprocesseurs et multicœurs. Toutefois, vous pouvez aussi exécuter successivement le prétraitement, l’analyse, la reconnaissance et la synthèse à l’aide des méthodes Preprocess, Analyze, Recognize et Synthesize.
// Analyser, reconnaître et synthétiser le document// Il n'est pas nécessaire de spécifier des paramètres supplémentaires, car ils sont définis par le profil de traitementfrDocument.Process( null );
// Analyser, reconnaître et synthétiser le document// Il n'est pas nécessaire de spécifier des paramètres supplémentaires, car ils sont définis par le profil de traitementfrDocument->Process( 0 );
Étape 5. Exportation du document
Pour enregistrer un document reconnu, vous pouvez utiliser la méthode Export de l’objet FRDocument en passant la constante FileExportFormatEnum comme l’un des paramètres. Dans ce scénario, vous pouvez par exemple enregistrer le document au format PDF en utilisant MRC avec le mode d’exportation PEM_ImageOnText (propriété TextExportMode de l’objet PDFExportParams). Vous pouvez modifier les paramètres d’exportation par défaut à l’aide de l’objet d’exportation correspondant. Veuillez consulter Optimisation supplémentaire pour des tâches spécifiques ci-dessous pour plus d’informations.Une fois que vous avez terminé d’utiliser l’objet FRDocument, libérez toutes les ressources employées par cet objet. Utilisez la méthode IFRDocument::Close.
// Enregistrer un document reconnu dans un format d'archivage (par exemple, PDF)// Créer un objet PDFExportParamsFREngine.PDFExportParams exportParams = engine.CreatePDFExportParams();// Définir les paramètres nécessairesexportParams.MRCMode = FREngine.PDFMRCModeEnum.MRC_Auto;exportParams.TextExportMode = FREngine.PDFExportModeEnum.PEM_ImageOnText;// Utiliser les paramètres lors de l'exportationfrDocument.Export( "C:\\MyText.pdf", FREngine.FileExportFormatEnum.FEF_PDF, exportParams );// Libérer l'objet FRDocumentfrDocument.Close();
// Enregistrer un document reconnu dans un format d'archivage (par exemple, PDF)// Créer un objet PDFExportParamsFREngine::IPDFExportParamsPtr params = Engine->CreatePDFExportParams();// Définir les paramètres nécessairesparams->MRCMode = FREngine::MRC_Auto;params->TextExportMode = FREngine::PEM_ImageOnText;// Utiliser les paramètres lors de l'exportationfrDocument->Export(L"C:\\MyText.pdf", FREngine::FEF_PDF, params);// Libérer l'objet FRDocumentfrDocument->Close();
Étape 6. Déchargement d’ABBYY FineReader Engine
Une fois que vous avez terminé d’utiliser ABBYY FineReader Engine, vous devez décharger l’objet Engine. Pour ce faire, utilisez la fonction exportée DeinitializeEngine.
Vous pouvez utiliser le fichier FREngineDistribution.csv pour créer automatiquement la liste des fichiers nécessaires au fonctionnement de votre application. Pour le traitement dans ce scénario, sélectionnez dans la colonne 5 (RequiredByModule) les valeurs suivantes :CoreCore.ResourcesOpeningOpening, ProcessingProcessingProcessing.OCRProcessing.OCR, Processing.ICRProcessing.OCR.NaturalLanguagesProcessing.OCR.NaturalLanguages, Processing.ICR.NaturalLanguagesExportExport, ProcessingExport.PdfExport.Pdf, Opening.PdfSi vous modifiez le scénario standard, adaptez les modules requis en conséquence. Vous devez également spécifier les langues d’interface, les langues de reconnaissance et toutes les fonctionnalités supplémentaires utilisées par votre application (comme, par exemple, Opening.PDF si vous devez ouvrir des fichiers PDF, ou Processing.OCR.CJK si vous devez reconnaître des textes dans des langues CJK). Consultez Working with the FREngineDistribution.csv File pour plus de détails.
Voici un aperçu des rubriques d’aide contenant des informations supplémentaires sur la personnalisation des paramètres aux différentes étapes du traitement des documents :
Numérisation - Windows uniquement
Numérisation Description du scénario d’ABBYY FineReader Engine pour la numérisation de documents.
Reconnaître l’écriture manuscrite Les profils DocumentArchiving_*** n’incluent pas la reconnaissance du texte manuscrit ni du texte écrit à la main en lettres moulées. Si vous devez reconnaître de l’écriture manuscrite, définissez la propriété DetectHandwritten de l’objet PageAnalysisParams sur TRUE.
Objet PageProcessingParams Cet objet permet de personnaliser les paramètres d’analyse et de reconnaissance. À l’aide de cet objet, vous pouvez indiquer quelles caractéristiques de l’image et du texte doivent être détectées (image inversée, orientation, codes-barres, langue de reconnaissance, marge d’erreur admise pour la reconnaissance).
Objet SynthesisParamsForPage Cet objet inclut les paramètres chargés de restaurer la mise en forme d’une page lors de la synthèse.
Objet SynthesisParamsForDocument Cet objet permet de personnaliser la synthèse du document en restaurant sa structure et sa mise en forme.
Objet MultiProcessingParams - Disponible pour Linux et Windows Le traitement simultané peut être utile pour traiter un grand nombre d’images. Dans ce cas, la charge de traitement est répartie entre les cœurs du processeur lors de l’ouverture et du prétraitement des images, de l’analyse de la mise en page, de la reconnaissance et de l’exportation, ce qui permet d’accélérer le traitement. Les modes de lecture (simultané ou consécutif) sont définis à l’aide de la propriété MultiProcessingMode, et la propriété RecognitionProcessesCount contrôle le nombre de processus pouvant être démarrés.
Objet PDFExportParams Cet objet vous permet de configurer l’exportation au format PDF (PDF/A) à l’aide de quelques paramètres seulement.
Pour personnaliser le mode d’exportation au format PDF (PDF/A), utilisez la propriété TextExportMode de l’objet PDFExportParams, et pour personnaliser les paramètres MRC, utilisez la propriété MRCMode.
En outre, vous pouvez personnaliser les paramètres d’exportation des images afin d’accélérer le traitement, de réduire davantage la taille du fichier, etc. Par exemple, vous pouvez enregistrer une image couleur en niveaux de gris ou en noir et blanc, si cela correspond à votre cas d’utilisation (utilisez la propriété Colority de l’objet PDFExportParams).
Vous pouvez modifier la résolution de l’image de sorte que la copie électronique obtenue puisse ensuite être imprimée sur une imprimante ou affichée sur un écran d’ordinateur, ou choisir une faible résolution permettant uniquement la lecture du texte et offrant une qualité graphique médiocre (utilisez les propriétés Resolution et ResolutionType de l’objet PDFExportParams).
Découpage en documents
Dans ce scénario, il peut être nécessaire de séparer le lot d’images en plusieurs documents. ABBYY FineReader Engine 12 ne prend pas en charge la séparation automatique des documents. En revanche, vous pouvez utiliser ABBYY FlexiCapture Engine pour mettre en œuvre cette séparation automatique. Les documents peuvent être séparés, par exemple, en fonction du nombre de pages qu’ils contiennent ou à l’aide de pages comportant des codes-barres de séparation. Pour mettre en œuvre une séparation par codes-barres, vous pouvez utiliser le scénario d’extraction des seules valeurs de codes-barres du document.