Como gerar um PDF em C# (.NET 5) usando o PDFSharp
O vídeo é um guia instrutivo sobre como usar a biblioteca PDFsharp para gerar um arquivo PDF usando código C#. O palestrante começa apresentando o PDFsharp como uma biblioteca complexa, porém eficaz, para gerar arquivos PDF. A biblioteca possui recursos avançados e, ao contrário de muitos concorrentes, é totalmente gratuita. O palestrante enfatiza que, apesar de sua complexidade, o PDFsharp é uma excelente escolha para gerar arquivos PDF usando C#.
Para iniciar o tutorial, o palestrante apresenta um exemplo de um arquivo PDF gerado que consiste em três linhas de texto. A primeira linha do texto não é exatamente a primeira, enquanto a terceira linha aparece no canto inferior direito. O palestrante observa que a ordem do texto fará sentido assim que eles analisarem o código. Eles também explicam que usarão o .NET 5 para demonstrar como o PDFsharp funciona. Para uma visão mais abrangente da criação de PDFs do zero em C# , oIronPDFoferece uma abordagem alternativa simplificada.
Aqui está uma breve comparação entre PDFsharp eIronPDFem relação às funcionalidades mais relevantes para projetos .NET PDF:
| Recurso | IronPDF | PDFSharp |
|---|---|---|
| Conversão de HTML para PDF | Yes | Não |
| Assinaturas digitais | Yes | Não |
| Criptografia | Yes | Não |
| HTML, CSS e JavaScript | Yes | Não |
| Suporte Professional | Yes | Não |
| Licenciamento | Comercial | MIT (Código Aberto) |
Explicações detalhadas e exemplos de código para cada uma dessas diferenças seguem nas seções abaixo. As equipes que comparam ambas as bibliotecas podem testar os recursos doIronPDFcom uma [licença de avaliação gratuita de 30 dias].
Instalação e configuração
Antes de abordar o código, o palestrante destaca que configurar o ambiente para o PDFsharp pode ser bastante desafiador. Eles explicam que três pacotes NuGet devem ser instalados antes de trabalhar com o PDFsharp. Detalhes do pacote NuGet . O primeiro pacote é o próprio PDFsharp, que pode gerar um aviso de incompatibilidade com o .NET devido à sua versão mais antiga. Os outros dois pacotes são System.Drawing.Common e System.Text.Encoding.CodePages.
Como gerar um PDF em C# (.NET 5) usando o PDFSharp: Figura 1
O palestrante enfatiza que os três pacotes devem ser instalados antes de trabalhar com o PDFsharp; caso contrário, o código apresentará um erro. Eles explicam que o pacote System.Text.Encoding.CodePages é especialmente importante, pois fornece o suporte de codificação necessário para gerar arquivos PDF. O palestrante também observa que falhas na instalação correta dos pacotes podem ser difíceis de solucionar. As equipes que desejam evitar completamente essa configuração com vários pacotes podem seguir o guia de migração do PDFsharp para o IronPDF para uma transição passo a passo.
Instalando bibliotecas relacionadas
Para que oPDFSharpfuncione corretamente, o palestrante explica que um provedor deve estar registrado para System.Text.Encoding. O provedor vem do pacote System.Text.Encoding.CodePages, e o palestrante destaca a importância de registrar o pacote para garantir que o PDFsharp funcione corretamente. Eles explicam que a falta de registro do provedor resultará em um erro, que pode ser difícil de solucionar.
Criando um arquivo PDF
Em seguida, o palestrante apresenta um aplicativo de console simples que usa o PDFsharp para gerar um arquivo PDF. Ele explica que, antes de usar a biblioteca, as declarações using para PDFsharp Drawing e PDFsharp PDF devem ser declaradas. Em seguida, o palestrante apresenta o código para gerar o arquivo PDF, que envolve a criação de um novo documento, a adição de uma nova página e a inserção do texto na página.
using PdfSharp.Drawing;
using PdfSharp.Pdf;
namespace PdfSharpExample
{
class Program
{
static void Main(string[] args)
{
// Create a new PDF document
PdfDocument document = new PdfDocument();
// Add a new page
PdfPage page = document.AddPage();
// Prepare to draw on the page
XGraphics gfx = XGraphics.FromPdfPage(page);
// Define a font
XFont font = new XFont("Verdana", 20, XFontStyle.Bold);
// Draw a string to the page
gfx.DrawString("Hello, PDFsharp!", font, XBrushes.Black,
new XRect(0, 0, page.Width, page.Height),
XStringFormats.Center);
// Save the document
const string filename = "HelloWorld.pdf";
document.Save(filename);
}
}
}
using PdfSharp.Drawing;
using PdfSharp.Pdf;
namespace PdfSharpExample
{
class Program
{
static void Main(string[] args)
{
// Create a new PDF document
PdfDocument document = new PdfDocument();
// Add a new page
PdfPage page = document.AddPage();
// Prepare to draw on the page
XGraphics gfx = XGraphics.FromPdfPage(page);
// Define a font
XFont font = new XFont("Verdana", 20, XFontStyle.Bold);
// Draw a string to the page
gfx.DrawString("Hello, PDFsharp!", font, XBrushes.Black,
new XRect(0, 0, page.Width, page.Height),
XStringFormats.Center);
// Save the document
const string filename = "HelloWorld.pdf";
document.Save(filename);
}
}
}
Imports PdfSharp.Drawing
Imports PdfSharp.Pdf
Namespace PdfSharpExample
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Create a new PDF document
Dim document As New PdfDocument()
' Add a new page
Dim page As PdfPage = document.AddPage()
' Prepare to draw on the page
Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
' Define a font
Dim font As New XFont("Verdana", 20, XFontStyle.Bold)
' Draw a string to the page
gfx.DrawString("Hello, PDFsharp!", font, XBrushes.Black, New XRect(0, 0, page.Width, page.Height), XStringFormats.Center)
' Save the document
Const filename As String = "HelloWorld.pdf"
document.Save(filename)
End Sub
End Class
End Namespace
O palestrante observa que o código para gerar o arquivo PDF pode ser ajustado para incluir recursos mais complexos, como adicionar imagens (veja como converter imagens para PDF com o IronPDF), tabelas e gráficos. Eles também explicam que o PDFsharp oferece diversos recursos para trabalhar com fontes, incluindo a incorporação de fontes no arquivo PDF.
Como gerar um PDF em C# (.NET 5) usando o PDFSharp: Figura 2
O palestrante explica a importância de configurar o ambiente corretamente, instalando os pacotes NuGet necessários e registrando um provedor para System.Text.Encoding. Eles também apresentam um aplicativo de console simples que usa o PDFsharp para gerar um arquivo PDF e demonstram como o código pode ser ajustado para incluir recursos mais complexos. O vídeo é um excelente recurso para qualquer pessoa interessada em gerar arquivos PDF usando C# e PDFsharp.
Criando listas e itens mais complexos
Na segunda parte do vídeo, o palestrante começa apresentando um exemplo mais complexo de criação de um documento PDF. Ele enfatiza que é inútil ter um documento PDF vazio e explica como criar uma nova página usando a biblioteca PDFSharp. Ele observa que o processo é semelhante à criação de itens em suplementos do Excel ou do PowerPoint e que, uma vez criada a página, ela funciona com uma referência que não requer a invocação de outro método.
Como gerar um PDF em C# (.NET 5) usando o PDFSharp: Figura 3
Em seguida, o palestrante apresenta a variável XGraphics, que fornece métodos para desenhar elementos como texto, linhas e imagens — funcionalidade que oIronPDFgerencia por meio de sua API de carimbo de texto e imagem , sem a necessidade de cálculos manuais de coordenadas. A variável XFont também é introduzida como um meio de configurar uma fonte para uso no documento PDF. O palestrante observa que a fonte pode ser gerada em outro lugar, mas que é útil configurá-la globalmente se houver um arranjo mais complexo.
Em seguida, o palestrante discute o método DrawString, que insere texto no arquivo PDF. Ele observa que a parte complexa do método é determinar onde o texto será desenhado e explica os vários parâmetros envolvidos, como a fonte, a cor e os limites de alinhamento do texto. Ele também explica o uso da variável XBrushes para definir a cor do texto.
Explicando DrawString e outros métodos
Em seguida, o palestrante apresenta vários exemplos de uso do método DrawString com diferentes parâmetros, como alinhar o texto ao centro, alinhá-lo no canto inferior esquerdo e especificar as coordenadas exatas onde o texto será colocado. Ele observa que a última opção é a mais personalizável e oferece muita flexibilidade.
Como gerar um PDF em C# (.NET 5) usando o PDFSharp: Figura 4
O palestrante explica como criar uma tabela usando elementos gráficos na linguagem de programação C#. Eles abordam como inserir imagens, textos e linhas, bem como como desenhar arcos e códigos de barras usando o recurso gráfico — tarefas que oIronPDFsimplifica por meio de suas opções de renderização para margens, cabeçalhos e DPI . Eles também explicam a importância da tentativa e erro ao trabalhar com coordenadas e como desenhar linhas para separar as linhas.
O palestrante também aborda o cabeçalho da tabela e a necessidade de um ponto de partida para os valores e a linha. Ele explica como ajustar a posição y e adicionar linhas de registros, e como passar para outra página quando a tabela exceder um determinado número de registros. Por fim, mencionam a importância de redefinir os valores para cada página.
Qual biblioteca você deve escolher?
Em conclusão, o palestrante enfatiza a importância de estar familiarizado com os suplementos do Microsoft Office ao trabalhar com oPDFSharpe oferece seu próprio curso sobre o assunto. Ele também observa que a biblioteca é altamente versátil e pode ser usada para criar uma ampla gama de documentos PDF, desde documentos de texto simples até documentos mais complexos com imagens, gráficos e layouts personalizados.
O que é IronPDF?
IronPDF é uma biblioteca C# para criar, editar e manipular documentos PDF . Ele é distribuído como um único pacote NuGet — Install-Package IronPdf — e se integra a aplicativos .NET sem exigir configuração adicional de dependências.
O PDFsharp oferece um sólido controle de desenho de baixo nível e é distribuído sob uma licença MIT permissiva — duas vantagens genuínas que o tornaram um elemento essencial em muitos projetos .NET . Os atritos costumam ocorrer quando os requisitos vão além da renderização baseada em coordenadas e abrangem áreas como conversão de HTML para PDF, assinaturas digitais ou criptografia de documentos.IronPDFé uma biblioteca com suporte comercial que aborda esses cenários como operações de primeira classe, com suporte Professional e uma API projetada em torno de fluxos de trabalho comuns de geração de documentos, incluindo renderização de HTML, CSS e JavaScript .
Características
| Características | IronPDF | PDFSharp |
|---|---|---|
| Converter HTML para PDF | Sim | Não |
| Suporte profissional | Sim | Não |
| Suporte para HTML, CSS e JavaScript | Sim | Não |
| Assinaturas digitais | Sim | Não |
| Criptografia | Sim | Não |
Uma das principais funcionalidades doIronPDFé a sua capacidade de converter HTML em IronPDF , facilitando a criação de documentos PDF a partir de páginas web. A conversão de HTML para PDF está fora do escopo atual do PDFsharp — ele opera no nível de desenho por coordenadas — portanto, as equipes que precisam dessa funcionalidade normalmente adicionam uma biblioteca de renderização separada ou avaliam o mecanismo Chromium integrado do IronPDF.
OIronPDFtambém inclui suporte para assinaturas digitais e criptografia de PDF com proteção por senha , o que é crucial para documentos confidenciais que exigem manuseio seguro. O PDFsharp não foi projetado para lidar com esses cenários de segurança, portanto, equipes com requisitos de conformidade ou proteção de documentos geralmente consideram isso um ponto de inflexão natural para avaliar o IronPDF.
OIronPDFoferece um conjunto de recursos mais amplo e um suporte mais abrangente em comparação com o PDFsharp, incluindo renderização HTML, criptografia e assinaturas digitais em um único pacote NuGet . Trata-se de um produto comercial, portanto, equipes cujas necessidades se enquadram no modelo de desenho por coordenadas do PDFsharp — e que não precisam de conversão para HTML ou recursos de segurança integrados — podem preferir a abordagem de código aberto e licenciada sob a licença MIT do PDFsharp.
Além do custo da licença, o custo total do projeto inclui as horas de desenvolvimento gastas na montagem de bibliotecas de renderização separadas, no gerenciamento de layouts de página baseados em coordenadas para documentos complexos e na resolução de problemas da configuração de múltiplos pacotes que o PDFsharp exige. Para equipes que avaliam custos ao longo do ciclo de vida de um projeto de vários anos, esses custos de integração e manutenção frequentemente superam a diferença entre o licenciamento de código aberto e o comercial.
Pronto para ver como oIronPDFse encaixa no seu fluxo de trabalho? [Faça o download de uma versão de avaliação gratuita de 30 dias](licença de avaliação) para testar todos os recursos abordados nesta comparação.
[{i:(PDFsharp é uma marca registrada de seu respectivo proprietário. Este site não é afiliado, endossado ou patrocinado pela PDFsharp. Todos os nomes de produtos, logotipos e marcas são propriedade de seus respectivos proprietários. As comparações são apenas para fins informativos e refletem informações disponíveis publicamente no momento da redação.
Perguntas frequentes
Como posso gerar um arquivo PDF usando PDFsharp em C#?
Para gerar um PDF usando o PDFsharp, você precisa criar um novo documento PDF, adicionar uma página a ele e utilizar o objeto XGraphics para desenhar texto ou gráficos. Certifique-se de incluir as diretivas `using` para os namespaces PdfSharp.Drawing e PdfSharp.Pdf .
Quais são os pacotes NuGet essenciais necessários para o PDFsharp?
Para trabalhar de forma eficiente com o PDFsharp, você precisa instalar os seguintes pacotes NuGet: PDFsharp, System.Drawing.Common e System.Text.Encoding.CodePages. Esses pacotes são essenciais para o suporte à codificação e a geração correta de PDFs.
Como o IronPDF se compara ao PDFsharp para geração de PDFs em C#?
O IronPDF é uma biblioteca comercial que oferece recursos avançados como conversão de HTML para PDF, assinaturas digitais e criptografia, que não estão disponíveis no PDFsharp. Ele também fornece melhor documentação e suporte profissional, tornando-o mais fácil de usar para tarefas complexas.
Quais são as limitações do uso do PDFsharp para geração de PDFs?
O PDFsharp não suporta HTML, CSS ou JavaScript, o que limita seus casos de uso. Ele exige um bom conhecimento de configuração de codificação e suplementos do Microsoft Office para documentos complexos, o que pode torná-lo menos intuitivo em comparação com o IronPDF.
Por que o pacote System.Text.Encoding.CodePages é importante para o PDFsharp?
O pacote System.Text.Encoding.CodePages fornece o suporte necessário para codificação ao gerar arquivos PDF com o PDFsharp. Sem instalar e registrar corretamente este pacote, você poderá encontrar erros relacionados à codificação.
Posso converter HTML para PDF usando uma biblioteca C# gratuita?
Não, o PDFsharp não oferece suporte à conversão de HTML para PDF. Para essa funcionalidade, você precisaria de uma biblioteca comercial como o IronPDF, que oferece esse recurso juntamente com outras funcionalidades avançadas.
Como posso solucionar erros comuns no PDFsharp?
Erros comuns no PDFsharp geralmente surgem da configuração incorreta de pacotes NuGet ou de problemas de codificação. Certifique-se de que todos os pacotes necessários, incluindo System.Text.Encoding.CodePages, estejam instalados e registrados corretamente para resolver esses problemas.
Quais recursos avançados estão disponíveis no IronPDF para desenvolvedores C#?
O IronPDF oferece recursos avançados como conversão de HTML para PDF, assinaturas digitais, criptografia e a capacidade de lidar com CSS e JavaScript. Ele também fornece integração com aplicativos .NET e suporte profissional, tornando-se uma ferramenta poderosa para desenvolvedores.
Como posso personalizar o layout do texto em um PDF usando o PDFsharp?
Com o PDFsharp, você pode personalizar o layout do texto em um PDF utilizando o método DrawString da classe XGraphics . Isso permite definir propriedades como fonte, cor e alinhamento do texto dentro de limites especificados.
O PDFsharp é adequado para criar documentos PDF complexos em C#?
O PDFsharp consegue criar documentos PDF complexos, mas exige um sólido conhecimento de codificação e de complementos do Microsoft Office. O IronPDF pode ser uma opção melhor para tarefas complexas devido à sua API mais intuitiva e aos recursos adicionais.



