Criar documentos PDF usando C#

A geração e o processamento automatizados de documentos PDF tornaram-se um recurso exigente nos últimos dias. Em vários aplicativos, os documentos PDF são gerados dinamicamente, como faturas, recibos e diversos tipos de relatórios. De acordo com isso, este artigo aborda a implementação básica da automação de PDF em aplicativos .NET. Por fim, você aprenderá como criar arquivos PDF usando C#. Os exemplos de código demonstrarão como inserir texto, imagens, tabelas e outros componentes em PDF usando C#.

API de PDF C# .NET - Download Gratuito

Aspose.PDF for .NET é uma API de manipulação de arquivos PDF que permite gerar e processar arquivos PDF a partir de seus aplicativos .NET. Usando a API, você pode gerar vários tipos de relatórios e documentos comerciais de forma dinâmica. A API está disponível como uma DLL para download, bem como hospedada em NuGet.

Install-Package Aspose.Pdf

Criar arquivos PDF em C#

Vamos começar criando um documento PDF simples contendo um fragmento de texto. A seguir estão as etapas para criar um arquivo PDF usando C#.

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

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

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

// Adicionar texto à nova página
page.Paragraphs.Add(new Aspose.Pdf.Text.TextFragment("Hello World!"));

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

Leia mais sobre criar documentos PDF complexos.

Editar um arquivo PDF em C#

Modificar um arquivo PDF é tão simples quanto criar um novo. Basta carregar o arquivo usando a classe Document, realizar as operações desejadas e salvá-lo. A seguir estão as etapas para modificar um PDF.

  • Crie um objeto da classe Document e forneça o caminho de um arquivo PDF para seu construtor.
  • Manipular as páginas ou o conteúdo do documento.
  • Salve o documento usando o método Document.Save().

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

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

// Faça alguma manipulação, por exemplo, adicione uma nova página vazia
pdfDocument.Pages.Add();

// Salve o PDF atualizado
pdfDocument.Save(modifiedFileName);

Inserir imagem em PDF usando C#

Vamos agora verificar como inserir uma imagem no documento PDF. A seguir estão os passos para fazê-lo.

  • Crie um objeto da classe Document para abrir um documento PDF.
  • Acesse a página à qual deseja adicionar uma imagem usando a classe Página.
  • Adicione a imagem à coleção Resources da página.
  • Use operadores para colocar a imagem na página:
    • GSalvar operator to save the current graphical state.
    • Concatenar Matriz operator to specify where the image is to be placed.
    • Fazer operator to draw the image on the page.
    • Finalmente, use o operador GRestore para salvar o estado gráfico atualizado.
  • Salve o arquivo PDF.

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

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

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

// Obtenha a página onde a imagem precisa ser adicionada
Page page = pdfDocument.Pages[1];

// Carregar imagem no fluxo
FileStream imageStream = new FileStream("aspose-logo.jpg", 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);
Matrix matrix = new Matrix(new double[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY });

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

// Salvar documento atualizado
pdfDocument.Save("document.pdf");

Leia mais sobre inserir imagens em PDF.

Criar uma tabela em PDF usando C#

As tabelas são um componente essencial dos documentos que são usados para organizar os dados na forma de linhas e colunas. O Aspose.PDF for .NET fornece uma maneira bastante simples de criar e inserir tabelas em documentos PDF. A seguir estão as etapas para realizar esta operação.

  • Carregue o arquivo PDF usando a classe Document.
  • Inicialize uma tabela e defina suas colunas e linhas usando a classe Table.
  • Defina as configurações da tabela (ou seja, bordas).
  • Preencha a tabela criando linhas usando o método Table.Rows.Add().
  • Adicione a tabela à página usando o método Document.Pages1.Paragraphs.Add(Table).
  • Salve o arquivo PDF.

O exemplo de código a seguir mostra como criar e adicionar uma tabela em um documento PDF em C#.

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

// 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 objeto de tabela à primeira página do documento de entrada
doc.Pages[1].Paragraphs.Add(table);

// Salvar documento atualizado contendo objeto de tabela
doc.Save("document_with_table_out.pdf");

Leia mais sobre criar tabelas em PDF.

Criar um formulário em PDF em C#

Formulários em PDFs são usados para coletar os dados dos leitores. Você pode inserir caixas de texto, caixas de seleção, botões de opção e outros controles compatíveis em formulários PDF. O formato PDF suporta dois tipos de formulários; Formulários Acro e formulários XFA (ver detalhes). A seguir estão as etapas para criar e adicionar formulários em um PDF.

O exemplo de código a seguir mostra como adicionar formulários ao documento PDF usando C#.

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

// Criar um 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 = new Border(
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);

// Adicionar campo ao documento
pdfDocument.Form.Add(textBoxField, 1);

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

Leia mais sobre criar formulários em PDF.

Conclusão

Neste post, você aprendeu como criar arquivos PDF do zero usando C#. Além disso, você aprendeu a inserir vários tipos de componentes, como texto, imagens, tabelas e formulários em um documento PDF programaticamente. Você pode aprender mais sobre a API de PDF usando a documentação.

Veja também

Informações: O Aspose fornece um aplicativo da web online gratuito que permite visualizar PDFs online, outro que permite converter PDFs em vídeo e outro que permite editar PDFs online.