Crear documentos PDF usando C#

PDF es un formato de documento independiente de la plataforma que mantiene el formato y el diseño de su contenido consistentes en diferentes sistemas operativos o máquinas. Esta es la razón por la que varias organizaciones utilizan el formato PDF para generar facturas, recibos, informes y otros documentos comerciales de forma dinámica. Aspose.PDF for .NET es una biblioteca de PDF que lo ayuda a implementar la automatización de PDF en aplicaciones .NET. Le permite crear, editar, analizar y convertir archivos PDF mediante programación usando C# o VB.NET. En este artículo, cubriré las funciones de generación de PDF y le mostraré cómo crear archivos PDF desde cero usando C#.

Comenzaré creando un documento PDF simple y luego procederé a agregar otros elementos al documento. La siguiente es la lista de características que voy a demostrar en este artículo.

Biblioteca PDF de C# - Instalación

Puede instalar Aspose.PDF for .NET usando NuGet Package Manager o Package Manager Console usando el siguiente comando. Alternativamente, se puede descargar desde la sección Descargas.

Install-Package Aspose.Pdf

Crear un archivo PDF usando C#

Primero creemos un documento PDF que contenga un fragmento de texto. Los siguientes son los pasos para crear un documento PDF simple desde cero.

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

// Cargar documento PDF 
Document document = new Document();

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

// Agregar texto a la nueva página
page.Paragraphs.Add(new Aspose.Pdf.Text.TextFragment("Hello World! This is a new PDF generated by Aspose.PDF for .NET."));

// Guardar el documento PDF
document.Save("Generated-PDF.pdf");
crear pdf usando C#

Aplicar formato de texto en PDF usando C#

Veamos ahora cómo agregar texto a un documento PDF y usar diferentes opciones de formato. Los siguientes son los pasos para realizar esta operación.

  • Utilice la clase Document para crear un nuevo documento PDF o cargar uno existente.
  • Acceda a la Página en la que desea colocar el texto.
  • Cree un objeto de TextFragment y establezca el texto y otras opciones de formato, como posición, fuente, color, tamaño, etc.
  • Utilice la clase TextBuilder para agregar el objeto TextFragment a la página.
  • Utilice el método Document.Save() para crear el documento PDF.

El siguiente ejemplo de código muestra cómo agregar texto con formato en un archivo PDF usando C#.

// Cargar documento PDF 
Document document = new Document();
// Añadir página
Aspose.Pdf.Page page = document.Pages.Add();

