IronPDF vs XFINIUM.PDF: Comparação de bibliotecas HTML para PDF para .NET
O IronPDF se destaca na conversão de HTML para PDF com suporte completo a CSS e JavaScript , utilizando o mecanismo Chromium. Em contrapartida, o XFINIUM.PDF é especializado em manipulação de PDFs em baixo nível, sem renderização nativa de HTML, tornando o IronPDF uma opção mais adequada para a geração de PDFs modernos em aplicações .NET baseadas na web.
A tecnologia moderna oferece soluções mais inteligentes para desenvolvedores, com a automação impulsionando os processos de desenvolvimento de software. Trabalhar com arquivos PDF em C# sempre foi um desafio para os desenvolvedores. Diversos fatores devem ser considerados ao criar conteúdo para arquivos PDF , e ainda mais ao converter conteúdo de diferentes formatos para PDF . Esses desafios agora são enfrentados por meio de bibliotecas projetadas para auxiliar na leitura, escrita, criação e conversão de PDFs a partir de vários formatos.
Este artigo compara duas bibliotecas PDF populares para desenvolvedores .NET e .NET Core :
- A biblioteca IronPDF
- A biblioteca XFINIUM.PDF
Tanto o IronPDF quanto o XFINIUM.PDF fornecem métodos para criar , manipular e imprimir PDFs em .NET e .NET Core. Você pode tomar uma decisão informada analisando a seguinte comparação entre as duas bibliotecas e seus respectivos recursos para conversão e manipulação de PDFs .
Primeiro, vamos explorar o que as duas bibliotecas oferecem e, em seguida, proceder à comparação.
Quais são as funcionalidades da biblioteca XFINIUM.PDF?
A biblioteca XFINIUM.PDF é uma ferramenta multiplataforma para desenvolvimento de PDFs, adequada tanto para desenvolvedores iniciantes quanto para desenvolvedores avançados. Ele permite criar relatórios , preencher formulários em PDF , construir portfólios em PDF, ocultar dados confidenciais de relatórios em PDF ou converter relatórios em PDF em imagens TIFF de várias páginas .
O XFINIUM.PDF está disponível em duas edições: a Generator Edition, que inclui a produção e edição de PDFs, e a Viewer Edition, que adiciona a renderização e visualização de PDFs .
XFINIUM.PDF foi escrito inteiramente em C# como código totalmente gerenciado. É licenciado por desenvolvedor com distribuição livre de royalties, permitindo que você distribua seu programa sem custos adicionais.
Qual a diferença entre as edições Generator e Viewer?
A Generator Edition é um subconjunto da Viewer Edition. Oferece funcionalidade de PDF para criar e editar PDFs, enquanto a Viewer Edition adiciona recursos de renderização de PDF . A versão Viewer permite converter páginas PDF em imagens RAW, BMP, GIF, JPG, PNG e TIFF .
XFINIUM.PDF Especificação
As principais características incluem:
Segurança
- Senhas de usuário e proprietário
- Direitos de acesso a documentos
- Criptografia RC4 de 40 bits e 128 bits
- Criptografia AES de 128 bits e 256 bits
- Redação de conteúdo
- Desativar copiar/colar texto
Assinaturas digitais
- Aprovação e certificação com certificados X509
- Assinaturas CMS e PAdES com SHA256/384/512
- Carimbos de data/hora de assinatura
- Informações de OCSP e CRL em assinaturas
- Depósito de segurança de documentos
- Carimbos de data/hora do documento
- Assinaturas digitais habilitadas para LTV
- Decodificar assinaturas em objetos ASN.1
- Extrair certificados de assinaturas
- Salvar cópias em PDF assinadas
Código de barras
- Motor de código de barras vetorial integrado
- Códigos de barras unidimensionais:
- Codabar, Código 11, Código 25, Código 39/93/128
- Farmacêutico: Código 32, Pharmacode, PZN
- Códigos de barras bidimensionais:
DataMatrix, QR, PDF417, Micro PDF417
Para funcionalidades avançadas de código de barras, considere a documentação do IronBarcode, que oferece recursos completos de geração e leitura de códigos de barras.
Extração de Conteúdo
- Extrair texto com informações de posição
- Extrair texto como palavras com posições
- Extrair de regiões definidas pelo usuário
- Extrair imagens com metadados
API COS de baixo nível
- Adicionar, editar e remover objetos COS
- Tipos suportados: strings, números, nomes, booleanos, nulos, arrays, dicionários, fluxos
Renderização de PDF (somente na versão para visualizador)
- Renderizar páginas em imagens : RAW, BMP, GIF, JPG, PNG, TIFF
- Layouts ARGB, RGBA, BGRA, RGB, BGR e em tons de cinza
- Converter PDF para TIFF com várias páginas usando CCITT G4
Quais são as principais funcionalidades do IronPDF?
A biblioteca IronPDF .NET para PDF simplifica o desenvolvimento de PDFs para programadores C#. Com esta ferramenta, você pode facilmente construir uma biblioteca PDF básica for .NET.
O IronPDF converte páginas HTML em arquivos PDF usando o mecanismo .NET Chromium . Você não precisa de APIs complicadas para posicionar ou formatar PDFs com HTML para PDF . São suportados documentos web padrão, incluindo HTML, ASPX, JS, CSS e imagens .
Você pode usar HTML5, CSS, JavaScript e imagens para desenvolver uma biblioteca PDF for .NET . Os arquivos PDF podem ser editados, carimbados e aprimorados com cabeçalhos e rodapés . A biblioteca consegue ler textos em PDF e extrair gráficos de forma eficiente.
Baixe o IronPDF gratuitamente e comece a usá-lo em seus projetos .NET hoje mesmo.
Principais funcionalidades da biblioteca IronPDF C
As principais características incluem:
Gerar PDFs (HTML para PDF)
- Suporte para HTML4/5, CSS e JavaScript
- Carregar URLs com credenciais de rede , agentes de usuário , proxies , cookies e cabeçalhos HTTP
Editar documentos PDF existentes
- Ler e preencher os campos do formulário
- Extrair gráficos e texto
- Atualizar páginas com novo conteúdo HTML
- Adicionar cabeçalhos/rodapés lógicos ou HTML
Manipular documentos PDF
- Carregar e analisar PDFs existentes
- Mesclar e dividir documentos
- Adicionar cabeçalhos , anotações , marcadores , marcas d'água , texto , imagens
Converter vários formatos de arquivo
- ASPX WebForms — Converta com três linhas de código
- Converter arquivos HTML para PDF
- URLs base personalizadas para acesso a recursos
- Janela de visualização virtual para design responsivo
- Suporte para as principais codificações de arquivo ( UTF-8 por padrão)
Imprimir e salvar
- Salvar/carregar de arquivos, dados binários, MemoryStreams
- Tipos de mídia CSS para impressão
- Imprimir PDFs sem o Adobe Acrobat
- Exportar logs da API para depuração
O IronPDF é compatível com todos os principais sistemas operacionais e frameworks:
Como faço para instalar a biblioteca IronPDF em C#?
Você pode baixar e instalar o IronPDF de quatro maneiras:
- Usando o Visual Studio
- Prompt de Comando do Desenvolvedor
- Baixe o pacote NuGet diretamente
- Baixe a biblioteca IronPDF .DLL.
Usando o Visual Studio
O Visual Studio fornece o Gerenciador de Pacotes NuGet para instalar pacotes em seus projetos. Acesse-o através do Menu Projeto ou clicando com o botão direito do mouse no seu projeto no Explorador de Soluções.
**Figura 1.** Acessando o Gerenciador de Pacotes NuGet usando o Menu Projeto no Visual Studio.
**Figura 2.** Acessando o Gerenciador de Pacotes NuGet usando o menu de contexto no Visual Studio.
Após selecionar o pacote, procure - o e instale-o.
**Figura 3.** Instalando a biblioteca IronPDF usando o Gerenciador de Pacotes NuGet no Visual Studio.
Usando o Prompt de Comando do Desenvolvedor
Instale o pacote NuGet IronPDF através do Prompt de Comando do Desenvolvedor:
- Abra o Prompt de Comando do Desenvolvedor
-
Digite o seguinte comando:
nuget install IronPdfnuget install IronPdfSHELL - Pressione Enter O pacote é baixado e instalado.
- Recarregue seu projeto do Visual Studio
Baixe o pacote NuGet diretamente
Baixe e instale o IronPDF diretamente do NuGet:
Acesse a página do IronPDF no NuGet.
- Selecione o pacote de download
- Clique duas vezes no pacote baixado.
- O pacote é instalado
- Recarregue seu projeto do Visual Studio
Instale o IronPDF baixando a biblioteca.
Baixe o arquivo .DLL do IronPDF diretamente da página de downloads do IronPDF .
**Figura 4.** Baixando a DLL da biblioteca IronPDF do site da IronPDF.
Faça referência à biblioteca em seu projeto:
- Clique com o botão direito do mouse na solução no Explorador de Soluções.
- Selecionar referências
- Procure a biblioteca IronPDF.dll
- Clique em OK
O IronPDF já está pronto para uso. Vamos instalar o XFINIUM.PDF em seguida.
Como faço para instalar o XFINIUM.PDF?
No .NET Core, instale o Xfinium PDF como um complemento ou ferramenta integrada:
# Install Xfinium.Pdf.NetCore as a Cake Addin
#addin nuget:?package=Xfinium.Pdf.NetCore&version=10.2.0
# Install Xfinium.Pdf.NetCore as a Cake Addin
#addin nuget:?package=Xfinium.Pdf.NetCore&version=10.2.0
# Install Xfinium.Pdf.NetCore as a Cake Tool
#tool nuget:?package=Xfinium.Pdf.NetCore&version=10.2.0
# Install Xfinium.Pdf.NetCore as a Cake Tool
#tool nuget:?package=Xfinium.Pdf.NetCore&version=10.2.0
Agora vamos comparar o IronPDF e o XFINIUM.PDF.
Como criar um documento PDF simples no .NET Core?
Os desenvolvedores de software precisam saber como criar arquivos PDF dinamicamente usando C#. Você pode precisar criar PDFs para gerar relatórios a partir de dados inseridos pelo usuário , salvar o texto do usuário como PDF, extrair informações HTML e convertê-las para PDF , entre outras finalidades.
Ambas as bibliotecas podem converter páginas web HTML em PDF . Vamos examinar a abordagem de cada biblioteca.
Usando o IronPDF
O IronPDF oferece vários métodos para criar arquivos PDF.
URL existente para PDF
O IronPDF facilita a conversão de HTML em documentos PDF a partir de URLs existentes . JavaScript , imagens , formulários e CSS recebem suporte completo.
A implementação lida com a renderização de URLs automaticamente:
// Create an instance of the ChromePdfRenderer
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
// Configure rendering options for better performance
Renderer.RenderingOptions.WaitFor.RenderDelay = 500; // Wait for JavaScript to load
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
// Render a URL to PDF
using var Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_134___");
// Save the PDF with metadata
Pdf.MetaData.Author = "IronPDF";
Pdf.MetaData.Title = "Website to PDF Conversion";
Pdf.SaveAs("url.pdf");
// Create an instance of the ChromePdfRenderer
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
// Configure rendering options for better performance
Renderer.RenderingOptions.WaitFor.RenderDelay = 500; // Wait for JavaScript to load
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
// Render a URL to PDF
using var Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_134___");
// Save the PDF with metadata
Pdf.MetaData.Author = "IronPDF";
Pdf.MetaData.Title = "Website to PDF Conversion";
Pdf.SaveAs("url.pdf");
' Create an instance of the ChromePdfRenderer
Dim Renderer As New IronPdf.ChromePdfRenderer()
' Configure rendering options for better performance
Renderer.RenderingOptions.WaitFor.RenderDelay = 500 ' Wait for JavaScript to load
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
' Render a URL to PDF
Using Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_134___")
' Save the PDF with metadata
Pdf.MetaData.Author = "IronPDF"
Pdf.MetaData.Title = "Website to PDF Conversion"
Pdf.SaveAs("url.pdf")
End Using
Texto de entrada HTML para PDF
Considere o seguinte exemplo de código para renderizar uma página PDF a partir de uma string HTML . Você pode usar apenas HTML ou combiná-lo com CSS, imagens e JavaScript:
// Create an instance of the ChromePdfRenderer
var Renderer = new IronPdf.ChromePdfRenderer();
// Configure rendering options
Renderer.RenderingOptions.MarginTop = 50; // millimeters
Renderer.RenderingOptions.MarginBottom = 50;
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
// Render a simple HTML string to PDF
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
// Add document properties
PDF.MetaData.Author = "Development Team";
PDF.MetaData.Keywords = "HTML, PDF, C#";
PDF.MetaData.ModifiedDate = DateTime.Now;
// Save the PDF
PDF.SaveAs("pixel-perfect.pdf");
// Load external HTML assets: images, CSS, and javascript
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
// Apply security settings
AdvancedPDF.Password = "pass123";
AdvancedPDF.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
// Save the advanced PDF with external assets
AdvancedPDF.SaveAs("html-with-assets.pdf");
// Create an instance of the ChromePdfRenderer
var Renderer = new IronPdf.ChromePdfRenderer();
// Configure rendering options
Renderer.RenderingOptions.MarginTop = 50; // millimeters
Renderer.RenderingOptions.MarginBottom = 50;
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
// Render a simple HTML string to PDF
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
// Add document properties
PDF.MetaData.Author = "Development Team";
PDF.MetaData.Keywords = "HTML, PDF, C#";
PDF.MetaData.ModifiedDate = DateTime.Now;
// Save the PDF
PDF.SaveAs("pixel-perfect.pdf");
// Load external HTML assets: images, CSS, and javascript
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
// Apply security settings
AdvancedPDF.Password = "pass123";
AdvancedPDF.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
// Save the advanced PDF with external assets
AdvancedPDF.SaveAs("html-with-assets.pdf");
' Create an instance of the ChromePdfRenderer
Dim Renderer As New IronPdf.ChromePdfRenderer()
' Configure rendering options
Renderer.RenderingOptions.MarginTop = 50 ' millimeters
Renderer.RenderingOptions.MarginBottom = 50
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
' Render a simple HTML string to PDF
Using PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>")
' Add document properties
PDF.MetaData.Author = "Development Team"
PDF.MetaData.Keywords = "HTML, PDF, C#"
PDF.MetaData.ModifiedDate = DateTime.Now
' Save the PDF
PDF.SaveAs("pixel-perfect.pdf")
End Using
' Load external HTML assets: images, CSS, and javascript
' An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
Using AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
' Apply security settings
AdvancedPDF.Password = "pass123"
AdvancedPDF.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights
' Save the advanced PDF with external assets
AdvancedPDF.SaveAs("html-with-assets.pdf")
End Using
Para técnicas avançadas de conversão de HTML para PDF, consulte o tutorial de HTML para PDF .
Usando XFINIUM.PDF
Criar um documento PDF em branco com o XFINIUM.PDF requer três etapas: criar o documento, criar uma página e salvar:
// Create a new PDF document
PdfFixedDocument document = new PdfFixedDocument();
// Add a page to the document
PdfPage page = document.Pages.Add();
// Save the document as a PDF file
document.Save("empty.pdf");
// Create a new PDF document
PdfFixedDocument document = new PdfFixedDocument();
// Add a page to the document
PdfPage page = document.Pages.Add();
// Save the document as a PDF file
document.Save("empty.pdf");
' Create a new PDF document
Dim document As New PdfFixedDocument()
' Add a page to the document
Dim page As PdfPage = document.Pages.Add()
' Save the document as a PDF file
document.Save("empty.pdf")
Adicionar conteúdo de texto requer três linhas adicionais: criar uma fonte, criar um pincel para a cor e desenhar o texto:
// Create a new PDF document
PdfFixedDocument document = new PdfFixedDocument();
PdfPage page = document.Pages.Add();
// Create a standard font with Helvetica face and 24 point size
PdfStandardFont helvetica = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);
// Create a solid RGB red brush.
PdfBrush brush = new PdfBrush(PdfRgbColor.Red);
// Draw the text on the page.
page.Graphics.DrawString("Hello World", helvetica, brush, 100, 100);
// Save the document as a PDF file
document.Save("helloworld.pdf");
// Create a new PDF document
PdfFixedDocument document = new PdfFixedDocument();
PdfPage page = document.Pages.Add();
// Create a standard font with Helvetica face and 24 point size
PdfStandardFont helvetica = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);
// Create a solid RGB red brush.
PdfBrush brush = new PdfBrush(PdfRgbColor.Red);
// Draw the text on the page.
page.Graphics.DrawString("Hello World", helvetica, brush, 100, 100);
// Save the document as a PDF file
document.Save("helloworld.pdf");
' Create a new PDF document
Dim document As New PdfFixedDocument()
Dim page As PdfPage = document.Pages.Add()
' Create a standard font with Helvetica face and 24 point size
Dim helvetica As New PdfStandardFont(PdfStandardFontFace.Helvetica, 24)
' Create a solid RGB red brush.
Dim brush As New PdfBrush(PdfRgbColor.Red)
' Draw the text on the page.
page.Graphics.DrawString("Hello World", helvetica, brush, 100, 100)
' Save the document as a PDF file
document.Save("helloworld.pdf")
O modelo de objeto se assemelha bastante ao padrão PDF. Essa abordagem oferece benefícios claros para a construção de abstrações complexas, como documentos de fluxo . ## Como criar arquivos PDF preenchíveis
Usando XFINIUM.PDF
O XFINIUM.PDF permite criar novos formulários em PDF e preencher formulários em PDF já existentes .
Cada tipo de campo de formulário PDF possui uma classe correspondente:
PdfTextBoxField– campos de caixa de textoPdfCheckBoxField– caixas de seleçãoPdfRadioButtonField– conjuntos de botões de opçãoPdfComboboxField– caixas de combinaçãoPdfListboxField– caixas de listagemPdfPushbuttonField– botões de pressão- Campo de assinatura PDF – campos de assinatura
Para criar um campo de formulário, especifique o nome do campo e a localização na página. Após criar o objeto de campo, adicione-o à página e defina seus atributos:
// Create a text box field named "firstname"
PdfTextBoxField firstNameTextBox = new PdfTextBoxField("firstname");
// Add the field to a PDF page
pdfpage.Fields.Add(firstNameTextBox);
// Set the position of the field on the PDF page
firstNameTextBox.Widgets[0].VisualRectangle = new PdfVisualRectangle(150, 45, 200, 20);
// Create a text box field named "firstname"
PdfTextBoxField firstNameTextBox = new PdfTextBoxField("firstname");
// Add the field to a PDF page
pdfpage.Fields.Add(firstNameTextBox);
// Set the position of the field on the PDF page
firstNameTextBox.Widgets[0].VisualRectangle = new PdfVisualRectangle(150, 45, 200, 20);
' Create a text box field named "firstname"
Dim firstNameTextBox As New PdfTextBoxField("firstname")
' Add the field to a PDF page
pdfpage.Fields.Add(firstNameTextBox)
' Set the position of the field on the PDF page
firstNameTextBox.Widgets(0).VisualRectangle = New PdfVisualRectangle(150, 45, 200, 20)
Para preencher formulários PDF existentes, carregue-os em um objeto PdfFixedDocument. A coleção de campos do documento é preenchida automaticamente. Você pode encontrar campos por índice ou nome e preenchê-los definindo propriedades de valor:
// Load an existing PDF document with forms
PdfFixedDocument document = new PdfFixedDocument("form.pdf");
// Fill form fields with values
(document.Form.Fields["firstname"] as PdfTextBoxField).Text = "John";
(document.Form.Fields["lastname"] as PdfTextBoxField).Value = "Doe";
(document.Form.Fields["sex"].Widgets[0] as PdfRadioButtonWidget).Checked = true;
(document.Form.Fields["firstcar"] as PdfComboBoxField).SelectedIndex = 0;
(document.Form.Fields["secondcar"] as PdfListBoxField).SelectedIndex = 1;
(document.Form.Fields["agree"] as PdfCheckBoxField).Checked = true;
// Save the filled form as a new PDF file
document.Save("form_filled.pdf");
// Load an existing PDF document with forms
PdfFixedDocument document = new PdfFixedDocument("form.pdf");
// Fill form fields with values
(document.Form.Fields["firstname"] as PdfTextBoxField).Text = "John";
(document.Form.Fields["lastname"] as PdfTextBoxField).Value = "Doe";
(document.Form.Fields["sex"].Widgets[0] as PdfRadioButtonWidget).Checked = true;
(document.Form.Fields["firstcar"] as PdfComboBoxField).SelectedIndex = 0;
(document.Form.Fields["secondcar"] as PdfListBoxField).SelectedIndex = 1;
(document.Form.Fields["agree"] as PdfCheckBoxField).Checked = true;
// Save the filled form as a new PDF file
document.Save("form_filled.pdf");
' Load an existing PDF document with forms
Dim document As New PdfFixedDocument("form.pdf")
' Fill form fields with values
TryCast(document.Form.Fields("firstname"), PdfTextBoxField).Text = "John"
TryCast(document.Form.Fields("lastname"), PdfTextBoxField).Value = "Doe"
TryCast(document.Form.Fields("sex").Widgets(0), PdfRadioButtonWidget).Checked = True
TryCast(document.Form.Fields("firstcar"), PdfComboBoxField).SelectedIndex = 0
TryCast(document.Form.Fields("secondcar"), PdfListBoxField).SelectedIndex = 1
TryCast(document.Form.Fields("agree"), PdfCheckBoxField).Checked = True
' Save the filled form as a new PDF file
document.Save("form_filled.pdf")
Usando o IronPDF
Veja como você pode criar PDFs preenchíveis usando o IronPDF:
// PM> Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
// Step 1. Creating a PDF with editable forms from HTML using form and input tags
var FormHtml = @"
<html>
<head>
<style>
body { font-family: Arial, sans-serif; margin: 40px; }
h2 { color: #333; }
form { background: #f4f4f4; padding: 20px; border-radius: 8px; }
input[type='text'] {
width: 100%;
padding: 8px;
margin: 10px 0;
border: 1px solid #ddd;
border-radius: 4px;
}
input[type='checkbox'] { margin-right: 10px; }
select { width: 100%; padding: 8px; margin: 10px 0; }
</style>
</head>
<body>
<h2>Editable PDF Form</h2>
<form>
First name:<br> <input type='text' name='firstname' value=''> <br>
Last name:<br> <input type='text' name='lastname' value=''>
<br><br>
Email:<br> <input type='text' name='email' value=''>
<br><br>
Subscribe to newsletter: <input type='checkbox' name='newsletter' value='yes'>
<br><br>
Country:
<select name='country'>
<option value='usa'>United States</option>
<option value='uk'>United Kingdom</option>
<option value='canada'>Canada</option>
</select>
</form>
</body>
</html>";
// Create a PDF renderer with form creation enabled
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
Renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
Renderer.RenderingOptions.MarginTop = 20;
Renderer.RenderingOptions.MarginBottom = 20;
// Render the HTML as a PDF and save it
var pdfDocument = Renderer.RenderHtmlAsPdf(FormHtml);
pdfDocument.SaveAs("BasicForm.pdf");
// Step 2. Reading and Writing PDF form values.
var FormDocument = PdfDocument.FromFile("BasicForm.pdf");
// Get form field collection
var form = FormDocument.Form;
// Set and Read the value of the "firstname" field
var FirstNameField = form.FindFormField("firstname");
FirstNameField.Value = "Minnie";
Console.WriteLine("FirstNameField value: {0}", FirstNameField.Value);
// Set and Read the value of the "lastname" field
var LastNameField = form.FindFormField("lastname");
LastNameField.Value = "Mouse";
Console.WriteLine("LastNameField value: {0}", LastNameField.Value);
// Set email field
var EmailField = form.FindFormField("email");
EmailField.Value = "minnie.mouse@example.com";
// Set checkbox
var NewsletterField = form.FindFormField("newsletter");
NewsletterField.Value = "yes";
// Set dropdown selection
var CountryField = form.FindFormField("country");
CountryField.Value = "usa";
// Save the form with filled values
FormDocument.SaveAs("FilledForm.pdf");
// Step 3. Flattening the form (making it non-editable)
FormDocument.Form.Flatten();
FormDocument.SaveAs("FlattenedForm.pdf");
// PM> Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
// Step 1. Creating a PDF with editable forms from HTML using form and input tags
var FormHtml = @"
<html>
<head>
<style>
body { font-family: Arial, sans-serif; margin: 40px; }
h2 { color: #333; }
form { background: #f4f4f4; padding: 20px; border-radius: 8px; }
input[type='text'] {
width: 100%;
padding: 8px;
margin: 10px 0;
border: 1px solid #ddd;
border-radius: 4px;
}
input[type='checkbox'] { margin-right: 10px; }
select { width: 100%; padding: 8px; margin: 10px 0; }
</style>
</head>
<body>
<h2>Editable PDF Form</h2>
<form>
First name:<br> <input type='text' name='firstname' value=''> <br>
Last name:<br> <input type='text' name='lastname' value=''>
<br><br>
Email:<br> <input type='text' name='email' value=''>
<br><br>
Subscribe to newsletter: <input type='checkbox' name='newsletter' value='yes'>
<br><br>
Country:
<select name='country'>
<option value='usa'>United States</option>
<option value='uk'>United Kingdom</option>
<option value='canada'>Canada</option>
</select>
</form>
</body>
</html>";
// Create a PDF renderer with form creation enabled
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
Renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
Renderer.RenderingOptions.MarginTop = 20;
Renderer.RenderingOptions.MarginBottom = 20;
// Render the HTML as a PDF and save it
var pdfDocument = Renderer.RenderHtmlAsPdf(FormHtml);
pdfDocument.SaveAs("BasicForm.pdf");
// Step 2. Reading and Writing PDF form values.
var FormDocument = PdfDocument.FromFile("BasicForm.pdf");
// Get form field collection
var form = FormDocument.Form;
// Set and Read the value of the "firstname" field
var FirstNameField = form.FindFormField("firstname");
FirstNameField.Value = "Minnie";
Console.WriteLine("FirstNameField value: {0}", FirstNameField.Value);
// Set and Read the value of the "lastname" field
var LastNameField = form.FindFormField("lastname");
LastNameField.Value = "Mouse";
Console.WriteLine("LastNameField value: {0}", LastNameField.Value);
// Set email field
var EmailField = form.FindFormField("email");
EmailField.Value = "minnie.mouse@example.com";
// Set checkbox
var NewsletterField = form.FindFormField("newsletter");
NewsletterField.Value = "yes";
// Set dropdown selection
var CountryField = form.FindFormField("country");
CountryField.Value = "usa";
// Save the form with filled values
FormDocument.SaveAs("FilledForm.pdf");
// Step 3. Flattening the form (making it non-editable)
FormDocument.Form.Flatten();
FormDocument.SaveAs("FlattenedForm.pdf");
' PM> Install-Package IronPdf
Imports IronPdf
Imports IronPdf.Rendering
' Step 1. Creating a PDF with editable forms from HTML using form and input tags
Dim FormHtml As String = "
<html>
<head>
<style>
body { font-family: Arial, sans-serif; margin: 40px; }
h2 { color: #333; }
form { background: #f4f4f4; padding: 20px; border-radius: 8px; }
input[type='text'] {
width: 100%;
padding: 8px;
margin: 10px 0;
border: 1px solid #ddd;
border-radius: 4px;
}
input[type='checkbox'] { margin-right: 10px; }
select { width: 100%; padding: 8px; margin: 10px 0; }
</style>
</head>
<body>
<h2>Editable PDF Form</h2>
<form>
First name:<br> <input type='text' name='firstname' value=''> <br>
Last name:<br> <input type='text' name='lastname' value=''>
<br><br>
Email:<br> <input type='text' name='email' value=''>
<br><br>
Subscribe to newsletter: <input type='checkbox' name='newsletter' value='yes'>
<br><br>
Country:
<select name='country'>
<option value='usa'>United States</option>
<option value='uk'>United Kingdom</option>
<option value='canada'>Canada</option>
</select>
</form>
</body>
</html>"
' Create a PDF renderer with form creation enabled
Dim Renderer As New IronPdf.ChromePdfRenderer()
Renderer.RenderingOptions.CreatePdfFormsFromHtml = True
Renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
Renderer.RenderingOptions.MarginTop = 20
Renderer.RenderingOptions.MarginBottom = 20
' Render the HTML as a PDF and save it
Dim pdfDocument = Renderer.RenderHtmlAsPdf(FormHtml)
pdfDocument.SaveAs("BasicForm.pdf")
' Step 2. Reading and Writing PDF form values.
Dim FormDocument = PdfDocument.FromFile("BasicForm.pdf")
' Get form field collection
Dim form = FormDocument.Form
' Set and Read the value of the "firstname" field
Dim FirstNameField = form.FindFormField("firstname")
FirstNameField.Value = "Minnie"
Console.WriteLine("FirstNameField value: {0}", FirstNameField.Value)
' Set and Read the value of the "lastname" field
Dim LastNameField = form.FindFormField("lastname")
LastNameField.Value = "Mouse"
Console.WriteLine("LastNameField value: {0}", LastNameField.Value)
' Set email field
Dim EmailField = form.FindFormField("email")
EmailField.Value = "minnie.mouse@example.com"
' Set checkbox
Dim NewsletterField = form.FindFormField("newsletter")
NewsletterField.Value = "yes"
' Set dropdown selection
Dim CountryField = form.FindFormField("country")
CountryField.Value = "usa"
' Save the form with filled values
FormDocument.SaveAs("FilledForm.pdf")
' Step 3. Flattening the form (making it non-editable)
FormDocument.Form.Flatten()
FormDocument.SaveAs("FlattenedForm.pdf")
Você começa criando um formulário com tags de formatação HTML. A biblioteca lida com a complexidade ao salvar como PDF. A leitura e a escrita de valores de formulário são feitas usando a função FindFormField . Seu aplicativo pode usar imediatamente esse recurso para preencher formulários programaticamente.
Para o processamento avançado de formulários, incluindo assinaturas digitais , consulte o tutorial Criar Formulários PDF .
Como assinar digitalmente arquivos PDF
O trabalho remoto exige um processamento de documentos eficiente. Preencher e assinar formulários , enviar arquivos e processar documentos são atividades comerciais diárias. A assinatura de documentos PDF , portfólios e formulários substitui os documentos em papel. As assinaturas digitais permitem que as empresas assinem contratos e compartilhem formulários em PDF online.
Usando XFINIUM.PDF
Um campo de assinatura aplica assinaturas digitais em arquivos PDF (PdfSignatureField classe). Embora o campo de assinatura apareça em apenas uma página, a assinatura digital assina o documento inteiro.
O processo de assinatura utiliza um objeto PdfDigitalSignature para definir o atributo de assinatura. A assinatura é gerada ao salvar o documento com base no layout binário do arquivo PDF.
PdfDigitalSignature fornece a base para todas as assinaturas XFINIUM:
PdfCmsDigitalSignature– Assinatura padrão do CMS (herda dePdfDigitalSignature)PdfPadesDigitalSignature– Assinatura padrão PADES (herda dePdfCmsDigitalSignature)PdfInteractiveCmsDigitalSignature– Assinatura CMS usando cartão inteligente de hardwarePdfInteractivePadesDigitalSignature– PADES com suporte para smartcard de hardwarePdfDocumentTimeStamp– Carimbo de data/hora em nível de documento (herda dePdfDigitalSignature)
Usando o IronPDF
Os desenvolvedores frequentemente perguntam sobre como adicionar assinaturas a PDFs programaticamente com IronPDF e C#. Isso pode significar:
- Adicionando imagens de assinatura gráfica a partir de arquivos
- Assinatura criptográfica para evitar adulteração
- Adição de ícones de assinatura manuscrita com assinatura criptográfica
A primeira abordagem envolve inserir uma assinatura PNG em páginas PDF já existentes. Utilize-o para assinaturas ou carimbos da empresa:
// Open an existing PDF document or create a new one
var Pdf = PdfDocument.FromFile(@"C:\Path\To\ASPX to PDF.pdf");
// Define an HTML stamp with a signature image
var SignatureStamp = new HtmlStamp()
{
Html = "<img src='signature.png' />",
Width = 150,
Height = 50,
Bottom = 300,
Left = 85,
ZIndex = HtmlStamp.StampLayer.OnTopOfExistingPDFContent
};
// Advanced stamp with styling
var StyledSignatureStamp = new HtmlStamp()
{
Html = @"<div style='border: 2px solid #000; padding: 10px; background: rgba(255,255,255,0.9);'>
<img src='signature.png' style='width: 120px;' />
<p style='margin: 5px 0 0 0; font-size: 10px;'>Digitally Signed</p>
<p style='margin: 0; font-size: 8px;'>{date}</p>
</div>",
Width = 150,
Height = 100,
Bottom = 50,
Right = 50,
ZIndex = HtmlStamp.StampLayer.OnTopOfExistingPDFContent
};
// Stamp the signature on the first page of the PDF
Pdf.StampHTML(SignatureStamp, 1);
// Or apply to all pages
Pdf.StampHTML(StyledSignatureStamp);
// Save the stamped PDF
Pdf.SaveAs(@"C:\Path\To\Stamped_PDF.pdf");
// Open an existing PDF document or create a new one
var Pdf = PdfDocument.FromFile(@"C:\Path\To\ASPX to PDF.pdf");
// Define an HTML stamp with a signature image
var SignatureStamp = new HtmlStamp()
{
Html = "<img src='signature.png' />",
Width = 150,
Height = 50,
Bottom = 300,
Left = 85,
ZIndex = HtmlStamp.StampLayer.OnTopOfExistingPDFContent
};
// Advanced stamp with styling
var StyledSignatureStamp = new HtmlStamp()
{
Html = @"<div style='border: 2px solid #000; padding: 10px; background: rgba(255,255,255,0.9);'>
<img src='signature.png' style='width: 120px;' />
<p style='margin: 5px 0 0 0; font-size: 10px;'>Digitally Signed</p>
<p style='margin: 0; font-size: 8px;'>{date}</p>
</div>",
Width = 150,
Height = 100,
Bottom = 50,
Right = 50,
ZIndex = HtmlStamp.StampLayer.OnTopOfExistingPDFContent
};
// Stamp the signature on the first page of the PDF
Pdf.StampHTML(SignatureStamp, 1);
// Or apply to all pages
Pdf.StampHTML(StyledSignatureStamp);
// Save the stamped PDF
Pdf.SaveAs(@"C:\Path\To\Stamped_PDF.pdf");
' Open an existing PDF document or create a new one
Dim Pdf = PdfDocument.FromFile("C:\Path\To\ASPX to PDF.pdf")
' Define an HTML stamp with a signature image
Dim SignatureStamp = New HtmlStamp() With {
.Html = "<img src='signature.png' />",
.Width = 150,
.Height = 50,
.Bottom = 300,
.Left = 85,
.ZIndex = HtmlStamp.StampLayer.OnTopOfExistingPDFContent
}
' Advanced stamp with styling
Dim StyledSignatureStamp = New HtmlStamp() With {
.Html = "<div style='border: 2px solid #000; padding: 10px; background: rgba(255,255,255,0.9);'>" & _
"<img src='signature.png' style='width: 120px;' />" & _
"<p style='margin: 5px 0 0 0; font-size: 10px;'>Digitally Signed</p>" & _
"<p style='margin: 0; font-size: 8px;'>{date}</p>" & _
"</div>",
.Width = 150,
.Height = 100,
.Bottom = 50,
.Right = 50,
.ZIndex = HtmlStamp.StampLayer.OnTopOfExistingPDFContent
}
' Stamp the signature on the first page of the PDF
Pdf.StampHTML(SignatureStamp, 1)
' Or apply to all pages
Pdf.StampHTML(StyledSignatureStamp)
' Save the stamped PDF
Pdf.SaveAs("C:\Path\To\Stamped_PDF.pdf")
Assine criptograficamente PDFs usando certificados digitais X509Certificate2 nos formatos .pfx e .p12 com apenas uma linha de código:
// 123456 below represents the signature password
new IronPdf.PdfSignature("CertificateFile.p12", "123456").SignPdfFile("ASPX to PDF.pdf");
// Or with more control
var signature = new IronPdf.PdfSignature("CertificateFile.p12", "123456")
{
SigningContact = "john@example.com",
SigningLocation = "New York, USA",
SigningReason = "Contract Agreement"
};
// Load the PDF
var pdf = PdfDocument.FromFile("contract.pdf");
// Sign and save
pdf.SignPdfWithDigitalSignature(signature);
pdf.SaveAs("signed-contract.pdf");
// 123456 below represents the signature password
new IronPdf.PdfSignature("CertificateFile.p12", "123456").SignPdfFile("ASPX to PDF.pdf");
// Or with more control
var signature = new IronPdf.PdfSignature("CertificateFile.p12", "123456")
{
SigningContact = "john@example.com",
SigningLocation = "New York, USA",
SigningReason = "Contract Agreement"
};
// Load the PDF
var pdf = PdfDocument.FromFile("contract.pdf");
// Sign and save
pdf.SignPdfWithDigitalSignature(signature);
pdf.SaveAs("signed-contract.pdf");
' 123456 below represents the signature password
New IronPdf.PdfSignature("CertificateFile.p12", "123456").SignPdfFile("ASPX to PDF.pdf")
' Or with more control
Dim signature = New IronPdf.PdfSignature("CertificateFile.p12", "123456") With {
.SigningContact = "john@example.com",
.SigningLocation = "New York, USA",
.SigningReason = "Contract Agreement"
}
' Load the PDF
Dim pdf = PdfDocument.FromFile("contract.pdf")
' Sign and save
pdf.SignPdfWithDigitalSignature(signature)
pdf.SaveAs("signed-contract.pdf")
Este exemplo avançado combina a assinatura digital de IDs X509Certificate2 nos formatos .pfx / .p12 com assinaturas manuscritas:
// Create a digital signature using a certificate file
var Signature = new IronPdf.PdfSignature("Iron.pfx", "123456");
// Render a PDF document to be signed
var Renderer = new ChromePdfRenderer();
Renderer.RenderingOptions.MarginBottom = 0;
Renderer.RenderingOptions.MarginTop = 0;
Renderer.RenderingOptions.EnableJavaScript = true;
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
// Create PDF with security features
string html = @"<h1>Contract Agreement</h1>
<p>This document is digitally signed and encrypted.</p>
<p>Agreement Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>";
PdfDocument doc = Renderer.RenderHtmlAsPdf(html);
// Configure optional signing options and a handwritten signature graphic
Signature.SigningContact = "support@ironsoftware.com";
Signature.SigningLocation = "Chicago, USA";
Signature.SigningReason = "To show how to sign a PDF";
// Load a handwritten signature image
Signature.LoadSignatureImageFromFile("handwriting.png");
// Advanced security: Set permissions
doc.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;
doc.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.NoEdit;
doc.SecuritySettings.AllowUserCopyPasteContent = false;
// Sign the PDF document with the digital signature
doc.SignPdfWithDigitalSignature(Signature);
// Add password protection
doc.Password = "userpassword";
doc.OwnerPassword = "ownerpassword";
// Save the signed PDF document
doc.SaveAs("Signed_ASPX_to_PDF.pdf");
// Create a digital signature using a certificate file
var Signature = new IronPdf.PdfSignature("Iron.pfx", "123456");
// Render a PDF document to be signed
var Renderer = new ChromePdfRenderer();
Renderer.RenderingOptions.MarginBottom = 0;
Renderer.RenderingOptions.MarginTop = 0;
Renderer.RenderingOptions.EnableJavaScript = true;
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
// Create PDF with security features
string html = @"<h1>Contract Agreement</h1>
<p>This document is digitally signed and encrypted.</p>
<p>Agreement Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>";
PdfDocument doc = Renderer.RenderHtmlAsPdf(html);
// Configure optional signing options and a handwritten signature graphic
Signature.SigningContact = "support@ironsoftware.com";
Signature.SigningLocation = "Chicago, USA";
Signature.SigningReason = "To show how to sign a PDF";
// Load a handwritten signature image
Signature.LoadSignatureImageFromFile("handwriting.png");
// Advanced security: Set permissions
doc.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;
doc.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.NoEdit;
doc.SecuritySettings.AllowUserCopyPasteContent = false;
// Sign the PDF document with the digital signature
doc.SignPdfWithDigitalSignature(Signature);
// Add password protection
doc.Password = "userpassword";
doc.OwnerPassword = "ownerpassword";
// Save the signed PDF document
doc.SaveAs("Signed_ASPX_to_PDF.pdf");
' Create a digital signature using a certificate file
Dim Signature = New IronPdf.PdfSignature("Iron.pfx", "123456")
' Render a PDF document to be signed
Dim Renderer = New ChromePdfRenderer()
Renderer.RenderingOptions.MarginBottom = 0
Renderer.RenderingOptions.MarginTop = 0
Renderer.RenderingOptions.EnableJavaScript = True
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
' Create PDF with security features
Dim html As String = "<h1>Contract Agreement</h1>
<p>This document is digitally signed and encrypted.</p>
<p>Agreement Date: " & DateTime.Now.ToString("yyyy-MM-dd") & "</p>"
Dim doc As PdfDocument = Renderer.RenderHtmlAsPdf(html)
' Configure optional signing options and a handwritten signature graphic
Signature.SigningContact = "support@ironsoftware.com"
Signature.SigningLocation = "Chicago, USA"
Signature.SigningReason = "To show how to sign a PDF"
' Load a handwritten signature image
Signature.LoadSignatureImageFromFile("handwriting.png")
' Advanced security: Set permissions
doc.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint
doc.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.NoEdit
doc.SecuritySettings.AllowUserCopyPasteContent = False
' Sign the PDF document with the digital signature
doc.SignPdfWithDigitalSignature(Signature)
' Add password protection
doc.Password = "userpassword"
doc.OwnerPassword = "ownerpassword"
' Save the signed PDF document
doc.SaveAs("Signed_ASPX_to_PDF.pdf")
Para implementações de segurança completas, explore a documentação do Ironsecuredoc para recursos avançados de proteção de documentos. ## Como cada biblioteca lida com frameworks CSS modernos e Bootstrap?
Aplicações web modernas frequentemente dependem de frameworks CSS como o Bootstrap para desenvolvimento rápido de interfaces de usuário e design responsivo. As ferramentas de geração de PDF devem preservar com precisão esses layouts de estrutura para garantir a qualidade profissional do documento.
IronPDF: Suporte completo ao framework Bootstrap
O mecanismo de renderização Chromium do IronPDF oferece suporte completo às estruturas CSS modernas:
- Bootstrap 5: Flexbox completo e renderização CSS Grid com todos os componentes responsivos. Bootstrap 4: Sistemas de cartões completos, barras de navegação e classes utilitárias
- Tailwind CSS: Todas as classes utilitárias e variantes responsivas
- Foundation e outros frameworks: O suporte completo ao CSS3 significa que todos os frameworks modernos funcionam corretamente.
- CSS avançado: Flexbox, CSS Grid, propriedades personalizadas, animações e transformações
Validação no mundo real: a página inicial e os modelos do Bootstrap são convertidos com fidelidade precisa em relação ao navegador.
Exemplo de código: Agenda de eventos com cartões Bootstrap
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure rendering for optimal Bootstrap output
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Allow JS to fully load
renderer.RenderingOptions.ViewPortWidth = 1280; // Desktop viewport
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.MarginLeft = 10;
renderer.RenderingOptions.MarginRight = 10;
string bootstrapSchedule = @"
<!DOCTYPE html>
<html>
<head>
<link href='___PROTECTED_URL_135___ rel='stylesheet'>
<style>
@media print {
.pagebreak { page-break-after: always; }
}
</style>
</head>
<body>
<div class='container my-5'>
<h1 class='text-center mb-5'>Tech Conference 2025 - Schedule</h1>
<div class='row g-4'>
<div class='col-md-6'>
<div class='card border-primary'>
<div class='card-header bg-primary text-white d-flex justify-content-between align-items-center'>
<h5 class='mb-0'>Keynote Session</h5>
<span class='badge bg-light text-primary'>9:00 AM</span>
</div>
<div class='card-body'>
<h6 class='card-subtitle mb-2 text-muted'>Main Auditorium</h6>
<p class='card-text'><strong>The Future of AI in Software Development</strong></p>
<p class='card-text'>Join us for an exploration of how artificial intelligence is transforming the software development environment.</p>
<div class='d-flex align-items-center'>
<img src='___PROTECTED_URL_136___ class='rounded-circle me-2' alt='Speaker'>
<div>
<div class='fw-bold'>Dr. Sarah Chen</div>
<small class='text-muted'>AI Research Lead</small>
</div>
</div>
</div>
</div>
</div>
<div class='col-md-6'>
<div class='card border-success'>
<div class='card-header bg-success text-white d-flex justify-content-between align-items-center'>
<h5 class='mb-0'>Workshop</h5>
<span class='badge bg-light text-success'>10:30 AM</span>
</div>
<div class='card-body'>
<h6 class='card-subtitle mb-2 text-muted'>Workshop Room A</h6>
<p class='card-text'><strong>Hands-On: Cloud-Native Architecture</strong></p>
<p class='card-text'>Learn practical techniques for building flexible, cloud-native applications with modern frameworks.</p>
<div class='d-flex align-items-center'>
<img src='___PROTECTED_URL_137___ class='rounded-circle me-2' alt='Speaker'>
<div>
<div class='fw-bold'>Michael Rodriguez</div>
<small class='text-muted'>Cloud Architect</small>
</div>
</div>
</div>
</div>
</div>
<div class='col-md-6'>
<div class='card border-warning'>
<div class='card-header bg-warning text-dark d-flex justify-content-between align-items-center'>
<h5 class='mb-0'>Panel Discussion</h5>
<span class='badge bg-dark'>2:00 PM</span>
</div>
<div class='card-body'>
<h6 class='card-subtitle mb-2 text-muted'>Main Auditorium</h6>
<p class='card-text'><strong>Security in Modern Web Applications</strong></p>
<p class='card-text'>Industry experts discuss current security challenges and best practices for protecting user data.</p>
<small class='text-muted'>Featuring 4 industry experts</small>
</div>
</div>
</div>
<div class='col-md-6'>
<div class='card border-info'>
<div class='card-header bg-info text-white d-flex justify-content-between align-items-center'>
<h5 class='mb-0'>Technical Talk</h5>
<span class='badge bg-light text-info'>3:30 PM</span>
</div>
<div class='card-body'>
<h6 class='card-subtitle mb-2 text-muted'>Room B</h6>
<p class='card-text'><strong>Performance Optimization Strategies</strong></p>
<p class='card-text'>Deep dive into advanced techniques for improve application performance and reducing latency.</p>
<div class='d-flex align-items-center'>
<img src='___PROTECTED_URL_138___ class='rounded-circle me-2' alt='Speaker'>
<div>
<div class='fw-bold'>Alex Kim</div>
<small class='text-muted'>Performance Engineer</small>
</div>
</div>
</div>
</div>
</div>
</div>
<div class='pagebreak'></div>
<h2 class='mt-5'>Additional Sessions</h2>
<div class='table-responsive'>
<table class='table table-striped'>
<thead>
<tr>
<th>Time</th>
<th>Session</th>
<th>Speaker</th>
<th>Location</th>
</tr>
</thead>
<tbody>
<tr>
<td>11:45 AM</td>
<td>Lightning Talks</td>
<td>Various</td>
<td>Room C</td>
</tr>
<tr>
<td>1:00 PM</td>
<td>Networking Lunch</td>
<td>-</td>
<td>Cafeteria</td>
</tr>
</tbody>
</table>
</div>
</div>
</body>
</html>";
// Generate the PDF
var pdf = renderer.RenderHtmlAsPdf(bootstrapSchedule);
// Add metadata
pdf.MetaData.Author = "Tech Conference Team";
pdf.MetaData.Title = "Conference Schedule 2025";
pdf.MetaData.Subject = "Event Schedule";
// Save the PDF
pdf.SaveAs("conference-schedule.pdf");
// Example: Generate responsive invoice with Bootstrap
string bootstrapInvoice = @"
<!DOCTYPE html>
<html>
<head>
<link href='___PROTECTED_URL_139___ rel='stylesheet'>
<link href='___PROTECTED_URL_140___ rel='stylesheet'>
</head>
<body>
<div class='container mt-5'>
<div class='row'>
<div class='col-12'>
<div class='card'>
<div class='card-body'>
<div class='row mb-4'>
<div class='col-sm-6'>
<h2 class='text-primary'><i class='fas fa-file-invoice'></i> INVOICE</h2>
<p class='mb-1'><strong>Invoice #:</strong> INV-2025-001</p>
<p class='mb-1'><strong>Date:</strong> " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
</div>
<div class='col-sm-6 text-sm-end'>
<h4>Your Company Name</h4>
<p class='mb-1'>123 Business St</p>
<p class='mb-1'>City, State 12345</p>
<p>contact@company.com</p>
</div>
</div>
<hr>
<div class='row mb-4'>
<div class='col-sm-6'>
<h5>Bill To:</h5>
<p class='mb-1'><strong>Client Company</strong></p>
<p class='mb-1'>456 Client Ave</p>
<p>City, State 67890</p>
</div>
</div>
<div class='table-responsive'>
<table class='table table-bordered'>
<thead class='table-primary'>
<tr>
<th>Description</th>
<th class='text-center'>Quantity</th>
<th class='text-end'>Price</th>
<th class='text-end'>Total</th>
</tr>
</thead>
<tbody>
<tr>
<td>Web Development Services</td>
<td class='text-center'>40</td>
<td class='text-end'>$150.00</td>
<td class='text-end'>$6,000.00</td>
</tr>
<tr>
<td>UI/UX Design</td>
<td class='text-center'>20</td>
<td class='text-end'>$125.00</td>
<td class='text-end'>$2,500.00</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan='3' class='text-end'><strong>Subtotal:</strong></td>
<td class='text-end'><strong>$8,500.00</strong></td>
</tr>
<tr>
<td colspan='3' class='text-end'>Tax (10%):</td>
<td class='text-end'>$850.00</td>
</tr>
<tr class='table-primary'>
<td colspan='3' class='text-end'><strong>Total Due:</strong></td>
<td class='text-end'><strong>$9,350.00</strong></td>
</tr>
</tfoot>
</table>
</div>
<div class='alert alert-info mt-4'>
<i class='fas fa-info-circle'></i> Payment is due within 30 days. Thank you for your business!
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>";
var invoicePdf = renderer.RenderHtmlAsPdf(bootstrapInvoice);
invoicePdf.SaveAs("bootstrap-invoice.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure rendering for optimal Bootstrap output
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Allow JS to fully load
renderer.RenderingOptions.ViewPortWidth = 1280; // Desktop viewport
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.MarginLeft = 10;
renderer.RenderingOptions.MarginRight = 10;
string bootstrapSchedule = @"
<!DOCTYPE html>
<html>
<head>
<link href='___PROTECTED_URL_135___ rel='stylesheet'>
<style>
@media print {
.pagebreak { page-break-after: always; }
}
</style>
</head>
<body>
<div class='container my-5'>
<h1 class='text-center mb-5'>Tech Conference 2025 - Schedule</h1>
<div class='row g-4'>
<div class='col-md-6'>
<div class='card border-primary'>
<div class='card-header bg-primary text-white d-flex justify-content-between align-items-center'>
<h5 class='mb-0'>Keynote Session</h5>
<span class='badge bg-light text-primary'>9:00 AM</span>
</div>
<div class='card-body'>
<h6 class='card-subtitle mb-2 text-muted'>Main Auditorium</h6>
<p class='card-text'><strong>The Future of AI in Software Development</strong></p>
<p class='card-text'>Join us for an exploration of how artificial intelligence is transforming the software development environment.</p>
<div class='d-flex align-items-center'>
<img src='___PROTECTED_URL_136___ class='rounded-circle me-2' alt='Speaker'>
<div>
<div class='fw-bold'>Dr. Sarah Chen</div>
<small class='text-muted'>AI Research Lead</small>
</div>
</div>
</div>
</div>
</div>
<div class='col-md-6'>
<div class='card border-success'>
<div class='card-header bg-success text-white d-flex justify-content-between align-items-center'>
<h5 class='mb-0'>Workshop</h5>
<span class='badge bg-light text-success'>10:30 AM</span>
</div>
<div class='card-body'>
<h6 class='card-subtitle mb-2 text-muted'>Workshop Room A</h6>
<p class='card-text'><strong>Hands-On: Cloud-Native Architecture</strong></p>
<p class='card-text'>Learn practical techniques for building flexible, cloud-native applications with modern frameworks.</p>
<div class='d-flex align-items-center'>
<img src='___PROTECTED_URL_137___ class='rounded-circle me-2' alt='Speaker'>
<div>
<div class='fw-bold'>Michael Rodriguez</div>
<small class='text-muted'>Cloud Architect</small>
</div>
</div>
</div>
</div>
</div>
<div class='col-md-6'>
<div class='card border-warning'>
<div class='card-header bg-warning text-dark d-flex justify-content-between align-items-center'>
<h5 class='mb-0'>Panel Discussion</h5>
<span class='badge bg-dark'>2:00 PM</span>
</div>
<div class='card-body'>
<h6 class='card-subtitle mb-2 text-muted'>Main Auditorium</h6>
<p class='card-text'><strong>Security in Modern Web Applications</strong></p>
<p class='card-text'>Industry experts discuss current security challenges and best practices for protecting user data.</p>
<small class='text-muted'>Featuring 4 industry experts</small>
</div>
</div>
</div>
<div class='col-md-6'>
<div class='card border-info'>
<div class='card-header bg-info text-white d-flex justify-content-between align-items-center'>
<h5 class='mb-0'>Technical Talk</h5>
<span class='badge bg-light text-info'>3:30 PM</span>
</div>
<div class='card-body'>
<h6 class='card-subtitle mb-2 text-muted'>Room B</h6>
<p class='card-text'><strong>Performance Optimization Strategies</strong></p>
<p class='card-text'>Deep dive into advanced techniques for improve application performance and reducing latency.</p>
<div class='d-flex align-items-center'>
<img src='___PROTECTED_URL_138___ class='rounded-circle me-2' alt='Speaker'>
<div>
<div class='fw-bold'>Alex Kim</div>
<small class='text-muted'>Performance Engineer</small>
</div>
</div>
</div>
</div>
</div>
</div>
<div class='pagebreak'></div>
<h2 class='mt-5'>Additional Sessions</h2>
<div class='table-responsive'>
<table class='table table-striped'>
<thead>
<tr>
<th>Time</th>
<th>Session</th>
<th>Speaker</th>
<th>Location</th>
</tr>
</thead>
<tbody>
<tr>
<td>11:45 AM</td>
<td>Lightning Talks</td>
<td>Various</td>
<td>Room C</td>
</tr>
<tr>
<td>1:00 PM</td>
<td>Networking Lunch</td>
<td>-</td>
<td>Cafeteria</td>
</tr>
</tbody>
</table>
</div>
</div>
</body>
</html>";
// Generate the PDF
var pdf = renderer.RenderHtmlAsPdf(bootstrapSchedule);
// Add metadata
pdf.MetaData.Author = "Tech Conference Team";
pdf.MetaData.Title = "Conference Schedule 2025";
pdf.MetaData.Subject = "Event Schedule";
// Save the PDF
pdf.SaveAs("conference-schedule.pdf");
// Example: Generate responsive invoice with Bootstrap
string bootstrapInvoice = @"
<!DOCTYPE html>
<html>
<head>
<link href='___PROTECTED_URL_139___ rel='stylesheet'>
<link href='___PROTECTED_URL_140___ rel='stylesheet'>
</head>
<body>
<div class='container mt-5'>
<div class='row'>
<div class='col-12'>
<div class='card'>
<div class='card-body'>
<div class='row mb-4'>
<div class='col-sm-6'>
<h2 class='text-primary'><i class='fas fa-file-invoice'></i> INVOICE</h2>
<p class='mb-1'><strong>Invoice #:</strong> INV-2025-001</p>
<p class='mb-1'><strong>Date:</strong> " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
</div>
<div class='col-sm-6 text-sm-end'>
<h4>Your Company Name</h4>
<p class='mb-1'>123 Business St</p>
<p class='mb-1'>City, State 12345</p>
<p>contact@company.com</p>
</div>
</div>
<hr>
<div class='row mb-4'>
<div class='col-sm-6'>
<h5>Bill To:</h5>
<p class='mb-1'><strong>Client Company</strong></p>
<p class='mb-1'>456 Client Ave</p>
<p>City, State 67890</p>
</div>
</div>
<div class='table-responsive'>
<table class='table table-bordered'>
<thead class='table-primary'>
<tr>
<th>Description</th>
<th class='text-center'>Quantity</th>
<th class='text-end'>Price</th>
<th class='text-end'>Total</th>
</tr>
</thead>
<tbody>
<tr>
<td>Web Development Services</td>
<td class='text-center'>40</td>
<td class='text-end'>$150.00</td>
<td class='text-end'>$6,000.00</td>
</tr>
<tr>
<td>UI/UX Design</td>
<td class='text-center'>20</td>
<td class='text-end'>$125.00</td>
<td class='text-end'>$2,500.00</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan='3' class='text-end'><strong>Subtotal:</strong></td>
<td class='text-end'><strong>$8,500.00</strong></td>
</tr>
<tr>
<td colspan='3' class='text-end'>Tax (10%):</td>
<td class='text-end'>$850.00</td>
</tr>
<tr class='table-primary'>
<td colspan='3' class='text-end'><strong>Total Due:</strong></td>
<td class='text-end'><strong>$9,350.00</strong></td>
</tr>
</tfoot>
</table>
</div>
<div class='alert alert-info mt-4'>
<i class='fas fa-info-circle'></i> Payment is due within 30 days. Thank you for your business!
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>";
var invoicePdf = renderer.RenderHtmlAsPdf(bootstrapInvoice);
invoicePdf.SaveAs("bootstrap-invoice.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Configure rendering for optimal Bootstrap output
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.RenderDelay = 500 ' Allow JS to fully load
renderer.RenderingOptions.ViewPortWidth = 1280 ' Desktop viewport
renderer.RenderingOptions.MarginTop = 10
renderer.RenderingOptions.MarginBottom = 10
renderer.RenderingOptions.MarginLeft = 10
renderer.RenderingOptions.MarginRight = 10
Dim bootstrapSchedule As String = "
<!DOCTYPE html>
<html>
<head>
<link href='___PROTECTED_URL_135___ rel='stylesheet'>
<style>
@media print {
.pagebreak { page-break-after: always; }
}
</style>
</head>
<body>
<div class='container my-5'>
<h1 class='text-center mb-5'>Tech Conference 2025 - Schedule</h1>
<div class='row g-4'>
<div class='col-md-6'>
<div class='card border-primary'>
<div class='card-header bg-primary text-white d-flex justify-content-between align-items-center'>
<h5 class='mb-0'>Keynote Session</h5>
<span class='badge bg-light text-primary'>9:00 AM</span>
</div>
<div class='card-body'>
<h6 class='card-subtitle mb-2 text-muted'>Main Auditorium</h6>
<p class='card-text'><strong>The Future of AI in Software Development</strong></p>
<p class='card-text'>Join us for an exploration of how artificial intelligence is transforming the software development environment.</p>
<div class='d-flex align-items-center'>
<img src='___PROTECTED_URL_136___ class='rounded-circle me-2' alt='Speaker'>
<div>
<div class='fw-bold'>Dr. Sarah Chen</div>
<small class='text-muted'>AI Research Lead</small>
</div>
</div>
</div>
</div>
</div>
<div class='col-md-6'>
<div class='card border-success'>
<div class='card-header bg-success text-white d-flex justify-content-between align-items-center'>
<h5 class='mb-0'>Workshop</h5>
<span class='badge bg-light text-success'>10:30 AM</span>
</div>
<div class='card-body'>
<h6 class='card-subtitle mb-2 text-muted'>Workshop Room A</h6>
<p class='card-text'><strong>Hands-On: Cloud-Native Architecture</strong></p>
<p class='card-text'>Learn practical techniques for building flexible, cloud-native applications with modern frameworks.</p>
<div class='d-flex align-items-center'>
<img src='___PROTECTED_URL_137___ class='rounded-circle me-2' alt='Speaker'>
<div>
<div class='fw-bold'>Michael Rodriguez</div>
<small class='text-muted'>Cloud Architect</small>
</div>
</div>
</div>
</div>
</div>
<div class='col-md-6'>
<div class='card border-warning'>
<div class='card-header bg-warning text-dark d-flex justify-content-between align-items-center'>
<h5 class='mb-0'>Panel Discussion</h5>
<span class='badge bg-dark'>2:00 PM</span>
</div>
<div class='card-body'>
<h6 class='card-subtitle mb-2 text-muted'>Main Auditorium</h6>
<p class='card-text'><strong>Security in Modern Web Applications</strong></p>
<p class='card-text'>Industry experts discuss current security challenges and best practices for protecting user data.</p>
<small class='text-muted'>Featuring 4 industry experts</small>
</div>
</div>
</div>
<div class='col-md-6'>
<div class='card border-info'>
<div class='card-header bg-info text-white d-flex justify-content-between align-items-center'>
<h5 class='mb-0'>Technical Talk</h5>
<span class='badge bg-light text-info'>3:30 PM</span>
</div>
<div class='card-body'>
<h6 class='card-subtitle mb-2 text-muted'>Room B</h6>
<p class='card-text'><strong>Performance Optimization Strategies</strong></p>
<p class='card-text'>Deep dive into advanced techniques for improve application performance and reducing latency.</p>
<div class='d-flex align-items-center'>
<img src='___PROTECTED_URL_138___ class='rounded-circle me-2' alt='Speaker'>
<div>
<div class='fw-bold'>Alex Kim</div>
<small class='text-muted'>Performance Engineer</small>
</div>
</div>
</div>
</div>
</div>
</div>
<div class='pagebreak'></div>
<h2 class='mt-5'>Additional Sessions</h2>
<div class='table-responsive'>
<table class='table table-striped'>
<thead>
<tr>
<th>Time</th>
<th>Session</th>
<th>Speaker</th>
<th>Location</th>
</tr>
</thead>
<tbody>
<tr>
<td>11:45 AM</td>
<td>Lightning Talks</td>
<td>Various</td>
<td>Room C</td>
</tr>
<tr>
<td>1:00 PM</td>
<td>Networking Lunch</td>
<td>-</td>
<td>Cafeteria</td>
</tr>
</tbody>
</table>
</div>
</div>
</body>
</html>"
' Generate the PDF
Dim pdf = renderer.RenderHtmlAsPdf(bootstrapSchedule)
' Add metadata
pdf.MetaData.Author = "Tech Conference Team"
pdf.MetaData.Title = "Conference Schedule 2025"
pdf.MetaData.Subject = "Event Schedule"
' Save the PDF
pdf.SaveAs("conference-schedule.pdf")
' Example: Generate responsive invoice with Bootstrap
Dim bootstrapInvoice As String = "
<!DOCTYPE html>
<html>
<head>
<link href='___PROTECTED_URL_139___ rel='stylesheet'>
<link href='___PROTECTED_URL_140___ rel='stylesheet'>
</head>
<body>
<div class='container mt-5'>
<div class='row'>
<div class='col-12'>
<div class='card'>
<div class='card-body'>
<div class='row mb-4'>
<div class='col-sm-6'>
<h2 class='text-primary'><i class='fas fa-file-invoice'></i> INVOICE</h2>
<p class='mb-1'><strong>Invoice #:</strong> INV-2025-001</p>
<p class='mb-1'><strong>Date:</strong> " & DateTime.Now.ToString("MMMM dd, yyyy") & "</p>
</div>
<div class='col-sm-6 text-sm-end'>
<h4>Your Company Name</h4>
<p class='mb-1'>123 Business St</p>
<p class='mb-1'>City, State 12345</p>
<p>contact@company.com</p>
</div>
</div>
<hr>
<div class='row mb-4'>
<div class='col-sm-6'>
<h5>Bill To:</h5>
<p class='mb-1'><strong>Client Company</strong></p>
<p class='mb-1'>456 Client Ave</p>
<p>City, State 67890</p>
</div>
</div>
<div class='table-responsive'>
<table class='table table-bordered'>
<thead class='table-primary'>
<tr>
<th>Description</th>
<th class='text-center'>Quantity</th>
<th class='text-end'>Price</th>
<th class='text-end'>Total</th>
</tr>
</thead>
<tbody>
<tr>
<td>Web Development Services</td>
<td class='text-center'>40</td>
<td class='text-end'>$150.00</td>
<td class='text-end'>$6,000.00</td>
</tr>
<tr>
<td>UI/UX Design</td>
<td class='text-center'>20</td>
<td class='text-end'>$125.00</td>
<td class='text-end'>$2,500.00</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan='3' class='text-end'><strong>Subtotal:</strong></td>
<td class='text-end'><strong>$8,500.00</strong></td>
</tr>
<tr>
<td colspan='3' class='text-end'>Tax (10%):</td>
<td class='text-end'>$850.00</td>
</tr>
<tr class='table-primary'>
<td colspan='3' class='text-end'><strong>Total Due:</strong></td>
<td class='text-end'><strong>$9,350.00</strong></td>
</tr>
</tfoot>
</table>
</div>
<div class='alert alert-info mt-4'>
<i class='fas fa-info-circle'></i> Payment is due within 30 days. Thank you for your business!
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>"
Dim invoicePdf = renderer.RenderHtmlAsPdf(bootstrapInvoice)
invoicePdf.SaveAs("bootstrap-invoice.pdf")
Resultado: Uma programação de conferência profissional com grade de cartões do Bootstrap, alinhamento flexbox, componentes de crachá e layout responsivo — tudo renderizado com precisão no PDF.
XFINIUM.PDF: Suporte limitado a HTML e frameworks
O XFINIUM.PDF concentra-se na geração e manipulação de PDFs, em vez da conversão de HTML para PDF. A biblioteca apresenta limitações significativas para o Bootstrap e frameworks CSS modernos:
- Sem renderização nativa de HTML: o XFINIUM.PDF não inclui um mecanismo de conversão de HTML para PDF integrado.
- Suporte básico a HTML apenas: Limitado a estruturas HTML simples, sem CSS avançado.
- Sem suporte para Bootstrap: Frameworks Bootstrap modernos (4/5) com flexbox e CSS Grid não são suportados.
- Soluções alternativas necessárias: Os desenvolvedores devem usar APIs de PDF de baixo nível para recriar os layouts manualmente.
- Ferramentas externas necessárias: Pode exigir integração com mecanismos externos de renderização HTML.
Impacto no desenvolvimento: Aplicativos que utilizam Bootstrap ou frameworks CSS modernos não podem converter diretamente sua interface de usuário para PDF com o XFINIUM.PDF. Os desenvolvedores devem:
- Recriar layouts usando as APIs de desenho de baixo nível do XFINIUM.PDF (tempo de desenvolvimento significativo)
- Integrar ferramentas externas de renderização HTML (complexidade e dependências adicionais)
- Manter um código de layout PDF separado, paralelo à interface web (sobrecarga de manutenção)
Para projetos que exigem conversão de HTML para PDF com frameworks modernos, as limitações do XFINIUM.PDF requerem desenvolvimento adicional significativo.
Para obter suporte completo ao Bootstrap e a frameworks CSS modernos, consulte o Guia de CSS do Bootstrap e Flexbox.
Quais são as opções de preços e licenciamento?
XFINIUM.PDF Preços e Licenciamento
Cada pacote está disponível em duas edições: a Generator Edition, para produção/edição de PDFs, e a Viewer Edition, que contém todos os recursos do Generator, além da renderização e visualização de PDFs.
- Cada desenvolvedor precisa de uma licença.
- Distribuição livre de royalties para um número ilimitado de computadores/servidores.
- A assinatura de assistência inclui um ano de atualizações/suporte.
Os preços variam de US$ 290,00 a US$ 872,00 por ano.
Preços e licenciamento do IronPDF
O IronPDF é gratuito para desenvolvimento e pode ser licenciado para uso comercial a qualquer momento. As opções incluem licenças para projetos individuais, desenvolvedores individuais, agências, organizações multinacionais e redistribuição SaaS/OEM. Todas as licenças incluem garantia de reembolso de 30 dias, um ano de suporte/atualizações, validade para desenvolvimento/teste/produção e licença perpétua (compra única). O pacote Lite começa em $799 sem despesas recorrentes.
Qual biblioteca de PDFs devo escolher?
A biblioteca IronPDF simplifica a criação de PDFs sem APIs proprietárias. O recurso "HTML-To-PDF" converte documentos de padrões abertos, como HTML, JS, CSS, JPG, PNG, GIF e SVG, em PDFs com qualidade de imagem perfeita. Baseia-se nas habilidades já existentes dos desenvolvedores. Você pode baixar documentos, enviá-los por e-mail ou salvá-los na nuvem, criando faturas, orçamentos, relatórios, contratos e outros documentos. É compatível com ASP.NET, ASP.NET Core, Web Forms, MVC, .NET Framework e APIs Web do .NET Core .
O XFINIUM.PDF oferece funcionalidades para desenvolvedores de PDF iniciantes e avançados. Seja para criar relatórios, preencher formulários em PDF, montar portfólios, ocultar informações ou converter PDFs em TIFFs com várias páginas, ele oferece as ferramentas necessárias. O modelo de objeto básico segue as especificações do PDF. O código compila em todas as plataformas sem necessidade de modificações.
As licenças do XFINIUM.PDF começam em US$ 290 (edições Generator) e US$ 387 (edições Viewer). IronPDF começa em $799. O IronPDF oferece licenças para um único usuário e para múltiplos usuários, enquanto o XFINIUM.PDF requer licenças por desenvolvedor. A licença profissional do IronPDF (US$ 799) suporta um número ilimitado de usuários.
O IronPDF requer menos linhas de código para manipulação de PDFs do que o XFINIUM.PDF, reduzindo a carga de trabalho do programador.
A Iron Software oferece seu pacote completo com apenas dois cliques. Pelo preço de duas bibliotecas, você recebe atualmente as cinco bibliotecas com suporte contínuo.
Perguntas frequentes
Quais são as principais funcionalidades do IronPDF para conversão de HTML em PDF?
O IronPDF utiliza o mecanismo .NET Chromium para converter HTML em PDF. Ele oferece suporte a HTML5, CSS, JavaScript e integração de imagens, tornando-se uma solução completa para a criação de PDFs a partir de conteúdo da web.
Como o XFINIUM.PDF se compara a outras bibliotecas de PDF for .NET?
XFINIUM.PDF é uma biblioteca multiplataforma que oferece duas edições: Gerador e Visualizador. Ela se destaca na criação, edição e renderização de PDFs, e inclui recursos como segurança, assinaturas digitais e suporte a códigos de barras.
O IronPDF pode ser usado em plataformas de nuvem como Azure e AWS?
Sim, o IronPDF é compatível com diversas plataformas, incluindo Azure e AWS, permitindo a implantação flexível de soluções de PDF em ambientes de nuvem.
Quais opções de instalação estão disponíveis para o IronPDF em projetos .NET?
O IronPDF pode ser instalado usando o Gerenciador de Pacotes NuGet do Visual Studio, o Prompt de Comando do Desenvolvedor ou baixando diretamente o pacote NuGet ou a DLL da biblioteca.
Quais são as funcionalidades de edição de PDF do IronPDF?
O IronPDF permite uma edição abrangente de PDFs, incluindo o preenchimento de campos de formulário, a fusão de documentos e a extração de texto e imagens. Ele também suporta a adição de cabeçalhos, rodapés e anotações.
Quais são as diferenças entre as opções de licenciamento do IronPDF e do XFINIUM.PDF?
A XFINIUM.PDF oferece licenças a partir de US$ 290 por desenvolvedor, com distribuição livre de royalties. A IronPDF oferece opções de licenciamento mais abrangentes, incluindo uma licença profissional para usuários ilimitados.
Quais são os recursos de segurança oferecidos pelo XFINIUM.PDF?
O XFINIUM.PDF oferece recursos de segurança como senhas de usuário e proprietário, direitos de acesso a documentos, criptografia RC4 e AES e redação de conteúdo para garantir a segurança dos documentos.
Por que os desenvolvedores escolheriam o IronPDF para seus projetos?
Os desenvolvedores podem optar pelo IronPDF devido à sua abordagem simplificada para manipulação de PDFs, que exige menos linhas de código, e à sua flexibilidade com licenças para um ou vários usuários.
Como o IronPDF lida com o preenchimento de formulários em PDFs?
O IronPDF fornece ferramentas para preencher campos de formulário em PDFs, permitindo a criação dinâmica de documentos e a interação do usuário.
Quais são as funcionalidades de assinatura digital disponíveis nessas bibliotecas de PDF?
Tanto o IronPDF quanto o XFINIUM.PDF suportam assinaturas digitais, permitindo a validação segura da autenticidade e integridade dos documentos.



