Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
OCR signifie "Optical Character Recognition" (reconnaissance optique de caractères). Il s'agit du processus de conversion de documents papier ou d'images en texte lisible. Il existe plusieurs méthodes pour y parvenir, comme le balayage ou la saisie manuelle à l'aide d'un clavier. Cette opération permet de convertir les fichiers numérisés, les PDF ou les documents manuscrits dans leur format texte d'origine. Ce processus s'est avéré inestimable dans les affaires pénales où les documents sont trop endommagés pour une transcription manuelle, mais peuvent être scannés et interprétés par un logiciel OCR.
Avec les progrès de la technologie et l'adoption omniprésente des outils numériques, l'OCR a également été mise en œuvre dans d'autres domaines tels que la conversion de documents sur des applications comme Google Docs, ainsi que dans les universités et le monde de l'entreprise. Il existe deux principaux types d'OCR : "statique" et "dynamique". Le type le plus courant est l'OCR statique, dans lequel le document entier est scanné en une seule fois. L'OCR dynamique, quant à lui, scanne une ligne à la fois et peut traiter des mises en page plus sophistiquées telles que des données tabulaires.
Cet article présente une comparaison entre deux des applications et bibliothèques de documents les plus répandues pour l'OCR et le PDF. Il s'agit de
Pour utiliser l'OCR avec PDFTron SDK, nous devons installer un utilitaire complémentaire séparé pour le module OCR. Cela permet au SDK de détecter du texte dans les documents. Il peut rendre le texte sélectionnable et consultable. Le SDK PDFTron prend en charge jusqu'à 100 langues. Le moteur d'OCR de PDFTron s'appuie sur un réseau neuronal LSTM open-source de Tesseract. PDFTron OCR prend en charge plusieurs types d'images et de formats pour la détection de texte. Les fichiers PDF contenant uniquement des images matricielles sont également acceptés pour l'OCR, la qualité de sortie dépendant de l'image d'entrée. Les meilleures images pour l'OCR sont les images en niveaux de gris avec une résolution de 300 DPI.
Iron Software propose aux ingénieurs logiciels IronOCR for .NET pour lire le contenu textuel des photos et des PDF dans les applications et les sites Web .NET. Le logiciel permet de numériser des photos pour en extraire du texte et des codes-barres, prend en charge de nombreuses langues internationales et produit des sorties sous forme de texte brut ou de données structurées. La bibliothèque OCR d'Iron Software peut être utilisée dans les applications Web, console, MVC et de nombreuses applications de bureau .NET. Dans le cas d'un déploiement commercial, l'assistance directe de l'équipe de développement est fournie en même temps que les licences achetées.
Ouvrez Visual Studio et accédez au menu Fichier. Sélectionnez un nouveau projet, puis une application console. Pour générer des documents PDF, nous utiliserons dans cet article l'application console.
Saisissez le nom du projet et sélectionnez le chemin d'accès au fichier dans la zone de texte appropriée. Cliquez ensuite sur le bouton Créer. Sélectionnez également le Framework .NET requis.
Le projet Visual Studio va maintenant générer la structure de l'application sélectionnée.
La structure du projet est maintenant générée par Visual Studio. Le fichier program.cs s'ouvrira si vous avez sélectionné l'application Windows, console ou web, afin que vous puissiez saisir le code et construire/exécuter votre application.
Pour l'étape suivante, nous devons ajouter la bibliothèque pour tester le code.
L'installation de PDFTron OCR se fait manuellement et peut être téléchargée sous forme de fichier zip à partir du lien suivant lien. Décompressez-le et configurez-le avec le projet. Ce guide vous aidera à exécuter des échantillons PDFTron à l'aide de la version d'essai intégrée gratuite du SDK PDFTron dans une application .NET Framework sous Windows. L'assistance des ingénieurs de la solution et l'utilisation illimitée de la version d'essai sont incluses dans la version d'essai gratuite.
Visual Studio: Assurez-vous que la charge de travail .NET Desktop Development et .NET Framework 4.5.1+ development tools fait partie de votre installation. Ce guide utilisera Visual Studio 2017 et la bibliothèque PDF C# .NET de PDFTron pour Windows. Téléchargez la bibliothèque en utilisant ce lien, .NET PDF SDK Télécharger.
Extrayez le dossier du fichier .zip. PDFNET_BASE est utilisé dans ce guide pour sélectionner le chemin d'accès au dossier que vous avez extrait.
PDFNET_BASE = path/to/extraction/folder/PDFNetDotNet4/
PDFNET_BASE = path/to/extraction/folder/PDFNetDotNet4/
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'PDFNET_BASE = path/@to/extraction/folder/PDFNetDotNet4/
Naviguez jusqu'à l'emplacement du contenu extrait. Recherchez et entrez dans le dossier Samples(PDFNET_BASE/Echantillons). Ce dossier contient de nombreux exemples de codes pour les fonctionnalités prises en charge par le SDK PDFTron.
Ouvrez Samples_20XX.sln dans Visual Studio. Choisissez une version appropriée pour votre installation de Visual Studio.
Sélectionnez l'exemple de code et le définir comme projet de démarrage pour la solution.
Il s'agit de l'application "PDFTron Hello World". Il est facile d'intégrer le reste du SDK PDFTron si vous pouvez ouvrir, enregistrer et fermer un document PDF.
Dans Visual Studio, créez un projet d'application console Framework .NET dans la langue de votre choix. Vous les trouverez dans la catégorie Visual C# ou Visual Basic.
Naviguez dans le dossier de votre projet. Par défaut, le chemin d'accès doit être similaire à : C:/Users/User_Name/source/repos/myApp
De PDFNET_BASE au dossier de votre projet(ce dossier contiendra votre fichier .csproj ou .vbproj)copier le dossier Lib.
Recherchez l'explorateur de solutions sur le côté droit. Sélectionnez l'option Ajouter une référence en cliquant avec le bouton droit de la souris sur Références. La boîte de dialogue du gestionnaire de référence s'ouvre.
En bas de la boîte de dialogue, sélectionnez Parcourir. Localisez le dossier Lib copié pour ajouter PDFNetLoader.dll aux références
En outre, dans le dossier x86, ajoutez la version appropriée de PDFNet.dll comme autre référence(path/to/your/project/folder/Lib/PDFNet/x86/PDFNet.dll). Cela permettra à l'application de fonctionner sur les systèmes d'exploitation 32 bits et 64 bits.
La bibliothèque IronOCR peut être installée de quatre façons.
Il s'agit de
Le logiciel Visual Studio propose l'option NuGet Package Manager pour installer le paquet directement dans la solution. La capture d'écran montre comment ouvrir le gestionnaire de paquets NuGet.
Ceci fournira une boîte de recherche pour afficher la liste des paquets du site web de NuGet. Dans le gestionnaire de paquets, nous devons rechercher le mot-clé "IronOCR", comme dans la capture d'écran ci-dessous :
Dans l'image ci-dessus, nous pouvons voir la liste des résultats de recherche connexes. Pour installer le paquet dans la solution, nous devons sélectionner l'option requise.
Installer le paquet IronOCR
Le paquet s'installera alors directement dans le projet en cours, qui sera alors prêt à être utilisé.
### 3.2.3 Téléchargement direct depuis le site NuGet
Pour la troisième méthode, nous pouvons télécharger le paquet NuGet directement depuis le site web
* Naviguez jusqu'à cette page[Lien](https://www.nuget.org/packages/Ironocr).
* Dans le menu de droite, assurez-vous de sélectionner l'option de téléchargement.
* Double-cliquez sur le paquet téléchargé. Il sera installé automatiquement.
* Ensuite, rechargez la solution et commencez à l'utiliser dans le projet.
### 3.2.4 Téléchargement direct à partir du site web de l'IronOCR
Vous pouvez télécharger directement le dernier paquet depuis le site web en cliquant sur le lien suivant[lien](https://ironsoftware.com/csharp/ocr/packages/IronOcr.zip). Suivez les instructions fournies pour ajouter le paquet au projet une fois que le dernier paquet a été téléchargé.
* Cliquez avec le bouton droit de la souris sur le projet dans la fenêtre de la solution.
* Sélectionnez Option Reference pour rechercher l'emplacement de la référence téléchargée.
* Cliquez ensuite sur OK pour ajouter la référence.
### 4.0 Image OCR
IronOCR et **PDFtron OCR** disposent tous deux d'une technologie OCR qui convertit les images en texte de recherche.
### 4.1 Utilisation de **PDFTron**
Convertissez les PDF en DOCX, DOC, HTML, SVG, TIFF, PNG, JPEG, XPS, EPUB, TXT et bien d'autres formats.
``` cs
PDFDoc doc = nouveau PDFDoc(nom de fichier);
// Convertir un document PDF en SVG
Convert.ToSvg(doc, nom_du_film_de_sortie + ".svg");
// Convertir un document PDF en XPS
Convert.ToXps(nom_de_fichier, nom_de_sortie + ".xps");
// Convertir un document PDF en un document TIFF multipage
Convert.TiffOutputOptions tiff_options = new Convert.TiffOutputOptions();
tiff_options.SetDPI(200);
tiff_options.SetDither(vrai);
tiff_options.SetMono(vrai);
Convert.ToTiff(nom_de_fichier, nom_de_sortie + ".tiff", options_de_tiff);
// Convertir un PDF en XOD
Convert.ToXod(nom_de_fichier, nom_de_sortie + ".xod");
// Convertir le PDF en HTML
Convert.ToHtml(nom_de_fichier, nom_de_sortie + ".html");
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage(@"3.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Console.ReadKey();
}
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage(@"3.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Console.ReadKey();
}
Dim Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
Input.AddImage("3.png")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
Console.ReadKey()
End Using
La démonstration ci-dessus montre le processus de conversion de fichiers images en texte à l'aide de l'API Tesseract 5. La ligne de code ci-dessus a été utilisée pour créer un objet pour le Tesseract d'Iron. De plus, pour s'assurer que nous pouvons ajouter un ou plusieurs fichiers images, nous avons produit un objet OcrInput qui demandera le chemin d'accès à l'image disponible. Dans l'objet Iron Tesseract, la fonction "Read" peut être utilisée pour obtenir les images en analysant le fichier image et en extrayant le résultat produit dans le résultat de l'OCR. Il est capable d'extraire du texte des photos et de le convertir en une chaîne de caractères.
Tesseract peut être utilisé pour ajouter des images multi-trames en utilisant la méthode "AddMultiFrameTiff" pour ce processus. Chaque image est lue et traitée comme une page distincte par la bibliothèque Tesseract. Chaque trame de l'image est lue avant de passer à la trame suivante, jusqu'à ce que chaque trame ait été scannée avec succès. Le format d'image TIFF est le seul format pris en charge par cette méthode.
La conversion réussie des données en texte éditable est affichée dans l'image ci-dessus, résultat de la précision de l'IronOCR.
IronOCR et PDFTron OCR convertissent les fichiers PDF en texte éditable. L'OCR de PDFTron offre à l'utilisateur une liste d'options telles que l'enregistrement de la page, l'édition de l'image, la reconnaissance de la page, etc. En outre, il peut fournir des options d'enregistrement telles que le document, le texte, le format HTML, etc. IronOCR nous permet également de sauvegarder un fichier OCR converti en HTML, texte, PDF, etc.
L'exemple de code complet montre comment utiliser PDFTron OCR pour une conversion directe et de haute qualité entre PDF, XPS, EMF, SVG, TIFF, PNG, JPEG et d'autres formats d'image.
// Copyright (c) 2001-2021 by PDFTron Systems Inc. All Rights Reserved.
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using pdftron;
using pdftron.Common;
using pdftron.Filters;
using pdftron.SDF;
using pdftron.PDF;
// The following code showcases the conversion of documents to formats // such as SVG, PDF, EMF, or XPS.
namespace ConvertTestCS
{
class Testfile
{
public string inputFile, outputFile;
public bool requiresWindowsPlatform;
public Testfile(string inFile, string outFile, bool requiresWindowsPlatform_)
{
inputFile = inFile;
outputFile = outFile;
requiresWindowsPlatform = requiresWindowsPlatform_;
}
};
class Class1
{
private static pdftron.PDFNetLoader pdfNetLoader = pdftron.PDFNetLoader.Instance();
static Class1() {}
// Relative path to the folder containing test files.
const string inputPath = "../../../../TestFiles/";
const string outputPath = "../../../../TestFiles/Output/";
static bool ConvertSpecificFormats()
{
bool err = false;
try
{
using (PDFDoc pdfdoc = new PDFDoc())
{
Console.WriteLine("Converting from XPS");
pdftron.PDF.Convert.FromXps(pdfdoc, inputPath + "simple-xps.xps");
pdfdoc.Save(outputPath + "xps2pdf v2.pdf", SDFDoc.SaveOptions.e_remove_unused);
Console.WriteLine("Saved xps2pdf v2.pdf");
}
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
/////////////////////////////////////////////
if (Environment.OSVersion.Platform == PlatformID.Win32NT) {
try
{
using (PDFDoc pdfdoc = new PDFDoc())
{
Console.WriteLine("Converting from EMF");
pdftron.PDF.Convert.FromEmf(pdfdoc, inputPath + "simple-emf.emf");
pdfdoc.Save(outputPath + "emf2pdf v2.pdf", SDFDoc.SaveOptions.e_remove_unused);
Console.WriteLine("Saved emf2pdf v2.pdf");
}
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
}
///////////////////////////////////////////
try
{
using (PDFDoc pdfdoc = new PDFDoc())
{
// Add a dictionary
ObjSet set = new ObjSet();
Obj options = set.CreateDict();
// Put options
options.PutNumber("FontSize", 15);
options.PutBool("UseSourceCodeFormatting", true);
options.PutNumber("PageWidth", 12);
options.PutNumber("PageHeight", 6);
// Convert from .txt file
Console.WriteLine("Converting from txt");
pdftron.PDF.Convert.FromText(pdfdoc, inputPath + "simple-text.txt", options);
pdfdoc.Save(outputPath + "simple-text.pdf", SDFDoc.SaveOptions.e_remove_unused);
Console.WriteLine("Saved simple-text.pdf");
}
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
///////////////////////////////////////////
try
{
using (PDFDoc pdfdoc = new PDFDoc(inputPath + "newsletter.pdf"))
{
// Convert PDF document to SVG
Console.WriteLine("Converting pdfdoc to SVG");
pdftron.PDF.Convert.ToSvg(pdfdoc, outputPath + "pdf2svg v2.svg");
Console.WriteLine("Saved pdf2svg v2.svg");
}
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
/////////////////////////////////////////////////
try
{
// Convert PNG image to XPS
Console.WriteLine("Converting PNG to XPS");
pdftron.PDF.Convert.ToXps(inputPath + "butterfly.png", outputPath + "butterfly.xps");
Console.WriteLine("Saved butterfly.xps");
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
///////////////////////////////////////////
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
try
{
// Convert MSWord document to XPS
Console.WriteLine("Converting DOCX to XPS");
pdftron.PDF.Convert.ToXps(inputPath + "simple-word_2007.docx", outputPath + "simple-word_2007.xps");
Console.WriteLine("Saved simple-word_2007.xps");
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
}
////////////////////////////////////////////////////////////////////
try
{
// Convert PDF document to XPS
Console.WriteLine("Converting PDF to XPS");
pdftron.PDF.Convert.ToXps(inputPath + "newsletter.pdf", outputPath + "newsletter.xps");
Console.WriteLine("Saved newsletter.xps");
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
//////////////////////////////////////////////////////////////////////
try
{
// Convert PDF document to HTML
Console.WriteLine("Converting PDF to HTML");
pdftron.PDF.Convert.ToHtml(inputPath + "newsletter.pdf", outputPath + "newsletter");
Console.WriteLine("Saved newsletter as HTML");
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
//////////////////////////////////////////////////////////////////////
try
{
// Convert PDF document to EPUB
Console.WriteLine("Converting PDF to EPUB");
pdftron.PDF.Convert.ToEpub(inputPath + "newsletter.pdf", outputPath + "newsletter.epub");
Console.WriteLine("Saved newsletter.epub");
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
/////////////////////////////////////////////////////////////////////
try
{
// Convert PDF document to multipage TIFF
Console.WriteLine("Converting PDF to multipage TIFF");
pdftron.PDF.Convert.TiffOutputOptions tiff_options = new pdftron.PDF.Convert.TiffOutputOptions();
tiff_options.SetDPI(200);
tiff_options.SetDither(true);
tiff_options.SetMono(true);
pdftron.PDF.Convert.ToTiff(inputPath + "newsletter.pdf", outputPath + "newsletter.tiff", tiff_options);
Console.WriteLine("Saved newsletter.tiff");
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
return err;
}
static Boolean ConvertToPdfFromFile()
{
System.Collections.ArrayList testfiles = new System.Collections.ArrayList();
testfiles.Add(new ConvertTestCS.Testfile("simple-word_2007.docx", "docx2pdf.pdf", false));
testfiles.Add(new ConvertTestCS.Testfile("simple-powerpoint_2007.pptx", "pptx2pdf.pdf", false));
testfiles.Add(new ConvertTestCS.Testfile("simple-excel_2007.xlsx", "xlsx2pdf.pdf", false));
testfiles.Add(new ConvertTestCS.Testfile("simple-publisher.pub", "pub2pdf.pdf", true));
testfiles.Add(new ConvertTestCS.Testfile("simple-text.txt", "txt2pdf.pdf", false));
testfiles.Add(new ConvertTestCS.Testfile("simple-rtf.rtf", "rtf2pdf.pdf", true));
testfiles.Add(new ConvertTestCS.Testfile("butterfly.png", "png2pdf.pdf", false));
testfiles.Add(new ConvertTestCS.Testfile("simple-emf.emf", "emf2pdf.pdf", true));
testfiles.Add(new ConvertTestCS.Testfile("simple-xps.xps", "xps2pdf.pdf", false));
// testfiles.Add(new ConvertTestCS.Testfile("simple-webpage.mht", "mht2pdf.pdf", true));
testfiles.Add(new ConvertTestCS.Testfile("simple-webpage.html", "html2pdf.pdf", true));
bool err = false;
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
try
{
if (pdftron.PDF.Convert.Printer.IsInstalled("PDFTron PDFNet"))
{
pdftron.PDF.Convert.Printer.SetPrinterName("PDFTron PDFNet");
}
else if (!pdftron.PDF.Convert.Printer.IsInstalled())
{
try
{
Console.WriteLine("Installing printer (requires Windows platform and administrator)");
pdftron.PDF.Convert.Printer.Install();
Console.WriteLine("Installed printer " + pdftron.PDF.Convert.Printer.GetPrinterName());
// the function ConvertToXpsFromFile may require the printer so leave it installed
// uninstallPrinterWhenDone = true;
}
catch (PDFNetException e)
{
Console.WriteLine("ERROR: Unable to install printer.");
Console.WriteLine(e.Message);
err = true;
}
catch
{
Console.WriteLine("ERROR: Unable to install printer. Make sure that the package's bitness matches your operating system's bitness and that you are running with administrator privileges.");
}
}
}
catch (PDFNetException e)
{
Console.WriteLine("ERROR: Unable to install printer.");
Console.WriteLine(e.Message);
err = true;
}
}
foreach (Testfile file in testfiles)
{
if ( Environment.OSVersion.Platform != PlatformID.Win32NT)
{
if (file.requiresWindowsPlatform)
{
continue;
}
}
try
{
using (pdftron.PDF.PDFDoc pdfdoc = new PDFDoc())
{
if (pdftron.PDF.Convert.RequiresPrinter(inputPath + file.inputFile))
{
Console.WriteLine("Using PDFNet printer to convert file " + file.inputFile);
}
pdftron.PDF.Convert.ToPdf(pdfdoc, inputPath + file.inputFile);
pdfdoc.Save(outputPath + file.outputFile, SDFDoc.SaveOptions.e_linearized);
Console.WriteLine("Converted file: " + file.inputFile);
Console.WriteLine("to: " + file.outputFile);
}
}
catch (PDFNetException e)
{
Console.WriteLine("ERROR: on input file " + file.inputFile);
Console.WriteLine(e.Message);
err = true;
}
}
return err;
}
[STAThread]
static void Main(string [] args)
{
PDFNet.Initialize(PDFTronLicense.Key);
bool err = false;
err = ConvertToPdfFromFile();
if (err)
{
Console.WriteLine("ConvertFile failed");
}
else
{
Console.WriteLine("ConvertFile succeeded");
}
err = ConvertSpecificFormats();
if (err)
{
Console.WriteLine("ConvertSpecificFormats failed");
}
else
{
Console.WriteLine("ConvertSpecificFormats succeeded");
}
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
if (pdftron.PDF.Convert.Printer.IsInstalled())
{
try
{
Console.WriteLine("Uninstalling printer (requires Windows platform and administrator)");
pdftron.PDF.Convert.Printer.Uninstall();
Console.WriteLine("Uninstalled Printer " + pdftron.PDF.Convert.Printer.GetPrinterName());
}
catch
{
Console.WriteLine("Unable to uninstall printer");
}
}
}
PDFNet.Terminate();
Console.WriteLine("Done.");
}
}
}
// Copyright (c) 2001-2021 by PDFTron Systems Inc. All Rights Reserved.
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using pdftron;
using pdftron.Common;
using pdftron.Filters;
using pdftron.SDF;
using pdftron.PDF;
// The following code showcases the conversion of documents to formats // such as SVG, PDF, EMF, or XPS.
namespace ConvertTestCS
{
class Testfile
{
public string inputFile, outputFile;
public bool requiresWindowsPlatform;
public Testfile(string inFile, string outFile, bool requiresWindowsPlatform_)
{
inputFile = inFile;
outputFile = outFile;
requiresWindowsPlatform = requiresWindowsPlatform_;
}
};
class Class1
{
private static pdftron.PDFNetLoader pdfNetLoader = pdftron.PDFNetLoader.Instance();
static Class1() {}
// Relative path to the folder containing test files.
const string inputPath = "../../../../TestFiles/";
const string outputPath = "../../../../TestFiles/Output/";
static bool ConvertSpecificFormats()
{
bool err = false;
try
{
using (PDFDoc pdfdoc = new PDFDoc())
{
Console.WriteLine("Converting from XPS");
pdftron.PDF.Convert.FromXps(pdfdoc, inputPath + "simple-xps.xps");
pdfdoc.Save(outputPath + "xps2pdf v2.pdf", SDFDoc.SaveOptions.e_remove_unused);
Console.WriteLine("Saved xps2pdf v2.pdf");
}
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
/////////////////////////////////////////////
if (Environment.OSVersion.Platform == PlatformID.Win32NT) {
try
{
using (PDFDoc pdfdoc = new PDFDoc())
{
Console.WriteLine("Converting from EMF");
pdftron.PDF.Convert.FromEmf(pdfdoc, inputPath + "simple-emf.emf");
pdfdoc.Save(outputPath + "emf2pdf v2.pdf", SDFDoc.SaveOptions.e_remove_unused);
Console.WriteLine("Saved emf2pdf v2.pdf");
}
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
}
///////////////////////////////////////////
try
{
using (PDFDoc pdfdoc = new PDFDoc())
{
// Add a dictionary
ObjSet set = new ObjSet();
Obj options = set.CreateDict();
// Put options
options.PutNumber("FontSize", 15);
options.PutBool("UseSourceCodeFormatting", true);
options.PutNumber("PageWidth", 12);
options.PutNumber("PageHeight", 6);
// Convert from .txt file
Console.WriteLine("Converting from txt");
pdftron.PDF.Convert.FromText(pdfdoc, inputPath + "simple-text.txt", options);
pdfdoc.Save(outputPath + "simple-text.pdf", SDFDoc.SaveOptions.e_remove_unused);
Console.WriteLine("Saved simple-text.pdf");
}
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
///////////////////////////////////////////
try
{
using (PDFDoc pdfdoc = new PDFDoc(inputPath + "newsletter.pdf"))
{
// Convert PDF document to SVG
Console.WriteLine("Converting pdfdoc to SVG");
pdftron.PDF.Convert.ToSvg(pdfdoc, outputPath + "pdf2svg v2.svg");
Console.WriteLine("Saved pdf2svg v2.svg");
}
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
/////////////////////////////////////////////////
try
{
// Convert PNG image to XPS
Console.WriteLine("Converting PNG to XPS");
pdftron.PDF.Convert.ToXps(inputPath + "butterfly.png", outputPath + "butterfly.xps");
Console.WriteLine("Saved butterfly.xps");
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
///////////////////////////////////////////
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
try
{
// Convert MSWord document to XPS
Console.WriteLine("Converting DOCX to XPS");
pdftron.PDF.Convert.ToXps(inputPath + "simple-word_2007.docx", outputPath + "simple-word_2007.xps");
Console.WriteLine("Saved simple-word_2007.xps");
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
}
////////////////////////////////////////////////////////////////////
try
{
// Convert PDF document to XPS
Console.WriteLine("Converting PDF to XPS");
pdftron.PDF.Convert.ToXps(inputPath + "newsletter.pdf", outputPath + "newsletter.xps");
Console.WriteLine("Saved newsletter.xps");
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
//////////////////////////////////////////////////////////////////////
try
{
// Convert PDF document to HTML
Console.WriteLine("Converting PDF to HTML");
pdftron.PDF.Convert.ToHtml(inputPath + "newsletter.pdf", outputPath + "newsletter");
Console.WriteLine("Saved newsletter as HTML");
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
//////////////////////////////////////////////////////////////////////
try
{
// Convert PDF document to EPUB
Console.WriteLine("Converting PDF to EPUB");
pdftron.PDF.Convert.ToEpub(inputPath + "newsletter.pdf", outputPath + "newsletter.epub");
Console.WriteLine("Saved newsletter.epub");
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
/////////////////////////////////////////////////////////////////////
try
{
// Convert PDF document to multipage TIFF
Console.WriteLine("Converting PDF to multipage TIFF");
pdftron.PDF.Convert.TiffOutputOptions tiff_options = new pdftron.PDF.Convert.TiffOutputOptions();
tiff_options.SetDPI(200);
tiff_options.SetDither(true);
tiff_options.SetMono(true);
pdftron.PDF.Convert.ToTiff(inputPath + "newsletter.pdf", outputPath + "newsletter.tiff", tiff_options);
Console.WriteLine("Saved newsletter.tiff");
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
return err;
}
static Boolean ConvertToPdfFromFile()
{
System.Collections.ArrayList testfiles = new System.Collections.ArrayList();
testfiles.Add(new ConvertTestCS.Testfile("simple-word_2007.docx", "docx2pdf.pdf", false));
testfiles.Add(new ConvertTestCS.Testfile("simple-powerpoint_2007.pptx", "pptx2pdf.pdf", false));
testfiles.Add(new ConvertTestCS.Testfile("simple-excel_2007.xlsx", "xlsx2pdf.pdf", false));
testfiles.Add(new ConvertTestCS.Testfile("simple-publisher.pub", "pub2pdf.pdf", true));
testfiles.Add(new ConvertTestCS.Testfile("simple-text.txt", "txt2pdf.pdf", false));
testfiles.Add(new ConvertTestCS.Testfile("simple-rtf.rtf", "rtf2pdf.pdf", true));
testfiles.Add(new ConvertTestCS.Testfile("butterfly.png", "png2pdf.pdf", false));
testfiles.Add(new ConvertTestCS.Testfile("simple-emf.emf", "emf2pdf.pdf", true));
testfiles.Add(new ConvertTestCS.Testfile("simple-xps.xps", "xps2pdf.pdf", false));
// testfiles.Add(new ConvertTestCS.Testfile("simple-webpage.mht", "mht2pdf.pdf", true));
testfiles.Add(new ConvertTestCS.Testfile("simple-webpage.html", "html2pdf.pdf", true));
bool err = false;
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
try
{
if (pdftron.PDF.Convert.Printer.IsInstalled("PDFTron PDFNet"))
{
pdftron.PDF.Convert.Printer.SetPrinterName("PDFTron PDFNet");
}
else if (!pdftron.PDF.Convert.Printer.IsInstalled())
{
try
{
Console.WriteLine("Installing printer (requires Windows platform and administrator)");
pdftron.PDF.Convert.Printer.Install();
Console.WriteLine("Installed printer " + pdftron.PDF.Convert.Printer.GetPrinterName());
// the function ConvertToXpsFromFile may require the printer so leave it installed
// uninstallPrinterWhenDone = true;
}
catch (PDFNetException e)
{
Console.WriteLine("ERROR: Unable to install printer.");
Console.WriteLine(e.Message);
err = true;
}
catch
{
Console.WriteLine("ERROR: Unable to install printer. Make sure that the package's bitness matches your operating system's bitness and that you are running with administrator privileges.");
}
}
}
catch (PDFNetException e)
{
Console.WriteLine("ERROR: Unable to install printer.");
Console.WriteLine(e.Message);
err = true;
}
}
foreach (Testfile file in testfiles)
{
if ( Environment.OSVersion.Platform != PlatformID.Win32NT)
{
if (file.requiresWindowsPlatform)
{
continue;
}
}
try
{
using (pdftron.PDF.PDFDoc pdfdoc = new PDFDoc())
{
if (pdftron.PDF.Convert.RequiresPrinter(inputPath + file.inputFile))
{
Console.WriteLine("Using PDFNet printer to convert file " + file.inputFile);
}
pdftron.PDF.Convert.ToPdf(pdfdoc, inputPath + file.inputFile);
pdfdoc.Save(outputPath + file.outputFile, SDFDoc.SaveOptions.e_linearized);
Console.WriteLine("Converted file: " + file.inputFile);
Console.WriteLine("to: " + file.outputFile);
}
}
catch (PDFNetException e)
{
Console.WriteLine("ERROR: on input file " + file.inputFile);
Console.WriteLine(e.Message);
err = true;
}
}
return err;
}
[STAThread]
static void Main(string [] args)
{
PDFNet.Initialize(PDFTronLicense.Key);
bool err = false;
err = ConvertToPdfFromFile();
if (err)
{
Console.WriteLine("ConvertFile failed");
}
else
{
Console.WriteLine("ConvertFile succeeded");
}
err = ConvertSpecificFormats();
if (err)
{
Console.WriteLine("ConvertSpecificFormats failed");
}
else
{
Console.WriteLine("ConvertSpecificFormats succeeded");
}
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
if (pdftron.PDF.Convert.Printer.IsInstalled())
{
try
{
Console.WriteLine("Uninstalling printer (requires Windows platform and administrator)");
pdftron.PDF.Convert.Printer.Uninstall();
Console.WriteLine("Uninstalled Printer " + pdftron.PDF.Convert.Printer.GetPrinterName());
}
catch
{
Console.WriteLine("Unable to uninstall printer");
}
}
}
PDFNet.Terminate();
Console.WriteLine("Done.");
}
}
}
' Copyright (c) 2001-2021 by PDFTron Systems Inc. All Rights Reserved.
Imports System
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports pdftron
Imports pdftron.Common
Imports pdftron.Filters
Imports pdftron.SDF
Imports pdftron.PDF
' The following code showcases the conversion of documents to formats // such as SVG, PDF, EMF, or XPS.
Namespace ConvertTestCS
Friend Class Testfile
Public inputFile, outputFile As String
Public requiresWindowsPlatform As Boolean
Public Sub New(ByVal inFile As String, ByVal outFile As String, ByVal requiresWindowsPlatform_ As Boolean)
inputFile = inFile
outputFile = outFile
requiresWindowsPlatform = requiresWindowsPlatform_
End Sub
End Class
Friend Class Class1
Private Shared pdfNetLoader As pdftron.PDFNetLoader = pdftron.PDFNetLoader.Instance()
Shared Sub New()
End Sub
' Relative path to the folder containing test files.
Private Const inputPath As String = "../../../../TestFiles/"
Private Const outputPath As String = "../../../../TestFiles/Output/"
Private Shared Function ConvertSpecificFormats() As Boolean
Dim err As Boolean = False
Try
Using pdfdoc As New PDFDoc()
Console.WriteLine("Converting from XPS")
pdftron.PDF.Convert.FromXps(pdfdoc, inputPath & "simple-xps.xps")
pdfdoc.Save(outputPath & "xps2pdf v2.pdf", SDFDoc.SaveOptions.e_remove_unused)
Console.WriteLine("Saved xps2pdf v2.pdf")
End Using
Catch e As PDFNetException
Console.WriteLine(e.Message)
err = True
End Try
'///////////////////////////////////////////
If Environment.OSVersion.Platform = PlatformID.Win32NT Then
Try
Using pdfdoc As New PDFDoc()
Console.WriteLine("Converting from EMF")
pdftron.PDF.Convert.FromEmf(pdfdoc, inputPath & "simple-emf.emf")
pdfdoc.Save(outputPath & "emf2pdf v2.pdf", SDFDoc.SaveOptions.e_remove_unused)
Console.WriteLine("Saved emf2pdf v2.pdf")
End Using
Catch e As PDFNetException
Console.WriteLine(e.Message)
err = True
End Try
End If
'/////////////////////////////////////////
Try
Using pdfdoc As New PDFDoc()
' Add a dictionary
Dim [set] As New ObjSet()
Dim options As Obj = [set].CreateDict()
' Put options
options.PutNumber("FontSize", 15)
options.PutBool("UseSourceCodeFormatting", True)
options.PutNumber("PageWidth", 12)
options.PutNumber("PageHeight", 6)
' Convert from .txt file
Console.WriteLine("Converting from txt")
pdftron.PDF.Convert.FromText(pdfdoc, inputPath & "simple-text.txt", options)
pdfdoc.Save(outputPath & "simple-text.pdf", SDFDoc.SaveOptions.e_remove_unused)
Console.WriteLine("Saved simple-text.pdf")
End Using
Catch e As PDFNetException
Console.WriteLine(e.Message)
err = True
End Try
'/////////////////////////////////////////
Try
Using pdfdoc As New PDFDoc(inputPath & "newsletter.pdf")
' Convert PDF document to SVG
Console.WriteLine("Converting pdfdoc to SVG")
pdftron.PDF.Convert.ToSvg(pdfdoc, outputPath & "pdf2svg v2.svg")
Console.WriteLine("Saved pdf2svg v2.svg")
End Using
Catch e As PDFNetException
Console.WriteLine(e.Message)
err = True
End Try
'///////////////////////////////////////////////
Try
' Convert PNG image to XPS
Console.WriteLine("Converting PNG to XPS")
pdftron.PDF.Convert.ToXps(inputPath & "butterfly.png", outputPath & "butterfly.xps")
Console.WriteLine("Saved butterfly.xps")
Catch e As PDFNetException
Console.WriteLine(e.Message)
err = True
End Try
'/////////////////////////////////////////
If Environment.OSVersion.Platform = PlatformID.Win32NT Then
Try
' Convert MSWord document to XPS
Console.WriteLine("Converting DOCX to XPS")
pdftron.PDF.Convert.ToXps(inputPath & "simple-word_2007.docx", outputPath & "simple-word_2007.xps")
Console.WriteLine("Saved simple-word_2007.xps")
Catch e As PDFNetException
Console.WriteLine(e.Message)
err = True
End Try
End If
'//////////////////////////////////////////////////////////////////
Try
' Convert PDF document to XPS
Console.WriteLine("Converting PDF to XPS")
pdftron.PDF.Convert.ToXps(inputPath & "newsletter.pdf", outputPath & "newsletter.xps")
Console.WriteLine("Saved newsletter.xps")
Catch e As PDFNetException
Console.WriteLine(e.Message)
err = True
End Try
'////////////////////////////////////////////////////////////////////
Try
' Convert PDF document to HTML
Console.WriteLine("Converting PDF to HTML")
pdftron.PDF.Convert.ToHtml(inputPath & "newsletter.pdf", outputPath & "newsletter")
Console.WriteLine("Saved newsletter as HTML")
Catch e As PDFNetException
Console.WriteLine(e.Message)
err = True
End Try
'////////////////////////////////////////////////////////////////////
Try
' Convert PDF document to EPUB
Console.WriteLine("Converting PDF to EPUB")
pdftron.PDF.Convert.ToEpub(inputPath & "newsletter.pdf", outputPath & "newsletter.epub")
Console.WriteLine("Saved newsletter.epub")
Catch e As PDFNetException
Console.WriteLine(e.Message)
err = True
End Try
'///////////////////////////////////////////////////////////////////
Try
' Convert PDF document to multipage TIFF
Console.WriteLine("Converting PDF to multipage TIFF")
Dim tiff_options As New pdftron.PDF.Convert.TiffOutputOptions()
tiff_options.SetDPI(200)
tiff_options.SetDither(True)
tiff_options.SetMono(True)
pdftron.PDF.Convert.ToTiff(inputPath & "newsletter.pdf", outputPath & "newsletter.tiff", tiff_options)
Console.WriteLine("Saved newsletter.tiff")
Catch e As PDFNetException
Console.WriteLine(e.Message)
err = True
End Try
Return err
End Function
Private Shared Function ConvertToPdfFromFile() As Boolean
Dim testfiles As New System.Collections.ArrayList()
testfiles.Add(New ConvertTestCS.Testfile("simple-word_2007.docx", "docx2pdf.pdf", False))
testfiles.Add(New ConvertTestCS.Testfile("simple-powerpoint_2007.pptx", "pptx2pdf.pdf", False))
testfiles.Add(New ConvertTestCS.Testfile("simple-excel_2007.xlsx", "xlsx2pdf.pdf", False))
testfiles.Add(New ConvertTestCS.Testfile("simple-publisher.pub", "pub2pdf.pdf", True))
testfiles.Add(New ConvertTestCS.Testfile("simple-text.txt", "txt2pdf.pdf", False))
testfiles.Add(New ConvertTestCS.Testfile("simple-rtf.rtf", "rtf2pdf.pdf", True))
testfiles.Add(New ConvertTestCS.Testfile("butterfly.png", "png2pdf.pdf", False))
testfiles.Add(New ConvertTestCS.Testfile("simple-emf.emf", "emf2pdf.pdf", True))
testfiles.Add(New ConvertTestCS.Testfile("simple-xps.xps", "xps2pdf.pdf", False))
' testfiles.Add(new ConvertTestCS.Testfile("simple-webpage.mht", "mht2pdf.pdf", true));
testfiles.Add(New ConvertTestCS.Testfile("simple-webpage.html", "html2pdf.pdf", True))
Dim err As Boolean = False
If Environment.OSVersion.Platform = PlatformID.Win32NT Then
Try
If pdftron.PDF.Convert.Printer.IsInstalled("PDFTron PDFNet") Then
pdftron.PDF.Convert.Printer.SetPrinterName("PDFTron PDFNet")
ElseIf Not pdftron.PDF.Convert.Printer.IsInstalled() Then
Try
Console.WriteLine("Installing printer (requires Windows platform and administrator)")
pdftron.PDF.Convert.Printer.Install()
Console.WriteLine("Installed printer " & pdftron.PDF.Convert.Printer.GetPrinterName())
' the function ConvertToXpsFromFile may require the printer so leave it installed
' uninstallPrinterWhenDone = true;
Catch e As PDFNetException
Console.WriteLine("ERROR: Unable to install printer.")
Console.WriteLine(e.Message)
err = True
Catch
Console.WriteLine("ERROR: Unable to install printer. Make sure that the package's bitness matches your operating system's bitness and that you are running with administrator privileges.")
End Try
End If
Catch e As PDFNetException
Console.WriteLine("ERROR: Unable to install printer.")
Console.WriteLine(e.Message)
err = True
End Try
End If
For Each file As Testfile In testfiles
If Environment.OSVersion.Platform <> PlatformID.Win32NT Then
If file.requiresWindowsPlatform Then
Continue For
End If
End If
Try
Using pdfdoc As pdftron.PDF.PDFDoc = New PDFDoc()
If pdftron.PDF.Convert.RequiresPrinter(inputPath & file.inputFile) Then
Console.WriteLine("Using PDFNet printer to convert file " & file.inputFile)
End If
pdftron.PDF.Convert.ToPdf(pdfdoc, inputPath & file.inputFile)
pdfdoc.Save(outputPath & file.outputFile, SDFDoc.SaveOptions.e_linearized)
Console.WriteLine("Converted file: " & file.inputFile)
Console.WriteLine("to: " & file.outputFile)
End Using
Catch e As PDFNetException
Console.WriteLine("ERROR: on input file " & file.inputFile)
Console.WriteLine(e.Message)
err = True
End Try
Next file
Return err
End Function
<STAThread>
Shared Sub Main(ByVal args() As String)
PDFNet.Initialize(PDFTronLicense.Key)
Dim err As Boolean = False
err = ConvertToPdfFromFile()
If err Then
Console.WriteLine("ConvertFile failed")
Else
Console.WriteLine("ConvertFile succeeded")
End If
err = ConvertSpecificFormats()
If err Then
Console.WriteLine("ConvertSpecificFormats failed")
Else
Console.WriteLine("ConvertSpecificFormats succeeded")
End If
If Environment.OSVersion.Platform = PlatformID.Win32NT Then
If pdftron.PDF.Convert.Printer.IsInstalled() Then
Try
Console.WriteLine("Uninstalling printer (requires Windows platform and administrator)")
pdftron.PDF.Convert.Printer.Uninstall()
Console.WriteLine("Uninstalled Printer " & pdftron.PDF.Convert.Printer.GetPrinterName())
Catch
Console.WriteLine("Unable to uninstall printer")
End Try
End If
End If
PDFNet.Terminate()
Console.WriteLine("Done.")
End Sub
End Class
End Namespace
La gestion des fichiers PDF peut être réalisée à l'aide de la fonction OCRInput. Chaque page d'un document sera lue par la classe Iron Tesseract. Le texte sera ensuite extrait des pages. Une deuxième fonction appelée "AddPDF" nous permettra d'ouvrir des documents protégés et de nous assurer que nous pouvons ajouter des PDF à notre liste de documents(mot de passe s'il est protégé). Pour ouvrir un document PDF protégé par un mot de passe, utilisez l'extrait de code ci-dessous :
var Ocr = new IronTesseract(); // nothing to configure
using (var Input = new OcrInput())
{
Input.AddPdf("example.pdf", "password");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
var Ocr = new IronTesseract(); // nothing to configure
using (var Input = new OcrInput())
{
Input.AddPdf("example.pdf", "password");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Dim Ocr = New IronTesseract() ' nothing to configure
Using Input = New OcrInput()
Input.AddPdf("example.pdf", "password")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
La lecture et l'extraction du contenu d'une page d'un fichier PDF peuvent être réalisées à l'aide de la fonction "Addpdfpage". Ne spécifier que le numéro de page exact à partir duquel nous voulons extraire le texte. "AddPdfPage" vous permet d'extraire du texte de plusieurs pages que vous spécifiez. IEnumerable
IEnumerable<int> numbers = new List<int> {2,8,10 };
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
//single page
Input.AddPdfPage("example.pdf",10);
//Multiple page
Input.AddPdfPages("example.pdf", numbers);
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Result.SaveAsTextFile("ocrtext.txt");
}
IEnumerable<int> numbers = new List<int> {2,8,10 };
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
//single page
Input.AddPdfPage("example.pdf",10);
//Multiple page
Input.AddPdfPages("example.pdf", numbers);
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Result.SaveAsTextFile("ocrtext.txt");
}
Dim numbers As IEnumerable(Of Integer) = New List(Of Integer) From {2, 8, 10}
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
'single page
Input.AddPdfPage("example.pdf",10)
'Multiple page
Input.AddPdfPages("example.pdf", numbers)
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
Result.SaveAsTextFile("ocrtext.txt")
End Using
Utilisez la fonction SaveAsTextFile pour enregistrer directement le résultat dans un format de fichier texte afin de pouvoir télécharger directement le fichier dans le chemin du répertoire de sortie. Pour enregistrer le fichier au format HTML, utilisez SaveAsHocrFile.
Nous pouvons utiliser le SDK PDFTron pour extraire les images des fichiers PDF, ainsi que leurs informations de positionnement et leur DPI. Au lieu de convertir les images PDF en images bitmap, vous pouvez également extraire les données d'image non compressées/compressées directement à l'aide de elements.GetImageData() (décrit dans l'exemple de code d'extraction de données PDF). En savoir plus sur notre bibliothèque PDF C# et sur la bibliothèque d'analyse et d'extraction de contenu PDF.
IronOCR dispose d'un nombre impressionnant de fonctionnalités qui vous permettront de lire les codes QR et les codes-barres directement à partir de documents scannés. L'extrait de code ci-dessous montre comment vous pouvez scanner le code-barres d'une image ou d'un document donné.
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.ReadBarCodes = true;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage("barcode.gif");
var Result = Ocr.Read(Input);
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
}
}
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.ReadBarCodes = true;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage("barcode.gif");
var Result = Ocr.Read(Input);
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
}
}
Dim Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.ReadBarCodes = True
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
Input.AddImage("barcode.gif")
Dim Result = Ocr.Read(Input)
For Each Barcode In Result.Barcodes
Console.WriteLine(Barcode.Value)
Next Barcode
End Using
Le code ci-dessus permet de lire le code-barres d'une image ou d'un document PDF donné. De nombreux codes-barres peuvent être lus en même temps sur une seule image ou une seule page. IronOCR dispose d'une méthode distinctive qui lira le code-barres, Ocr.Configuration.ReadBarCodes.
Les données sont stockées dans un objet appelé OCRResult après la numérisation de l'entrée. La propriété de OCRResult s'appelle Barcodes et contient une liste de toutes les données de codes-barres disponibles. Nous pouvons obtenir chaque donnée individuelle liée aux détails du code-barres en utilisant une boucle "for-each". Deux opérations sont effectuées en un seul processus : le balayage et la lecture de la valeur du code-barres.
La prise en charge des options d'enchaînement est également disponible et plusieurs processus d'OCR peuvent être exécutés en même temps. En outre, IronOCR peut reconnaître une zone précise à partir d'une région spécifiée.
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
Input.Add("document.png", ContentArea);
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
Input.Add("document.png", ContentArea);
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
Dim ContentArea = New System.Drawing.Rectangle() With {
.X = 215,
.Y = 1250,
.Height = 280,
.Width = 1335
}
Input.Add("document.png", ContentArea)
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
L'extrait de code ci-dessus montre comment effectuer l'OCR sur une région distincte. Il vous suffit de spécifier la région rectangulaire dans le PDF/l'image, car le moteur Tesseract d'IronOCR aidera à reconnaître le texte.
Une garantie de remboursement de 30 jours: Une fois la licence achetée, vous bénéficiez d'une garantie de remboursement de 30 jours. Dans les 30 jours où vous souhaitez retourner le produit, vous serez remboursé.
Intégration facile: L'intégration d'IronOCR à tout projet et environnement est si facile qu'elle peut être réalisée en une seule ligne de code, simplement en l'ajoutant en tant qu'élément de l'interface utilisateurNuGet Paquet. D'autre part, une autre façon d'intégrer l'environnement est de le télécharger directement à partir du web.
Licence perpétuelle: Chaque licence achetée ne nécessite pas de renouvellement.
Support gratuit et mises à jour du produit : Chaque licence bénéficiera d'une assistance directe de la part du groupe à l'origine du produit et sera accompagnée d'un an de mises à jour gratuites du produit. Les extensions d'achat sont disponibles à tout moment.
Licences immédiates: Une fois le paiement reçu, les clés de licence enregistrées seront envoyées immédiatement.
Toutes les licences sont perpétuelles et s'appliquent au développement, à la mise en place et à la production.
Licence perpétuelle
Cette formule permet à un seul développeur de logiciels au sein d'une organisation d'utiliser Iron Software en un seul endroit. Iron Software peut être utilisé dans une application intranet, une application web ou un logiciel de bureau. Il est interdit de partager les licences en dehors d'une organisation ou d'une relation agence/client, car elles ne sont pas transférables. Ce type de licence, comme tous les autres types de licence, exclut expressément tous les droits qui ne sont pas expressément accordés dans le cadre de l'accord, sans redistribution OEM et utilisation du Iron Software en tant que SaaS sans achat d'une couverture supplémentaire.
Tarification: A partir de $749 par an.
Licence perpétuelle
Cette licence permet à un nombre prédéterminé de développeurs de logiciels au sein d'une organisation d'utiliser Iron Software dans de nombreux sites, jusqu'à un maximum de dix. Iron Software peut être utilisé dans autant de sites web, d'applications intranet ou de logiciels de bureau que vous le souhaitez. Les licences ne sont pas transférables et ne peuvent être partagées en dehors d'une organisation ou d'une relation agence/client. Ce type de licence, comme tous les autres types de licence, exclut expressément tous les droits qui ne sont pas expressément accordés dans le cadre de l'accord, y compris la redistribution OEM et l'utilisation du logiciel Iron Software en tant que SaaS sans achat d'une couverture supplémentaire. Cette licence peut être intégrée à un seul projet jusqu'à un maximum de 10.
Tarification: À partir de 999 $ par an.
Licence perpétuelle
Cela permet à un nombre illimité de développeurs de logiciels d'une organisation d'utiliser Iron Software dans un nombre illimité de sites. Iron Software peut être utilisé dans autant d'applications intranet, d'applications logicielles de bureau ou de sites web que vous le souhaitez. Les licences ne sont pas transférables et ne peuvent être partagées en dehors d'une organisation ou d'une relation agence/client. Ce type de licence, comme tous les autres types de licence, exclut expressément tous les droits non accordés dans le cadre de l'accord, y compris la redistribution OEM et l'utilisation du logiciel Iron Software en tant que SaaS sans achat d'une couverture supplémentaire.
Tarification: A partir de $5,999 par an.
Royalty-Free Redistribution — ; Ceci vous permet de distribuer le Iron Software en tant qu'élément de plusieurs produits commerciaux conditionnés différemment(sans avoir à payer de redevances) en fonction du nombre de projets couverts par la licence de base. Cela permettra de déployer Iron Software dans le cadre de services logiciels SaaS, qui sont basés sur le nombre de projets couverts par la licence de base.
Tarification: À partir de 1 599 $ par an.
Services de conseil et de formation
Les licences personnalisées de PDFTron sont adaptées à votre application et aux exigences de votre entreprise. Les prix dépendent de l'étendue de vos fonctionnalités
La License Lite d'IronOCR est un package non défini qui inclut un développeur avec un an de support, et coûte environ $749. La licence professionnelle** d'IronOCR comprenant 10 packages pour développeurs et un an d'assistance coûte 999 $, tandis que les packages de PDFTron ne sont pas définis. Pour acheter un forfait, vous devez contacter le centre d'assistance pour obtenir un devis.
Les offres IronOCR Lite et Professional comprennent un service OEM ou SaaS avec une option d'assistance de 5 ans. La version Lite comprend un package pour un développeur avec un support de 5 ans et un service Saas et OEM. Elle coûte 2 897 $ avec une option de support personnalisé. La version Professionnelle d'IronOCR comprend un package de 10 développeurs avec 5 ans d'assistance, un service Saas et un service OEM et coûte 3 397 $. L'offre de PDFTron pour 10 développeurs avec un an d'assistance, un service Saas et un service OEM n'a pas de prix défini.
IronOCR dans le contexte du Framework .NET fournit Tesseract qui est simple à utiliser avec la prise en charge de photos et de documents PDF réalisée de nombreuses façons. Il fournit également plusieurs paramètres permettant d'améliorer les performances de la bibliothèque Tesseract OCRs. Un grand nombre de langues sont prises en charge, avec la possibilité d'utiliser plusieurs langues dans une seule opération. Visitez leur site web pour en savoir plus sur le Tesseract OCR.
PDFTron est un logiciel qui utilise différents moteurs pour reconnaître les images et les documents PDF. Il propose également divers paramètres permettant d'améliorer les performances du processus d'OCR et offre la possibilité de sélectionner plusieurs langues. PDFTron a des limitations sur l'utilisation des conversions de pages. Il propose également différents prix pour différents systèmes d'exploitation.
IronOCR est un logiciel compétitif et peut offrir une plus grande précision que les marques concurrentes. Il est arrivé que des produits similaires ne parviennent pas à reconnaître des images de faible qualité, ce qui a donné lieu à des caractères inconnus. D'autre part, IronOCR ne fournit pas seulement des résultats précis, mais nous permet de reconnaître les données des codes-barres et d'en lire la valeur à partir d'images.
Les packages IronOCR offrent des licences et une assistance compétitives à un prix unique pour toutes les plateformes. En comparaison, les produits OCR de PDFtrons sont tous exclusivement sélectionnés sur mesure, ce qui tend à les rendre plus chers. Les prix varient entre les deux produits, IronOCR commençant à un prix de $749, tandis qu'en raison de la sélection personnalisée, le prix de départ de PDFTron n'est pas défini. En conclusion, IronOCR offre un plus grand nombre de fonctionnalités pour un prix inférieur.
Alors, qu'attendez-vous ? L'essai gratuit est ouvert à tous. Obtenir leLicence ici et commencer immédiatement!
9 produits de l'API .NET pour vos documents de bureau