// Crear fragmento de texto
TextFragment textFragment = new TextFragment("Text 1: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment.Position = new Position(100, 700);
TextFragment textFragment1 = new TextFragment("Text 2: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment1.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);

textFragment1.TextState.DrawTextRectangleBorder = true;
textFragment1.TextState.Underline = true;
textFragment1.TextState.StrikeOut = true;
// Crea un nuevo color con el espacio de color del patrón
textFragment1.TextState.ForegroundColor = new Aspose.Pdf.Color()
{
	PatternColorSpace = new Aspose.Pdf.Drawing.GradientAxialShading(Color.Red, Color.Blue)
};
// Crear objeto TextBuilder
TextBuilder textBuilder = new TextBuilder(page);

// Agregue los fragmentos de texto a la página PDF
textBuilder.AppendText(textFragment);
textBuilder.AppendText(textFragment1);

// Guardar el documento PDF
document.Save("Generated-PDF.pdf");
crear pdf con texto formateado usando C#

Cree un PDF de varias columnas con C#

A menudo vemos que el texto de los periódicos, artículos de investigación y otros tipos de documentos se divide en dos o más columnas. Para lograr esta división de texto, Aspose.PDF for .NET permite crear un PDF de varias columnas. Los siguientes son los pasos para crear un PDF de varias columnas.

El siguiente ejemplo de código muestra cómo crear un PDF de varias columnas con C#.

// Cargar documento PDF 
Document document = new Document();
// Especifique la información del margen izquierdo para el archivo PDF
document.PageInfo.Margin.Left = 40;
// Especifique la información del margen derecho para el archivo PDF
document.PageInfo.Margin.Right = 40;
Aspose.Pdf.Page page = document.Pages.Add();

// Agregar una línea
Aspose.Pdf.Drawing.Graph graph1 = new Aspose.Pdf.Drawing.Graph(500, 2);
// Agregue la línea a la colección de paráfrasis del objeto de sección
page.Paragraphs.Add(graph1);

// Especificar las coordenadas para la línea.
float[] posArr = new float[] { 1, 2, 500, 2 };
Aspose.Pdf.Drawing.Line l1 = new Aspose.Pdf.Drawing.Line(posArr);
graph1.Shapes.Add(l1);

// Agregar un encabezado
// Cree variables de cadena con texto que contenga etiquetas html
string s = "<font face=\"Times New Roman\" size=4>" +
"<strong> How to Steer Clear of money scams</<strong> "
+ "</font>";

// Crear párrafos de texto que contengan texto HTML
HtmlFragment heading_text = new HtmlFragment(s);
page.Paragraphs.Add(heading_text);

Aspose.Pdf.FloatingBox box = new Aspose.Pdf.FloatingBox();
// Añadir cuatro columnas en la sección.
box.ColumnInfo.ColumnCount = 2;
// Establecer el espacio entre las columnas
box.ColumnInfo.ColumnSpacing = "5";
// Establecer los anchos de columna
box.ColumnInfo.ColumnWidths = "250 250"; 

// Crear texto 
TextFragment text2 = new TextFragment(@"Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue. Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales. Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue. Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales. Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue. Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales. Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue. Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.");

// Agregar texto al documento
box.Paragraphs.Add(text2);
page.Paragraphs.Add(box);

// Guardar el documento PDF
document.Save("Generated-PDF.pdf");
crear pdf de varias columnas usando C#

Insertar imagen en un PDF usando C#

Los siguientes pasos demuestran cómo insertar imágenes en documentos PDF.

  • Cree un nuevo documento PDF o abra uno existente usando la clase Document.
  • Obtenga la página en la que desea insertar una imagen.
  • Añade la imagen a las imágenes de la página.
  • Utilice los operadores GSave, ConcatenateMatrix y Do para colocar la imagen en la página.
  • Guarde el documento PDF utilizando el método Document.Save().

El siguiente ejemplo de código muestra cómo insertar una imagen en PDF usando C#.

// Cargar documento PDF 
Document document = new Document();
// Añadir página
Aspose.Pdf.Page page = document.Pages.Add();

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

// Cargar imagen en flujo
FileStream imageStream = new FileStream("aspose_pdf.png", 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 matriz = new Matrix(new double[] { rectángulo.URX - rectángulo.LLX, 0, 0, rectángulo.URY - rectángulo.LLY, rectángulo.LLX, rectángulo.LLY });
Matrix matrix = new Matrix(new double[] { 200, 0, 0, 200, 200, 600 });
// 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 el documento PDF
document.Save("Generated-PDF.pdf");
insertar imagen en PDF usando C#

Crear tabla en un archivo PDF usando C#

La tabla se utiliza para organizar los datos en forma de filas y columnas y para proporcionar una visión general rápida de la información. Para crear una tabla en el documento PDF, siga los pasos a continuación.

  • Cree un objeto de la clase Document para crear un nuevo PDF o cargar uno existente.
  • Acceda a la página en la que desea crear una tabla.
  • Cree una instancia de la clase Table.
  • Establezca el borde de la tabla y el borde de las celdas usando la clase BorderInfo.
  • Cree y agregue una nueva Row a la colección Table.Rows.
  • Agregue celdas a la colección Row.Cells.
  • Agregue la tabla a la página usando el método Page.Paragraphs.Add().
  • Guarde el documento PDF utilizando el método Document.Save().

El siguiente ejemplo de código muestra cómo crear una tabla en PDF usando C#.

// Cargar documento PDF 
Document document = new Document();
// Añadir página
Aspose.Pdf.Page page = document.Pages.Add();

// 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 tabla a la página
page.Paragraphs.Add(table);

// Guardar el documento PDF
document.Save("Generated-PDF.pdf");
crear tabla en pdf usando C#

Agregar anotación en un PDF usando C#

Las anotaciones son objetos gráficos que se utilizan para proporcionar información adicional sobre el contenido de los documentos PDF. El formato PDF admite varias anotaciones, incluido texto, resaltado, línea, notas, etc. Los siguientes son los pasos para agregar una anotación en un documento PDF.

El siguiente ejemplo de código muestra cómo agregar una anotación a PDF usando C#.

// Cargar documento PDF 
Document document = new Document();
// Añadir página
Aspose.Pdf.Page page = document.Pages.Add();

// Crear anotación
TextAnnotation textAnnotation = new TextAnnotation(page, new Aspose.Pdf.Rectangle(200, 400, 400, 600));
textAnnotation.Title = "Sample Annotation Title";
textAnnotation.Subject = "Sample Subject";
textAnnotation.State = AnnotationState.Accepted;
textAnnotation.Contents = "Sample contents for the annotation";
textAnnotation.Open = true;
textAnnotation.Icon = TextIcon.Key;

Border border = new Border(textAnnotation);
border.Width = 5;
border.Dash = new Dash(1, 1);
textAnnotation.Border = border;
textAnnotation.Rect = new Aspose.Pdf.Rectangle(200, 400, 400, 600);

// Agregar anotación en la colección de anotaciones de la página
page.Annotations.Add(textAnnotation);

// Guardar el documento PDF
document.Save("Generated-PDF.pdf");
agregar anotaciones en PDF usando C#

También puede agregar hipervínculos a un documento PDF mediante la anotación de vínculo. Los siguientes son los pasos para realizar esta operación.

  • Cree un nuevo objeto Document.
  • Acceda a la página donde desea agregar el hipervínculo.
  • Cree una instancia de la clase LinkAnnotation.
  • Establezca las propiedades del objeto LinkAnnotation, incluido el URI de acción.
  • Agregue el enlace a la colección Page.Annotations.
  • Utilice la clase FreeTextAnnotation para establecer el texto del hipervínculo.
  • Agregue el objeto FreeTextAnnotation a la colección Page.Annotations.
  • Cree un documento PDF utilizando el método Document.Save().

El siguiente ejemplo de código muestra cómo agregar un hipervínculo a un documento PDF mediante C#.

// Cargar documento PDF 
Document document = new Document();
// Añadir página
Aspose.Pdf.Page page = document.Pages.Add();

// Crear objeto de anotación de enlace
LinkAnnotation link = new LinkAnnotation(page, new Aspose.Pdf.Rectangle(100, 800, 250, 750));
// Crear objeto de borde para LinkAnnotation
Border border = new Border(link);
// Establezca el valor del ancho del borde en 0
border.Width = 1;
// Establecer el borde para LinkAnnotation
link.Border = border; 

// Especifique el tipo de enlace como URI remoto
link.Action = new GoToURIAction("www.aspose.com");
// Agregar anotación de enlace a la colección de anotaciones de la primera página del archivo PDF
page.Annotations.Add(link);

// Crear anotación de texto libre para el texto del enlace
FreeTextAnnotation textAnnotation = new FreeTextAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(100, 800, 250, 750), new DefaultAppearance(Aspose.Pdf.Text.FontRepository.FindFont("TimesNewRoman"), 10, System.Drawing.Color.Blue));
// Cadena que se agregará como texto libre
textAnnotation.Contents = "Link to Aspose website";
// Establecer el borde para la anotación de texto libre
textAnnotation.Border = border;
// Agregar anotación de texto libre a la colección de anotaciones de la primera página del documento
page.Annotations.Add(textAnnotation);

// Guardar el documento PDF
document.Save("Generated-PDF.pdf");
agregar hipervínculo en PDF usando C#

Crear marcadores en un PDF usando C#

Los marcadores se utilizan para navegar a una sección o página en particular en los documentos PDF. Aspose.PDF for .NET le permite agregar o manipular marcadores. Los siguientes son los pasos para crear y agregar un marcador en un documento PDF.

El siguiente ejemplo de código muestra cómo crear un documento PDF con marcadores usando C#.

// Cargar documento PDF 
Document document = new Document();
// Añadir página
Aspose.Pdf.Page page = document.Pages.Add();

// Crear un objeto de marcador principal
OutlineItemCollection pdfOutline = new OutlineItemCollection(document.Outlines);
pdfOutline.Title = "Parent Outline";
pdfOutline.Italic = true;
pdfOutline.Bold = true;

// Crear un objeto de marcador secundario
OutlineItemCollection pdfChildOutline = new OutlineItemCollection(document.Outlines);
pdfChildOutline.Title = "Child Outline";
pdfChildOutline.Italic = true;
pdfChildOutline.Bold = true;

// Agregue un marcador secundario en la colección de marcadores principales
pdfOutline.Add(pdfChildOutline);
// Agregue un marcador principal en la colección de esquemas del documento.
document.Outlines.Add(pdfOutline);

// Guardar el documento PDF
document.Save("Generated-PDF.pdf");
crear marcador en PDF usando C#

Conclusión

En este artículo, le mostré cómo crear archivos PDF desde cero usando C#. La guía paso a paso y los ejemplos de código demuestran cómo agregar texto, imágenes, tablas, anotaciones, hipervínculos y marcadores en los archivos PDF mediante programación. Puede explorar otras funciones de la biblioteca PDF .NET de Aspose utilizando la documentación.

Ver también