Crear documentos PDF usando C#

La generación y el procesamiento automatizados de documentos PDF se han convertido en una característica exigente en los últimos días. En varias aplicaciones, los documentos PDF se generan dinámicamente, como facturas, recibos y diferentes tipos de informes. De acuerdo con eso, este artículo cubre la implementación básica de la automatización de PDF dentro de las aplicaciones .NET. En última instancia, aprenderá a crear archivos PDF usando C#. Los ejemplos de código demostrarán cómo insertar texto, imágenes, tablas y otros componentes en PDF usando C#.

C# .NET PDF API - Descarga gratuita

Aspose.PDF for .NET es una API de manipulación de archivos PDF que le permite generar y procesar archivos PDF desde sus aplicaciones .NET. Con la API, puede generar varios tipos de informes y documentos comerciales de forma dinámica. La API está disponible como DLL descargable y alojada en NuGet.

Install-Package Aspose.Pdf

Crear archivos PDF en C#

Comencemos por crear un documento PDF simple que contenga un fragmento de texto. Los siguientes son los pasos para crear un archivo PDF usando C#.

El siguiente ejemplo de código muestra cómo crear un archivo PDF simple usando C#.

// Inicializar objeto de documento
Document document = new Document();

// Añadir página
Page page = document.Pages.Add();

// Agregar texto a la nueva página
page.Paragraphs.Add(new Aspose.Pdf.Text.TextFragment("Hello World!"));

// Guardar PDF 
document.Save("document.pdf");

Obtenga más información sobre la creación de documentos PDF complejos.

Editar un archivo PDF en C#

Modificar un archivo PDF es tan simple como crear uno nuevo. Simplemente cargue el archivo usando la clase Document, realice las operaciones deseadas y guárdelo. Los siguientes son los pasos para modificar un PDF.

  • Cree un objeto de la clase Document y proporcione la ruta de un archivo PDF a su constructor.
  • Manipular las páginas o el contenido del documento.
  • Guarde el documento usando el método Document.Save().

El siguiente ejemplo de código muestra cómo modificar un PDF usando C#.

// Cargar PDF
var pdfDocument = new Aspose.Pdf.Document("document.pdf");

// Realice alguna manipulación, por ejemplo, agregue una nueva página vacía
pdfDocument.Pages.Add();

// Guardar el PDF actualizado
pdfDocument.Save(modifiedFileName);

Insertar imagen en PDF usando C#

Veamos ahora cómo insertar una imagen en el documento PDF. Los siguientes son los pasos para hacerlo.

  • Cree un objeto de la clase Document para abrir un documento PDF.
  • Acceda a la página a la que desea agregar una imagen usando la clase Página.
  • Agregue la imagen a la colección de Recursos de la página.
  • Utilice operadores para colocar la imagen en la página:
    • Guardar operator to save the current graphical state.
    • ConcatenarMatriz operator to specify where the image is to be placed.
    • Hacer operator to draw the image on the page.
    • Finalmente, use el operador GRestore para guardar el estado gráfico actualizado.
  • Guarde el archivo PDF.

El siguiente ejemplo de código muestra cómo agregar una imagen a un documento PDF usando C#.

// Abrir documento
Document pdfDocument = new Document("document.pdf");

// Establecer coordenadas
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// Obtener la página donde se debe agregar la imagen
Page page = pdfDocument.Pages[1];

// Cargar imagen en flujo
FileStream imageStream = new FileStream("aspose-logo.jpg", FileMode.Open);

// Agregar imagen a la colección de imágenes de los recursos de la página
page.Resources.Images.Add(imageStream);

// Usando el operador GSave: este operador guarda el estado actual de los gráficos
page.Contents.Add(new Aspose.Pdf.Operators.GSave());

// Crear objetos Rectángulo y Matriz
Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY });

// Usando el operador ConcatenateMatrix (matriz concatenada): define cómo se debe colocar la imagen
page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix));
XImage ximage = page.Resources.Images[page.Resources.Images.Count];

