Mettre en surbrillance le caractère dans le fichier PDF
Dans ce didacticiel, nous expliquerons comment mettre en évidence des caractères dans un fichier PDF à l’aide de la bibliothèque Aspose.PDF pour .NET. Nous passerons en revue le processus étape par étape de mise en surbrillance des caractères dans un PDF à l’aide du code source C# fourni.
Exigences
Avant de commencer, assurez-vous d’avoir les éléments suivants :
- La bibliothèque Aspose.PDF pour .NET installée.
- Une compréhension de base de la programmation C#.
Étape 1 : configurer le répertoire de documents
Tout d’abord, vous devez définir le chemin d’accès au répertoire où se trouve votre fichier PDF d’entrée. Remplacer"YOUR DOCUMENT DIRECTORY"
dans ledataDir
variable avec le chemin d’accès à votre fichier PDF.
string dataDir = "YOUR DOCUMENT DIRECTORY";
Étape 2 : Charger le document PDF
Ensuite, nous chargeons le document PDF d’entrée à l’aide duAspose.Pdf.Document
classe.
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(dataDir + "input.pdf");
Étape 3 : Convertir un PDF en image
Pour mettre en évidence des caractères, nous convertissons le document PDF en image à l’aide duPdfConverter
classe. Nous définissons la résolution pour la conversion et récupérons l’image sous forme deBitmap
objet.
int resolution = 150;
using (MemoryStream ms = new MemoryStream())
{
PdfConverter conv = new PdfConverter(pdfDocument);
conv. Resolution = new Resolution(resolution, resolution);
conv. GetNextImage(ms, System.Drawing.Imaging.ImageFormat.Png);
Bitmap bmp = (Bitmap)Bitmap.FromStream(ms);
Étape 4 : Mettre en surbrillance les personnages
Nous parcourons chaque page du document PDF et utilisons unTextFragmentAbsorber
objet pour retrouver tous les mots de la page. Nous parcourons ensuite les fragments de texte, les segments et les caractères pour les mettre en évidence à l’aide de rectangles.
using (System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp))
{
//Définir l’échelle et transformer
float scale = resolution / 72f;
gr.Transform = new System.Drawing.Drawing2D.Matrix(scale, 0, 0, -scale, 0, bmp.Height);
// Parcourez les pages en boucle
for (int i = 0; i < pdfDocument.Pages.Count; i++)
{
Page page = pdfDocument.Pages[1];
// Trouver tous les mots de la page
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(@"[\S]+");
textFragmentAbsorber.TextSearchOptions.IsRegularExpressionUsed = true;
page. Accept(textFragmentAbsorber);
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
// Parcourez des fragments de texte en boucle
foreach(TextFragment textFragment in textFragmentCollection)
{
if (i == 0)
{
// Mettre en surbrillance les personnages
gr.DrawRectangle(
Think.Yellow,
(float)textFragment.Position.XIndent,
(float)textFragment.Position.YIndent,
(float)textFragment.Rectangle.Width,
(float)textFragment.Rectangle.Height);
// Parcourez les segments en boucle
foreach(TextSegment segment in textFragment.Segments)
{
// Segment phare
gr.DrawRectangle(
Think Green,
(float)segment.Rectangle.LLX,
(float)segment.Rectangle.LLY,
(float)segment.Rectangle.Width,
(float)segment.Rectangle.Height);
// Parcourez les personnages en boucle
foreach(CharInfo characterInfo in segment.Characters)
{
// Personnage en surbrillance
gr.DrawRectangle(
Think.Black,
(float)characterInfo.Rectangle.LLx,
(float)characterInfo.Rectangle.LLY,
(float)characterInfo.Rectangle.Width,
(float)characterInfo.Rectangle.Height);
}
}
}
}
}
}
Étape 5 : Enregistrez l’image de sortie
Enfin, nous enregistrons l’image modifiée avec les caractères en surbrillance dans le fichier de sortie spécifié.
dataDir = dataDir + "HighlightCharacterInPDF_out.png";
bmp.Save(dataDir, System.Drawing.Imaging.ImageFormat.Png);
Exemple de code source pour surligner le caractère dans un PDF à l’aide d’Aspose.PDF pour .NET
try
{
// Le chemin d'accès au répertoire des documents.
string dataDir = "YOUR DOCUMENT DIRECTORY";
int resolution = 150;
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(dataDir + "input.pdf");
using (MemoryStream ms = new MemoryStream())
{
PdfConverter conv = new PdfConverter(pdfDocument);
conv.Resolution = new Resolution(resolution, resolution);
conv.GetNextImage(ms, System.Drawing.Imaging.ImageFormat.Png);
Bitmap bmp = (Bitmap)Bitmap.FromStream(ms);
using (System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp))
{
float scale = resolution / 72f;
gr.Transform = new System.Drawing.Drawing2D.Matrix(scale, 0, 0, -scale, 0, bmp.Height);
for (int i = 0; i < pdfDocument.Pages.Count; i++)
{
Page page = pdfDocument.Pages[1];
// Créez un objet TextAbsorber pour trouver tous les mots
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(@"[\S]+");
textFragmentAbsorber.TextSearchOptions.IsRegularExpressionUsed = true;
page.Accept(textFragmentAbsorber);
// Obtenez les fragments de texte extraits
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
// Parcourez les fragments
foreach (TextFragment textFragment in textFragmentCollection)
{
if (i == 0)
{
gr.DrawRectangle(
Pens.Yellow,
(float)textFragment.Position.XIndent,
(float)textFragment.Position.YIndent,
(float)textFragment.Rectangle.Width,
(float)textFragment.Rectangle.Height);
for (int segNum = 1; segNum <= textFragment.Segments.Count; segNum++)
{
TextSegment segment = textFragment.Segments[segNum];
for (int charNum = 1; charNum <= segment.Characters.Count; charNum++)
{
CharInfo characterInfo = segment.Characters[charNum];
Aspose.Pdf.Rectangle rect = page.GetPageRect(true);
Console.WriteLine("TextFragment = " + textFragment.Text + " Page URY = " + rect.URY +
" TextFragment URY = " + textFragment.Rectangle.URY);
gr.DrawRectangle(
Pens.Black,
(float)characterInfo.Rectangle.LLX,
(float)characterInfo.Rectangle.LLY,
(float)characterInfo.Rectangle.Width,
(float)characterInfo.Rectangle.Height);
}
gr.DrawRectangle(
Pens.Green,
(float)segment.Rectangle.LLX,
(float)segment.Rectangle.LLY,
(float)segment.Rectangle.Width,
(float)segment.Rectangle.Height);
}
}
}
}
}
dataDir = dataDir + "HighlightCharacterInPDF_out.png";
bmp.Save(dataDir, System.Drawing.Imaging.ImageFormat.Png);
}
Console.WriteLine("\nCharacters highlighted successfully in pdf document.\nFile saved at " + dataDir);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message + "\nThis example will only work if you apply a valid Aspose License. You can purchase full license or get 30 day temporary license from http:// Www.aspose.com/purchase/default.aspx.");
}
Conclusion
Dans ce didacticiel, vous avez appris à mettre en surbrillance des caractères dans un document PDF à l’aide de la bibliothèque Aspose.PDF pour .NET. En suivant le guide étape par étape et en exécutant le code C# fourni, vous pouvez mettre en surbrillance des caractères dans un PDF et enregistrer la sortie sous forme d’image.
FAQ
Q : Quel est l’objectif du didacticiel « Surligner un caractère dans un fichier PDF » ?
: Le didacticiel « Mettre en surbrillance un caractère dans un fichier PDF » explique comment utiliser la bibliothèque Aspose.PDF pour .NET pour mettre en surbrillance des caractères dans un document PDF. Le didacticiel fournit un guide étape par étape et un code source C# pour y parvenir.
Q : Pourquoi voudrais-je mettre en surbrillance des caractères dans un document PDF ?
R : La surbrillance de caractères dans un document PDF peut être utile à diverses fins, par exemple pour mettre en valeur un contenu spécifique ou rendre certains textes plus visibles et distinctifs.
Q : Comment configurer le répertoire de documents ?
R : Pour configurer le répertoire de documents :
- Remplacer
"YOUR DOCUMENT DIRECTORY"
dans ledataDir
variable avec le chemin d’accès au répertoire où se trouve votre fichier PDF d’entrée.
Q : Comment puis-je charger le document PDF et le convertir en image ?
R : Dans le didacticiel, leAspose.Pdf.Document
La classe est utilisée pour charger le document PDF d’entrée. Puis lePdfConverter
La classe est utilisée pour convertir le document PDF en image. La résolution de l’image est définie et l’image est récupérée sous forme deBitmap
objet.
Q : Comment mettre en surbrillance des caractères dans l’image d’un document PDF ?
R : Le didacticiel vous guide tout au long du processus consistant à parcourir chaque page du document PDF, à trouver des mots à l’aide d’unTextFragmentAbsorber
, et parcourir des fragments de texte, des segments et des caractères pour les mettre en évidence à l’aide de rectangles.
Q : Puis-je personnaliser l’apparence des caractères et des segments en surbrillance ?
R : Oui, vous pouvez personnaliser l’apparence des caractères et segments en surbrillance en modifiant les couleurs et les styles utilisés dans les opérations de dessin.
Q : Comment puis-je enregistrer l’image modifiée avec les caractères en surbrillance ?
R : Le didacticiel montre comment enregistrer l’image modifiée avec les caractères en surbrillance dans le fichier de sortie spécifié à l’aide duSave
méthode duBitmap
classe.
Q : Une licence Aspose valide est-elle requise pour ce didacticiel ?
R : Oui, une licence Aspose valide est requise pour que ce didacticiel fonctionne correctement. Vous pouvez acheter une licence complète ou obtenir une licence temporaire de 30 jours sur le site Web Aspose.