> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Utilisation d’ABBYY FineReader Engine dans .NET Core

> Utilisez ABBYY FineReader Engine dans des applications .NET Core sous Windows avec le wrapper .NET Core fourni, y compris le déploiement dans des conteneurs Docker.

<Note>
  Cette rubrique s’applique à FRE pour Windows.
</Note>

Pour exécuter votre application .NET Core sur différents systèmes d’exploitation et dans des conteneurs, ABBYY FineReader Engine fournit un wrapper .NET Core prêt à l’emploi pour la bibliothèque Engine. Ce wrapper vous permet d’accéder directement à l’API d’ABBYY FineReader Engine, qui est identique sur toutes les plateformes, à quelques exceptions mineures près. Une limitation notable est que les objets implémentant IEngineLoader ne sont pas disponibles sous Linux (voir [Differences between ABBYY FineReader Engine 12 for Windows and for Linux](/fr/fine-reader/engine/specifications/differences-between-abbyy-finereader-engine-for-windows-and-linux) pour la liste complète des différences).

<Warning>
  Dans cette version, le wrapper .NET Core ne prend pas en charge l’utilisation des objets [InprocLoader](/fr/fine-reader/engine/api-reference/engine-loaders/inprocloader) et [OutprocLoader](/fr/fine-reader/engine/api-reference/engine-loaders/outprocloader).
</Warning>

Pour utiliser votre application dans des conteneurs, incluez-la avec .NET Core Runtime dans l’image du conteneur. Pour plus d’informations sur le déploiement d’ABBYY FineReader Engine dans un conteneur Docker, voir [Running ABBYY FineReader Engine 12 inside a Docker container](/fr/fine-reader/engine/distribution/distribution-windows/running-abbyy-finereader-engine-12-inside-a-docker-container).

<div id="adding-abbyy-finereader-engine-library-to-a-net-core-project">
  ## Ajout de la bibliothèque ABBYY FineReader Engine à un projet .NET Core
</div>

ABBYY FineReader Engine inclut le fichier FREngine.DotNet.Interop.dll, qui contient le wrapper .NET Core pour FineReader Engine. Vous trouverez ce fichier dans le dossier Bin ou Bin64 du répertoire d’installation. Vous devez ajouter FREngine.DotNet.Interop.dll comme dépendance dans votre projet et le redistribuer avec votre application basée sur ABBYY FineReader Engine.

<Warning>
  La seule version de .NET Core prise en charge est la version 6.
</Warning>

<div id="loading-and-unloading-abbyy-finereader-engine">
  ## Chargement et déchargement d’ABBYY FineReader Engine
</div>

Pour initialiser l’objet [Engine](/fr/fine-reader/engine/api-reference/engine-object-iengine-interface), définissez le chemin d’accès à FREngine.dll à l’aide de la méthode SetFREnginePath de la classe statique FREngine, puis utilisez la fonction [InitializeEngine](/fr/fine-reader/engine/api-reference/functions/initializeengine-function) de cette même classe. Pour décharger l’objet Engine, utilisez la fonction [DeinitializeEngine](/fr/fine-reader/engine/api-reference/functions/deinitializeengine-function).

<Accordion title="Code C#">
  ```csharp theme={null}
  // Indiquez le chemin vers ABBYY FineReader Engine Library (freRootPath)
  // avant l’initialisation
  FREngine.FREngine.SetFREnginePath ( freRootPath );
  // Chargement de l’objet Engine
  engine = FREngine.FREngine.InitializeEngine( customerProjectId, licensePath, licensePassword, "", "", false );    
  ...
  // Déchargement de l’objet Engine
  if ( engine == null )
  {
     // Engine n’a pas été chargé
     return;
  }
   
  engine = null;
  GC.Collect();
  GC.WaitForPendingFinalizers();
  GC.Collect();
   
  FREngine.FREngine.DeinitializeEngine();
  ```
</Accordion>

<div id="collecting-garbage">
  ## Ramasse-miettes
</div>

Tous les objets du wrapper .NET Core dérivent de l’interface IDisposable, qui est chargée de libérer les ressources allouées aux objets. L’implémentation de cette interface permet la libération automatique de la mémoire lorsqu’un objet n’est plus nécessaire. Il est nécessaire d’utiliser l’instruction using lorsque vous avez fini d’utiliser des objets, en particulier des objets volumineux liés au traitement des documents, à la synthèse ou à l’export, tels que [IFRDocument](/fr/fine-reader/engine/api-reference/document-related-objects/frdocument), [IFRPages](/fr/fine-reader/engine/api-reference/document-related-objects/frpages), [PDFExportParams](/fr/fine-reader/engine/api-reference/parameter-objects/export-parameters/pdfexportparams), etc. (voir l’exemple ci-dessous) :

<Accordion title="Code C#">
  ```csharp theme={null}
  using (FREngine.FRDocument document = engineLoader.Engine.CreateFRDocument()) 
  {
     try 
     {
       // Ajouter un fichier image à un document
       Console.WriteLine("Loading image...");
       document.AddImageFile(imagePath, null, null);
       ...
       // Enregistrer les résultats au format PDF avec le scénario 'balanced'
       using (FREngine.PDFExportParams pdfParams = engineLoader.Engine.CreatePDFExportParams()) 
       {
         pdfParams.Scenario = FREngine.PDFExportScenarioEnum.PES_Balanced;
         document.Export(Path.Combine(FreConfig.GetSamplesFolder(), @"SampleImages\Demo.pdf"),
         FREngine.FileExportFormatEnum.FEF_PDF, pdfParams);
       }
     }
  }
  ```
</Accordion>

Si vous préférez ne pas utiliser l’instruction using, appelez explicitement la méthode Dispose.

Exemples

Consultez l’[exemple de code Hello](/fr/fine-reader/engine/guided-tour/samples#hello), qui illustre le fonctionnement d’ABBYY FineReader Engine dans .NET Core.
