Criar documentos PDF usando C#

PDF é um formato de documento independente de plataforma que mantém a formatação e o layout de seu conteúdo consistentes em diferentes sistemas operacionais ou máquinas. Esta é a razão pela qual várias organizações usam o formato PDF para gerar faturas, recibos, relatórios e outros documentos comerciais dinamicamente. Aspose.PDF for .NET é uma biblioteca de PDF que ajuda a implementar a automação de PDF em aplicativos .NET. Ele permite que você crie, edite, analise e converta arquivos PDF programaticamente usando C# ou VB.NET. Neste artigo, abordarei os recursos de geração de PDF e mostrarei como criar arquivos PDF do zero usando C#.

Começarei criando um documento PDF simples e depois adicionarei outros elementos ao documento. A seguir está a lista de recursos que vou demonstrar neste artigo.

Biblioteca C# PDF - Instalação

Você pode instalar o Aspose.PDF para .NET usando o NuGet Package Manager ou o Package Manager Console usando o seguinte comando. Alternativamente, ele pode ser baixado da seção Downloads.

Install-Package Aspose.Pdf

Criar um arquivo PDF usando C#

Vamos primeiro criar um documento PDF contendo um fragmento de texto. A seguir estão as etapas para criar um documento PDF simples do zero.

O exemplo de código a seguir mostra como criar um arquivo PDF usando C#.

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

// Adicionar Página
Aspose.Pdf.Page page = document.Pages.Add();

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

// Salve o documento PDF
document.Save("Generated-PDF.pdf");
criar pdf usando c#

Aplicar formatação de texto em PDF usando C#

Vamos agora verificar como adicionar texto a um documento PDF e usar diferentes opções de formatação. A seguir estão as etapas para realizar esta operação.

  • Use a classe Document para criar um novo documento PDF ou carregar um existente.
  • Acesse a Página na qual deseja colocar o texto.
  • Crie um objeto de TextFragment e defina o texto e outras opções de formatação, como posição, fonte, cor, tamanho, etc.
  • Use a classe TextBuilder para adicionar o objeto TextFragment à página.
  • Use o método Document.Save() para criar o documento PDF.

O exemplo de código a seguir mostra como adicionar texto formatado em um arquivo PDF usando C#.

// Carregar documento PDF 
Document document = new Document();
// Adicionar Página
Aspose.Pdf.Page page = document.Pages.Add();

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

// Definir propriedades 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;
// Crie uma nova cor com o espaço de cores padrão
textFragment1.TextState.ForegroundColor = new Aspose.Pdf.Color()
{
	PatternColorSpace = new Aspose.Pdf.Drawing.GradientAxialShading(Color.Red, Color.Blue)
};
// Criar objeto TextBuilder
TextBuilder textBuilder = new TextBuilder(page);

// Anexar os fragmentos de texto à página PDF
textBuilder.AppendText(textFragment);
textBuilder.AppendText(textFragment1);

// Salve o documento PDF
document.Save("Generated-PDF.pdf");
criar pdf com texto formatado usando c#

Criar um PDF de várias colunas usando C#

Muitas vezes vemos que o texto em jornais, artigos de pesquisa e outros tipos de documentos é dividido em duas ou mais colunas. Para conseguir essa divisão de texto, o Aspose.PDF para .NET permite criar um PDF com várias colunas. A seguir estão as etapas para criar um PDF com várias colunas.

O exemplo de código a seguir mostra como criar um PDF de várias colunas usando C#.

// Carregar documento PDF 
Document document = new Document();
// Especifique as informações da margem esquerda para o arquivo PDF
document.PageInfo.Margin.Left = 40;
// Especifique as informações da margem direita para o arquivo PDF
document.PageInfo.Margin.Right = 40;
Aspose.Pdf.Page page = document.Pages.Add();

// Adicionar uma linha
Aspose.Pdf.Drawing.Graph graph1 = new Aspose.Pdf.Drawing.Graph(500, 2);
// Adicione a linha à coleção de paráfrases do objeto de seção
page.Paragraphs.Add(graph1);

// Especifique as coordenadas para a linha
float[] posArr = new float[] { 1, 2, 500, 2 };
Aspose.Pdf.Drawing.Line l1 = new Aspose.Pdf.Drawing.Line(posArr);
graph1.Shapes.Add(l1);

// Adicionar um título
// Crie variáveis de string com texto contendo tags html
string s = "<font face=\"Times New Roman\" size=4>" +
"<strong> How to Steer Clear of money scams</<strong> "
+ "</font>";

