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
- Agregar texto a un PDF usando C#
- Agregar texto a PDF usando TextParagraph
- Insertar texto transparente en PDF
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#.
- Cargue el archivo PDF usando la clase Document.
- Obtenga la página deseada del PDF en un objeto Página.
- Cree un objeto TextFragment y configure su texto, posición, fuente, color de fondo, etc.
- Cree un objeto TextBuilder e inicialícelo con el objeto Page.
- Use el método TextBuilder.AppendText(TextFragment) para agregar texto a la página del PDF.
- Guarde el archivo PDF actualizado usando el método Document.Save(String).
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.
- Cargue el archivo PDF usando la clase Document.
- Obtenga la página deseada de PDF en un objeto Página o agregue uno nuevo.
- Cree un objeto TextBuilder e inicialícelo con el objeto Page.
- Cree un objeto de la clase TextParagraph.
- Especifique la ubicación del párrafo usando la propiedad TextParagraph.Rectangle.
- Establezca las opciones de formato del TextParagraph.
- Cree un objeto TextFragment y configure su texto, posición, fuente, color de fondo, etc.
- Agregue TextFragment al párrafo usando el método TextParagraph.AppendLine(TextFragment).
- Agrega un párrafo a la página usando el método TextBuilder.AppendParagraph(TextParagraph).
- Guarde el archivo PDF actualizado usando el método Document.Save(String).
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.
- Cargue el archivo PDF usando la clase Document.
- Obtenga la página deseada de PDF en un objeto Página o agregue uno nuevo.
- Cree e inicialice un objeto Graph.
- Cree un objeto Rectangle e inicialícelo.
- Establezca la propiedad Rectangle.GraphInfo.FillColor.
- Agregue un rectángulo al gráfico usando el método Graph.Shapes.Add(Rectangle).
- Agregue Graph a la colección de párrafos de la página usando el método Page.Paragraphs.Add(Graph).
- Cree un objeto TextFragment y establezca su propiedad TextState.ForegroundColor.
- Agregue TextFragment a la página usando el método Page.Paragraphs.Add(TextFragment).
- Guarde el archivo PDF actualizado usando el método Document.Save(String).
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.