// Usando el operador Do: este operador dibuja la imagen
page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));

// Usando el operador GRestore: este operador restaura el estado de los gráficos
page.Contents.Add(new Aspose.Pdf.Operators.GRestore()); 

// Guardar documento actualizado
pdfDocument.Save("document.pdf");

Leer más sobre insertar imágenes en PDF.

Crear una tabla en PDF usando C#

Las tablas son un componente esencial de los documentos que se utilizan para organizar los datos en forma de filas y columnas. Aspose.PDF for .NET le proporciona una forma bastante sencilla de crear e insertar tablas en documentos PDF. Los siguientes son los pasos para realizar esta operación.

  • Cargue el archivo PDF usando la clase Document.
  • Inicialice una tabla y configure sus columnas y filas usando la clase Table.
  • Establecer la configuración de la tabla (es decir, los bordes).
  • Complete la tabla creando filas usando el método Table.Rows.Add().
  • Agregue la tabla a la página usando el método Document.Pages1.Paragraphs.Add(Table).
  • Guarde el archivo PDF.

El siguiente ejemplo de código muestra cómo crear y agregar una tabla en un documento PDF en C#.

// Cargar documento PDF de origen
Aspose.Pdf.Document doc = new Aspose.Pdf.Document("document.pdf");

// Inicializa una nueva instancia de la tabla.
Aspose.Pdf.Table table = new Aspose.Pdf.Table();

// Establezca el color del borde de la tabla como LightGray
table.Border = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, .5f, Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray));

// Establecer el borde de las celdas de la tabla
table.DefaultCellBorder = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, .5f, Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray));

// Crea un bucle para agregar 10 filas
for (int row_count = 1; row_count < 10; row_count++)
{
    // Agregar fila a la tabla
    Aspose.Pdf.Row row = table.Rows.Add();
    // Agregar celdas de tabla
    row.Cells.Add("Column (" + row_count + ", 1)");
    row.Cells.Add("Column (" + row_count + ", 2)");
    row.Cells.Add("Column (" + row_count + ", 3)");
}

// Agregar objeto de tabla a la primera página del documento de entrada
doc.Pages[1].Paragraphs.Add(table);

// Guardar documento actualizado que contiene objeto de tabla
doc.Save("document_with_table_out.pdf");

Lea más sobre crear tablas en PDF.

Crear un formulario en PDF en C#

Los formularios en PDF se utilizan para recopilar los datos de los lectores. Puede insertar cuadros de texto, casillas de verificación, botones de radio y otros controles admitidos en formularios PDF. El formato PDF admite dos tipos de formularios; Formularios Acro y formularios XFA (ver detalles). Los siguientes son los pasos para crear y agregar formularios en un PDF.

El siguiente ejemplo de código muestra cómo agregar formularios al documento PDF usando C#.

// Abrir documento
Document pdfDocument = new Document("document.pdf");

// crear un campo
TextBoxField textBoxField = new TextBoxField(pdfDocument.Pages[1], new Aspose.Pdf.Rectangle(100, 200, 300, 300));
textBoxField.PartialName = "textbox1";
textBoxField.Value = "Text Box";

// TextBoxField.Border = nuevo borde (
Border border = new Border(textBoxField);
border.Width = 5;
border.Dash = new Dash(1, 1);
textBoxField.Border = border;

textBoxField.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);

// Agregar campo al documento
pdfDocument.Form.Add(textBoxField, 1);

// Guardar PDF modificado
pdfDocument.Save("output.pdf");

Lea más sobre crear formularios en PDF.

Conclusión

En esta publicación, ha aprendido cómo crear archivos PDF desde cero usando C#. Además, ha llegado a saber cómo insertar varios tipos de componentes, como texto, imágenes, tablas y formularios en un documento PDF mediante programación. Puede obtener más información sobre la API de PDF utilizando la documentación.

Ver también

Información: Aspose proporciona una aplicación web en línea gratuita que le permite ver archivos PDF en línea, otra que le permite convertir archivos PDF a video y otra que le permite editar archivos PDF en línea.