// Criar parágrafos de texto contendo texto HTML
HtmlFragment heading_text = new HtmlFragment(s);
page.Paragraphs.Add(heading_text);

Aspose.Pdf.FloatingBox box = new Aspose.Pdf.FloatingBox();
// Adicione quatro colunas na seção
box.ColumnInfo.ColumnCount = 2;
// Defina o espaçamento entre as colunas
box.ColumnInfo.ColumnSpacing = "5";
// Defina as larguras das colunas
box.ColumnInfo.ColumnWidths = "250 250"; 

// Criar 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.");

// Adicionar texto ao documento
box.Paragraphs.Add(text2);
page.Paragraphs.Add(box);

// Salve o documento PDF
document.Save("Generated-PDF.pdf");
criar pdf de várias colunas usando c #

Inserir imagem em um PDF usando C#

As etapas a seguir demonstram como inserir imagens em documentos PDF.

  • Crie um novo documento PDF ou abra um existente usando a classe Document.
  • Obtenha a página na qual deseja inserir uma imagem.
  • Adicione a imagem às imagens da página.
  • Use os operadores GSave, ConcatenateMatrix e Do para colocar a imagem na página.
  • Salve o documento PDF usando o método Document.Save().

O exemplo de código a seguir mostra como inserir uma imagem em PDF usando C#.

// Carregar documento PDF 
Document document = new Document();
// Adicionar Página
Aspose.Pdf.Page page = document.Pages.Add();

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

// Carregar imagem no fluxo
FileStream imageStream = new FileStream("aspose_pdf.png", FileMode.Open);
// Adicionar imagem à coleção de imagens de recursos de página
page.Resources.Images.Add(imageStream);
// Usando o operador GSave: este operador salva o estado gráfico atual
page.Contents.Add(new Aspose.Pdf.Operators.GSave());
// Criar objetos Retângulo e Matriz
Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
//Matriz matriz = new Matrix(new double[] { retângulo.URX - retângulo.LLX, 0, 0, retângulo.URY - retângulo.LLY, retângulo.LLX, retângulo.LLY });
Matrix matrix = new Matrix(new double[] { 200, 0, 0, 200, 200, 600 });
// Usando o operador ConcatenateMatrix (concatenate matrix): define como a imagem deve ser colocada
page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix));
XImage ximage = page.Resources.Images[page.Resources.Images.Count];
// Usando o operador Do: este operador desenha a imagem
page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));
// Usando o operador GRestore: este operador restaura o estado gráfico
page.Contents.Add(new Aspose.Pdf.Operators.GRestore());

// Salve o documento PDF
document.Save("Generated-PDF.pdf");
inserir imagem em PDF usando C#

Criar tabela em um arquivo PDF usando C#

A tabela é usada para organizar os dados na forma de linhas e colunas e fornecer uma visão geral rápida das informações. Para criar uma tabela no documento PDF, siga as etapas abaixo.

  • Crie um objeto da classe Document para criar um novo PDF ou carregar um existente.
  • Acesse a página na qual você deseja criar uma tabela.
  • Crie uma instância da classe Tabela.
  • Defina a borda da tabela e a borda das células usando a classe BorderInfo.
  • Crie e adicione uma nova Row à coleção Table.Rows.
  • Adicione células à coleção Row.Cells.
  • Adicione a tabela à página usando o método Page.Paragraphs.Add().
  • Salve o documento PDF usando o método Document.Save().

O exemplo de código a seguir mostra como criar uma tabela em PDF usando C#.

// Carregar documento PDF 
Document document = new Document();
// Adicionar Página
Aspose.Pdf.Page page = document.Pages.Add();

// Inicializa uma nova instância da Tabela
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
// Defina a cor da borda da tabela como LightGray
table.Border = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, .5f, Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray));
// Definir a borda das células da tabela
table.DefaultCellBorder = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, .5f, Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray));
// Crie um loop para adicionar 10 linhas
for (int row_count = 1; row_count < 10; row_count++)
{
	// Adicionar linha à tabela
	Aspose.Pdf.Row row = table.Rows.Add();
	// Adicionar células de tabela
	row.Cells.Add("Column (" + row_count + ", 1)");
	row.Cells.Add("Column (" + row_count + ", 2)");
	row.Cells.Add("Column (" + row_count + ", 3)");
}

// Adicionar tabela à página
page.Paragraphs.Add(table);

