Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Nous cherchons toujours un moyen de générer des documents PDF et de travailler avec eux dans des projets C# de manière plus précise, exacte et efficace. Avoir des fonctions faciles à utiliser d’une bibliothèque nous permet de nous concentrer davantage sur le travail, et moins sur les détails chronophages de la génération de PDF, que ce soit dans .NET.
Le code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing.
L’API Aspose.PDF for .NET vous permet de créer et de lire des fichiers PDF en utilisant C# et VB.NET. L’API peut être utilisée dans une variété d’applications .NET, y compris WinForms, ASP.NET et plusieurs autres. Dans cet article, nous allons montrer comment utiliser l’API Aspose.PDF for .NET pour générer et lire facilement des fichiers PDF dans des applications .NET.
Pour créer un fichier PDF en utilisant C#, les étapes suivantes peuvent être utilisées.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CreateHelloWorldDocument()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_QuickStart();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add page
var page = document.Pages.Add();
// Add text to new page
page.Paragraphs.Add(new Aspose.Pdf.Text.TextFragment("Hello World!"));
// Save PDF document
document.Save(dataDir + "HelloWorld_out.pdf");
}
}
Aspose.PDF for .NET fournit la fonctionnalité de créer ainsi que de manipuler des documents PDF existants. Lors de l’ajout d’éléments de texte dans un fichier PDF, le PDF résultant est consultable. Cependant, si nous convertissons une image contenant du texte en fichier PDF, le contenu à l’intérieur du PDF n’est pas consultable. Cependant, en tant que solution de contournement, nous pouvons utiliser l’OCR sur le fichier résultant, afin qu’il devienne consultable.
Cette logique spécifiée ci-dessous reconnaît le texte pour les images PDF. Pour la reconnaissance, vous pouvez utiliser des supports OCR externes conformes à la norme HOCR. À des fins de test, nous avons utilisé un OCR Google Tesseract gratuit. Par conséquent, vous devez d’abord installer Tesseract-OCR sur votre système, et vous aurez l’application console Tesseract.
Voici le code complet pour accomplir cette exigence :
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CreateSearchableDocument()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_QuickStart();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "SearchableDocument.pdf"))
{
document.Convert(CallBackGetHocr);
// Save PDF document
document.Save(dataDir + "SearchableDocument_out.pdf");
}
}
private static string CallBackGetHocr(System.Drawing.Image img)
{
var tmpFile = Path.GetTempFileName();
try
{
using (var bmp = new System.Drawing.Bitmap(img))
{
bmp.Save(tmpFile, System.Drawing.Imaging.ImageFormat.Bmp);
}
var inputFile = string.Concat('"', tmpFile, '"');
var outputFile = string.Concat('"', tmpFile, '"');
var arguments = string.Concat(inputFile, " ", outputFile, " -l eng hocr");
var tesseractProcessName = RunExamples.GetTesseractExePath();
var psi = new System.Diagnostics.ProcessStartInfo(tesseractProcessName, arguments)
{
UseShellExecute = true,
CreateNoWindow = true,
WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden,
WorkingDirectory = Path.GetDirectoryName(tesseractProcessName)
};
var p = new System.Diagnostics.Process
{
StartInfo = psi
};
p.Start();
p.WaitForExit();
using (var streamReader = new StreamReader(tmpFile + ".hocr"))
{
string text = streamReader.ReadToEnd();
return text;
}
}
finally
{
if (File.Exists(tmpFile))
{
File.Delete(tmpFile);
}
if (File.Exists(tmpFile + ".hocr"))
{
File.Delete(tmpFile + ".hocr");
}
}
}
Ce code fonctionne avec un document PDF et son contenu étiqueté, en utilisant une bibliothèque Aspose.PDF pour le traiter.
L’exemple crée un nouvel élément span dans le contenu étiqueté de la première page d’un PDF, trouve tous les éléments BDC et les associe au span. Le document modifié est ensuite enregistré.
Vous pouvez créer une déclaration bdc en spécifiant mcid, lang et le texte d’expansion en utilisant l’objet BDCProperties :
var bdc = new Aspose.Pdf.Operators.BDC("P", new Aspose.Pdf.Facades.BDCProperties(1, "de", "Hallo, welt!"));
Après avoir créé l’arbre de structure, il est possible de lier l’opérateur BDC à l’élément spécifié de la structure avec la méthode Tag sur l’objet élément :
Aspose.Pdf.LogicalStructure.SpanElement span = content.CreateSpanElement();
span.Tag(bdc);
Étapes pour créer un PDF accessible :
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CreateAnAccessibleDocument()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_QuickStart();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "tourguidev2_gb_tags.pdf"))
{
// Access tagged content
Aspose.Pdf.Tagged.ITaggedContent content = document.TaggedContent;
// Create a span element
Aspose.Pdf.LogicalStructure.SpanElement span = content.CreateSpanElement();
// Append span to root element
content.RootElement.AppendChild(span);
// Iterate over page contents
foreach (var op in document.Pages[1].Contents)
{
var bdc = op as Aspose.Pdf.Operators.BDC;
if (bdc != null)
{
span.Tag(bdc);
}
}
// Save PDF document
document.Save(dataDir + "AccessibleDocument_out.pdf");
}
}
Ce code modifie un PDF en créant un élément span dans le contenu étiqueté du document et en étiquetant un contenu spécifique (opérations BDC) de la première page avec ce span. Le PDF modifié est ensuite enregistré dans un nouveau fichier.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.