Resaltar carácter en archivo PDF

En este tutorial, explicaremos cómo resaltar caracteres en un archivo PDF usando la biblioteca Aspose.PDF para .NET. Revisaremos el proceso paso a paso para resaltar caracteres en un PDF utilizando el código fuente C# proporcionado.

Requisitos

Antes de comenzar, asegúrese de tener lo siguiente:

  • La biblioteca Aspose.PDF para .NET instalada.
  • Un conocimiento básico de la programación en C#.

Paso 1: configurar el directorio de documentos

Primero, debe establecer la ruta al directorio donde se encuentra su archivo PDF de entrada. Reemplazar"YOUR DOCUMENT DIRECTORY" en eldataDir variable con la ruta a su archivo PDF.

string dataDir = "YOUR DOCUMENT DIRECTORY";

Paso 2: cargue el documento PDF

A continuación, cargamos el documento PDF de entrada usando elAspose.Pdf.Document clase.

Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(dataDir + "input.pdf");

Paso 3: convertir PDF a imagen

Para resaltar caracteres, convertimos el documento PDF a una imagen usando elPdfConverter clase. Configuramos la resolución para la conversión y recuperamos la imagen comoBitmap objeto.

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);

Paso 4: resaltar personajes

Recorremos cada página del documento PDF y utilizamos unTextFragmentAbsorber objeto para encontrar todas las palabras de la página. Luego iteramos sobre los fragmentos, segmentos y caracteres del texto para resaltarlos usando rectángulos.

using (System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp))
{
     //Establecer escala y transformar
     float scale = resolution / 72f;
     gr.Transform = new System.Drawing.Drawing2D.Matrix(scale, 0, 0, -scale, 0, bmp.Height);

     // Recorrer las páginas
     for (int i = 0; i < pdfDocument.Pages.Count; i++)
     {
         Page page = pdfDocument.Pages[1];

         // Encuentra todas las palabras en la página.
         TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(@"[\S]+");
         textFragmentAbsorber.TextSearchOptions.IsRegularExpressionUsed = true;
         page. Accept(textFragmentAbsorber);
         TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

         // Recorrer fragmentos de texto
         foreach(TextFragment textFragment in textFragmentCollection)
         {
             if (i == 0)
             {
                 // Personajes destacados
                 gr.DrawRectangle(
                     Think.Yellow,
                     (float)textFragment.Position.XIndent,
                     (float)textFragment.Position.YIndent,
                     (float)textFragment.Rectangle.Width,
                     (float)textFragment.Rectangle.Height);

                 // Recorrer segmentos
                 foreach(TextSegment segment in textFragment.Segments)
                 {
                     // segmento destacado
                     gr.DrawRectangle(
                         Think Green,
                         (float)segment.Rectangle.LLX,
                         (float)segment.Rectangle.LLY,
                         (float)segment.Rectangle.Width,
                         (float)segment.Rectangle.Height);

                     // Recorrer los personajes
                     foreach(CharInfo characterInfo in segment.Characters)
                     {
                         // Resaltar personaje
                         gr.DrawRectangle(
                             Think.Black,
                             (float)characterInfo.Rectangle.LLx,
                             (float)characterInfo.Rectangle.LLY,
                             (float)characterInfo.Rectangle.Width,
                             (float)characterInfo.Rectangle.Height);
                     }
                 }
             }
         }
     }
}

Paso 5: guarde la imagen de salida

Finalmente, guardamos la imagen modificada con los caracteres resaltados en el archivo de salida especificado.

dataDir = dataDir + "HighlightCharacterInPDF_out.png";
bmp.Save(dataDir, System.Drawing.Imaging.ImageFormat.Png);

Código fuente de muestra para resaltar caracteres en PDF usando Aspose.PDF para .NET

try
{
	// La ruta al directorio de documentos.
	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];
				// Cree un objeto TextAbsorber para encontrar todas las palabras
				TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(@"[\S]+");
				textFragmentAbsorber.TextSearchOptions.IsRegularExpressionUsed = true;
				page.Accept(textFragmentAbsorber);
				// Obtenga los fragmentos de texto extraídos
				TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
				// Recorre los fragmentos
				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.");
}

Conclusión

En este tutorial, aprendió cómo resaltar caracteres en un documento PDF usando la biblioteca Aspose.PDF para .NET. Si sigue la guía paso a paso y ejecuta el código C# proporcionado, puede resaltar caracteres en un PDF y guardar el resultado como una imagen.

Preguntas frecuentes

P: ¿Cuál es el propósito del tutorial “Resaltar carácter en un archivo PDF”?

R: El tutorial “Resaltar caracteres en un archivo PDF” explica cómo utilizar la biblioteca Aspose.PDF para .NET para resaltar caracteres dentro de un documento PDF. El tutorial proporciona una guía paso a paso y el código fuente C# para lograrlo.

P: ¿Por qué querría resaltar caracteres en un documento PDF?

R: Resaltar caracteres en un documento PDF puede resultar útil para diversos fines, como enfatizar contenido específico o hacer que cierto texto sea más visible y distinguible.

P: ¿Cómo configuro el directorio de documentos?

R: Para configurar el directorio de documentos:

  1. Reemplazar"YOUR DOCUMENT DIRECTORY" en eldataDir variable con la ruta al directorio donde se encuentra su archivo PDF de entrada.

P: ¿Cómo cargo el documento PDF y lo convierto en una imagen?

R: En el tutorial, elAspose.Pdf.Document La clase se utiliza para cargar el documento PDF de entrada. Entonces elPdfConverter La clase se emplea para convertir el documento PDF en una imagen. Se establece la resolución de la imagen y la imagen se recupera comoBitmap objeto.

P: ¿Cómo resalto caracteres en la imagen del documento PDF?

R: El tutorial lo guía a través del proceso de recorrer cada página del documento PDF, encontrar palabras usando unTextFragmentAbsorbere iterar a través de fragmentos de texto, segmentos y caracteres para resaltarlos usando rectángulos.

P: ¿Puedo personalizar la apariencia de los personajes y segmentos resaltados?

R: Sí, puede personalizar la apariencia de los caracteres y segmentos resaltados modificando los colores y estilos utilizados en las operaciones de dibujo.

P: ¿Cómo guardo la imagen modificada con los caracteres resaltados?

R: El tutorial demuestra cómo guardar la imagen modificada con los caracteres resaltados en el archivo de salida especificado usando elSave método de laBitmap clase.

P: ¿Se requiere una licencia Aspose válida para este tutorial?

R: Sí, se requiere una licencia Aspose válida para que este tutorial funcione correctamente. Puede comprar una licencia completa u obtener una licencia temporal de 30 días en el sitio web de Aspose.