Agregar texto a PDF en C#

El formato PDF se usa ampliamente para generar varios tipos de documentos, como facturas, informes financieros, currículos, etc. En el mundo de la automatización, los documentos PDF se generan y manipulan desde la web o las aplicaciones de escritorio. Por lo tanto, en ciertos casos, es posible que deba agregar texto a los archivos PDF existentes mediante programación. De acuerdo con eso, este artículo muestra cómo agregar texto a documentos PDF usando C#.

API de C# para agregar texto a PDF

Para agregar texto a archivos PDF de forma dinámica, usaremos Aspose.PDF for .NET. Es una API rica en funciones que le permite crear y manipular archivos PDF desde sus aplicaciones .NET. Puede descargar la API o instalarla mediante NuGet.

PM> Install-Package Aspose.PDF

Agregar texto a un PDF usando C#

Los siguientes son los pasos para agregar texto a un archivo PDF usando C#.

El siguiente ejemplo de código muestra cómo agregar texto a un archivo PDF.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Abrir documento
Document pdfDocument = new Document("input.pdf");

// Obtener página particular
Page pdfPage = (Page)pdfDocument.Pages[1];

// Crear fragmento de texto
TextFragment textFragment = new TextFragment("main text");
textFragment.Position = new Position(100, 600);

// Establecer propiedades de texto
textFragment.TextState.FontSize = 12;
textFragment.TextState.Font = FontRepository.FindFont("TimesNewRoman");
textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray);
textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);

// Crear objeto TextBuilder
TextBuilder textBuilder = new TextBuilder(pdfPage);

// Agregue el fragmento de texto a la página PDF
textBuilder.AppendText(textFragment);

// Guarde el documento PDF resultante.
pdfDocument.Save("output.pdf");

Agregar texto a PDF usando TextParagraph

Los siguientes son los pasos para agregar texto a un archivo PDF usando TextParagraph.

El siguiente ejemplo de código muestra cómo agregar texto a un PDF usando la clase TextParagraph.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-pdf/Aspose.PDF-for-.NET
string fontFile = "font.ttf";

// Cargar archivo PDF de entrada
Document doc = new Document("input.pdf");

// Crear un objeto generador de texto para la primera página del documento
TextBuilder textBuilder = new TextBuilder(doc.Pages[1]);

// Crear fragmento de texto con cadena de muestra
TextFragment textFragment = new TextFragment("Hello world");

if (fontFile != "")
{
    // Cargue la fuente TrueType en el objeto de flujo
    using (FileStream fontStream = File.OpenRead(fontFile))
    {
        // Establecer el nombre de la fuente para la cadena de texto
        textFragment.TextState.Font = FontRepository.OpenFont(fontStream, FontTypes.TTF);
        
        // Especificar la posición del fragmento de texto
        textFragment.Position = new Position(10, 10);
        
        // Agregue el texto a TextBuilder para que pueda colocarse sobre el archivo PDF
        textBuilder.AppendText(textFragment);
    }

    // Guardar el documento PDF resultante
    doc.Save("output.pdf");
}

Agregar texto transparente en PDF en C#

Aspose.PDF for .NET también permite agregar texto transparente a un documento PDF, como se demuestra en los siguientes pasos.

El siguiente ejemplo de código muestra cómo agregar texto transparente a un archivo PDF.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Crear instancia de documento
Document doc = new Document("input.pdf");

// Crear una colección de página a página de un archivo PDF
Aspose.Pdf.Page page = doc.Pages.Add();

// Crear objeto gráfico
Aspose.Pdf.Drawing.Graph canvas = new Aspose.Pdf.Drawing.Graph(100, 400);

// Crear instancia de rectángulo con ciertas dimensiones
Aspose.Pdf.Drawing.Rectangle rect = new Aspose.Pdf.Drawing.Rectangle(100, 100, 400, 400);

// Crear objeto de color desde el canal de color alfa
rect.GraphInfo.FillColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.FromArgb(128, System.Drawing.Color.FromArgb(12957183)));

// Agregar rectángulo a la colección de formas del objeto Graph
canvas.Shapes.Add(rect);

// Agregar objeto de gráfico a la colección de párrafos del objeto de página
page.Paragraphs.Add(canvas);

// Establecer valor para no cambiar la posición del objeto gráfico
canvas.IsChangePosition = false;

// Crear instancia de TextFragment con valor de muestra
TextFragment text = new TextFragment("transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text ");

// Crear objeto de color desde el canal alfa
Aspose.Pdf.Color color = Aspose.Pdf.Color.FromArgb(30, 0, 255, 0);

// Establecer información de color para la instancia de texto
text.TextState.ForegroundColor = color;

// Agregar texto a la colección de párrafos de instancia de página
page.Paragraphs.Add(text);

// Guarde el archivo PDF actualizado
doc.Save("output.pdf");

Obtenga una licencia gratis

Puede usar Aspose.PDF for .NET sin limitaciones de evaluación usando una licencia temporal.

Conclusión

En este artículo, aprendió cómo agregar texto a los archivos PDF existentes usando C#. Además, ha visto cómo agregar texto transparente a un PDF de forma dinámica. Puede explorar más sobre la API de PDF de C# usando la documentación. Además, puede publicar sus consultas en nuestro foro.

Ver también