// Salve o documento PDF
document.Save("Generated-PDF.pdf");
criar tabela em pdf usando c#

Adicionar anotação em um PDF usando C#

As anotações são objetos gráficos usados para fornecer informações adicionais sobre o conteúdo dos documentos PDF. O formato PDF suporta várias anotações, incluindo texto, realce, linha, notas, etc. A seguir estão as etapas para adicionar uma anotação em um documento PDF.

O exemplo de código a seguir mostra como adicionar uma anotação ao PDF usando C#.

// Carregar documento PDF 
Document document = new Document();
// Adicionar Página
Aspose.Pdf.Page page = document.Pages.Add();

// Criar anotação
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);

// Adicionar anotação na coleção de anotações da página
page.Annotations.Add(textAnnotation);

// Salve o documento PDF
document.Save("Generated-PDF.pdf");
adicionar anotação em PDF usando C#

Você também pode adicionar hiperlinks a um documento PDF usando a Anotação de link. A seguir estão as etapas para realizar esta operação.

  • Crie um novo objeto Document.
  • Acesse a página onde você deseja adicionar o hiperlink.
  • Crie uma instância da classe LinkAnnotation.
  • Defina as propriedades do objeto LinkAnnotation, incluindo o URI de ação.
  • Adicione o link à coleção Page.Annotations.
  • Use a classe FreeTextAnnotation para definir o texto do hiperlink.
  • Adicione o objeto FreeTextAnnotation à coleção Page.Annotations.
  • Crie um documento PDF usando o método Document.Save().

O exemplo de código a seguir mostra como adicionar um hiperlink a um documento PDF usando C#.

// Carregar documento PDF 
Document document = new Document();
// Adicionar Página
Aspose.Pdf.Page page = document.Pages.Add();

// Criar objeto de anotação de link
LinkAnnotation link = new LinkAnnotation(page, new Aspose.Pdf.Rectangle(100, 800, 250, 750));
// Criar objeto de borda para LinkAnnotation
Border border = new Border(link);
// Defina o valor da largura da borda como 0
border.Width = 1;
// Definir a borda para LinkAnnotation
link.Border = border; 

// Especifique o tipo de link como URI remoto
link.Action = new GoToURIAction("www.aspose.com");
// Adicionar anotação de link à coleção de anotações da primeira página do arquivo PDF
page.Annotations.Add(link);

// Criar anotação de texto livre para o texto do link
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));
// String a ser adicionada como texto livre
textAnnotation.Contents = "Link to Aspose website";
// Definir a borda para anotação de texto livre
textAnnotation.Border = border;
// Adicionar anotação FreeText à coleção de anotações da primeira página do documento
page.Annotations.Add(textAnnotation);

// Salve o documento PDF
document.Save("Generated-PDF.pdf");
adicionar hiperlink em PDF usando C#

Criar marcadores em um PDF usando C#

Os marcadores são usados para navegar para uma seção ou página específica em documentos PDF. Aspose.PDF para .NET permite adicionar ou manipular marcadores. A seguir estão as etapas para criar e adicionar um marcador em um documento PDF.

O exemplo de código a seguir mostra como criar um documento PDF com marcadores usando C#.

// Carregar documento PDF 
Document document = new Document();
// Adicionar Página
Aspose.Pdf.Page page = document.Pages.Add();

// Criar um objeto de marcador pai
OutlineItemCollection pdfOutline = new OutlineItemCollection(document.Outlines);
pdfOutline.Title = "Parent Outline";
pdfOutline.Italic = true;
pdfOutline.Bold = true;

// Criar um objeto de marcador filho
OutlineItemCollection pdfChildOutline = new OutlineItemCollection(document.Outlines);
pdfChildOutline.Title = "Child Outline";
pdfChildOutline.Italic = true;
pdfChildOutline.Bold = true;

// Adicionar marcador filho na coleção de marcadores pai
pdfOutline.Add(pdfChildOutline);
// Adicione o marcador pai na coleção de estrutura de tópicos do documento.
document.Outlines.Add(pdfOutline);

// Salve o documento PDF
document.Save("Generated-PDF.pdf");
criar marcador em PDF usando C#

Conclusão

Neste artigo, mostrei como criar arquivos PDF do zero usando C#. O guia passo a passo e os exemplos de código demonstram como adicionar texto, imagem, tabela, anotação, hiperlink e marcadores nos arquivos PDF programaticamente. Você pode explorar outros recursos da biblioteca .NET PDF da Aspose usando a documentação.

Veja também