Uma comparação entre IronPDF e Apryse C#
Full Comparison
Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Apryse PDF on pricing, HTML support, and licensing.
Por que comparar as bibliotecas PDF IronPDF e Apryse em C#?
IronPDF e Apryse C# são bibliotecas PDF .NET de destaque, cada uma com pontos fortes únicos. O IronPDF se destaca na conversão de HTML para PDF com suporte completo ao Bootstrap e amplos recursos de edição . Enquanto isso, a Apryse se especializa em anotação e redação de documentos, atendendo às necessidades de conformidade empresarial.
Como desenvolvedores C#, vocês frequentemente se deparam com tarefas relacionadas a PDFs ao criar aplicativos que geram, editam ou exibem documentos. Uma biblioteca de PDFs confiável é crucial para a eficiência. Essas bibliotecas oferecem funções integradas para operações complexas, como conversão de documentos , edição de texto e manipulação de imagens em PDFs . Sem elas, você precisaria escrever toda a funcionalidade do zero, o que consome muito tempo e é propenso a erros.
Esta comparação analisa duas bibliotecas populares de PDF: IronPDF e Apryse C# . O IronPDF oferece recursos confiáveis que simplificam as operações com PDFs em ambientes .NET , desde a conversão de HTML para PDF até a edição avançada de documentos. Apryse C# oferece uma abordagem direta para manipulação de PDFs, com foco em eficiência e facilidade de uso. Esta análise explora as capacidades específicas de cada biblioteca para ajudá-lo a determinar a melhor opção para o seu projeto.
O que é a biblioteca Apryse C# para PDF?

Apryse C# é uma biblioteca PDF completa para aplicações .NET , projetada para simplificar a manipulação de PDFs em ambientes C#. Anteriormente conhecido como PDFTron SDK, oferece uma ampla gama de recursos e ferramentas para desenvolvedores que buscam capacidades precisas de manipulação de PDFs.
Quais são os principais recursos oferecidos pelo Apryse C#?
- Fácil integração com projetos .NET : Integração perfeita com o .NET, incluindo aplicações ASP.NET Core e aplicações .NET Framework tradicionais.
- Criação e edição de documentos: Crie PDFs do zero ou edite os existentes, incluindo texto, imagens, formulários e manipulação de páginas — reordenando, mesclando ou dividindo .
- Conversão de HTML para PDF: Conversão direta de conteúdo HTML para o formato PDF, incluindo faturas, relatórios e documentação de páginas web.
- Amplo suporte a campos de formulário: Criação, edição e preenchimento programático confiáveis de campos de formulário em PDF para fluxos de trabalho automatizados.
- Extração de Texto e Conteúdo: Extraia texto e conteúdo de PDFs para análise, ferramentas de busca e gerenciamento de conteúdo.
- Segurança e Criptografia: Segurança completa, incluindo criptografia de documentos , gerenciamento de permissões e assinaturas digitais.
- Recursos avançados de PDF: Suporte para anotações , marcadores e hiperlinks para PDFs interativos.
O que é a biblioteca IronPDF para C#?

IronPDF é uma biblioteca PDF versátil, feita sob medida para desenvolvedores .NET . Simplifica a manipulação complexa de PDFs, permitindo a criação , edição e conversão de documentos PDF diretamente em aplicações C#. Disponível para diversas linguagens de programação, incluindo Java, Python e C#, o IronPDF atende a diversas necessidades de processamento de PDF com eficiência e confiabilidade.
Quais são os principais recursos oferecidos IronPDF ?
- Integração perfeita com .NET : Fácil integração com suporte tanto for .NET Framework quanto for .NET Core , incluindo projetos ASP.NET .
- Conversão de HTML para PDF: Converta HTML para PDF com alta qualidade, ideal para relatórios, recibos e documentação a partir de modelos HTML.
- Edição avançada de PDF: Ampla gama de recursos de edição, incluindo a adição de texto , imagens e gráficos vetoriais .
- Manipulação de formulários PDF: Crie, edite e preencha formulários PDF programaticamente para fluxos de trabalho automatizados de documentos.
- Extração de conteúdo: Extrair texto, imagens e metadados para análise de conteúdo e migração de dados.
- Segurança de documentos: proteção por senha , criptografia e gerenciamento de permissões .
- Desempenho e escalabilidade: Melhorias para velocidade e processamento de grande volume em aplicações de alta demanda.
- Documentação completa: Documentação extensa e equipe de suporte ágil para auxiliar na implementação.
- Compatibilidade com padrões PDF: Suporte para PDF/A , PDF/UA e outras especificações do setor.
Como faço para criar um aplicativo de console em C#?
A criação de um aplicativo de console no Visual Studio estabelece a base para projetos de desenvolvimento .NET , incluindo aqueles que usam bibliotecas PDF como IronPDF ou Apryse C#. Siga estes passos para começar:
Como faço para iniciar o Visual Studio?
Abra o Visual Studio no seu computador. Se você ainda não instalou o Visual Studio, faça o download e instale-o no site oficial da Microsoft, selecionando a versão adequada às suas necessidades.
Como faço para criar um novo projeto?
Após abrir o Visual Studio, selecione "Criar um novo projeto" no painel inicial.

Que tipo de projeto devo escolher?
Na janela "Criar um novo projeto", você verá vários modelos de projeto. Digite "Console" na caixa de pesquisa ou encontre "Aplicativo de Console" na lista. Selecione o modelo específico para C#.

Como configuro meu projeto?
Após selecionar "Aplicativo de Console", clique em "Avançar". Configure seu novo projeto:
- Nome do projeto: Insira um nome descritivo para o seu projeto.
- Local: Escolha o local de salvamento desejado.
- Nome da solução: Por padrão, é o nome do seu projeto, mas pode ser personalizado.

- Framework: Selecione sua versão do .NET . A versão mais recente é geralmente recomendada, a menos que requisitos específicos indiquem o contrário.

Como faço para concluir a criação de um projeto?
Após configurar as definições do seu projeto, clique em "Criar". O Visual Studio cria um novo projeto de aplicação de consola com um ficheiro Program.cs padrão.
Qual é a estrutura do projeto?
Explore a estrutura do projeto gerada no painel Explorador de Soluções. Você trabalhará principalmente com o arquivo Program.cs para aplicativos de console, onde escreverá seu código C#.
Como instalo a biblioteca IronPDF ?
A integração do IronPDF em seu projeto .NET permite que você utilize todos os seus recursos de manipulação de PDF. Diversos métodos de instalação oferecem flexibilidade com base nas suas preferências de fluxo de trabalho.
Como faço para instalar usando o gerenciador de pacotes NuGet ?
O Gerenciador de Pacotes NuGet no Visual Studio fornece uma interface gráfica para gerenciar bibliotecas.
- Abra seu projeto no Visual Studio.
- Clique com o botão direito do mouse no seu projeto no Solution Explorer e selecione "Gerenciar Pacotes NuGet ".
- Clique na aba "Procurar" e pesquise por "IronPDF".
- Selecione IronPDF nos resultados e clique em "Instalar".

Como faço para instalar usando a linha de comando?
O Console do Gerenciador de Pacotes oferece instalação direta pela linha de comando.
- Abra seu projeto do Visual Studio.
- Acesse Ferramentas > Gerenciador de Pacotes NuGet > Console do Gerenciador de Pacotes.
- Digite o seguinte comando:
Install-Package IronPdf
Este comando instala a versão mais recente do IronPDF em seu projeto.
Como faço para baixar diretamente do NuGet?
Você pode baixar o pacote manualmente antes da integração.
- Visite o site do NuGet e pesquise por "IronPDF".
- Na página do pacote IronPDF , clique em "Download Package" para obter o arquivo .nupkg.

- Adicione o pacote baixado manualmente através do Solution Explorer > clique com o botão direito do mouse no projeto > "Adicionar > Referência".
Cada método integra com sucesso o IronPDF, permitindo que você utilize seus recursos eficazes de processamento de PDF .
Como instalo o Apryse C#?
A integração do Apryse C# ao seu projeto varia de acordo com o ambiente .NET Framework ou .NET Core . Os passos a seguir descrevem o processo geral de instalação:
Como faço para instalar o Apryse for .NET Framework?
- Baixe o SDK da Apryse para Windows: Você precisará acessar a página do SDK da Apryse para Windows para baixar o SDK adequado para aplicativos .NET Framework .

- Extraia o SDK: Após o download, extraia o SDK para um local conhecido em seu sistema.
- Obtenha uma chave de avaliação do Apryse: Registre-se na plataforma Apryse para obter uma chave de avaliação, que você usará para ativar os recursos de avaliação do SDK.
- Configure seu projeto: No Visual Studio, crie um novo aplicativo de console do .NET Framework . Em seguida, adicione a pasta Lib do SDK extraído ao diretório do seu projeto.
- Adicionar Referências: Clique com o botão direito do mouse em Referências no seu projeto, escolha "Adicionar Referência" e navegue até a pasta Lib onde você copiou o PDFNetLoader.dll e o PDFNet.dll apropriado para sua arquitetura (x86 ou x64). Certifique-se de definir a propriedade "Copiar Local" do PDFNet.dll como falsa.
- Configure o App.config: Certifique-se de que o arquivo App.config tenha a configuração loadFromRemoteSources ativada (true).
O SDK inclui pastas de exemplo que você pode abrir e executar diretamente como soluções. ## Recursos avançados do IronPDF
Conversão de HTML para PDF
O IronPDF é altamente eficaz na conversão de documentos HTML em PDF, um recurso crucial para aplicativos da web que geram relatórios, faturas ou capturas de tela de páginas da web. A biblioteca renderiza HTML, CSS e JavaScript com precisão, preservando o layout e os estilos do conteúdo da web nos PDFs gerados.
Converter uma string HTML em PDF
A conversão direta de strings HTML para PDF permite a criação dinâmica de documentos a partir de conteúdo gerado pelo aplicativo ou variáveis armazenadas. Este método é vantajoso para criar relatórios, recibos ou documentos personalizados com base nas informações fornecidas pelo usuário.
using IronPdf;
// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();
// Define a simple HTML string to convert to PDF
string htmlContent = @"
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<title>My PDF</title>
<style>
body {
font-family: Arial, sans-serif;
}
h1 {
color: #333;
text-align: center;
}
p {
color: #666;
text-align: justify;
}
</style>
</head>
<body>
<h1>Welcome to My PDF</h1>
<p>This is a sample paragraph demonstrating how to create a PDF from HTML using IronPdf in C#.</p>
<p>You can add more content here as needed.</p>
</body>
</html>";
// Render the HTML string as a PDF
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Save the resulting PDF to a file
pdf.SaveAs("output.pdf");
using IronPdf;
// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();
// Define a simple HTML string to convert to PDF
string htmlContent = @"
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<title>My PDF</title>
<style>
body {
font-family: Arial, sans-serif;
}
h1 {
color: #333;
text-align: center;
}
p {
color: #666;
text-align: justify;
}
</style>
</head>
<body>
<h1>Welcome to My PDF</h1>
<p>This is a sample paragraph demonstrating how to create a PDF from HTML using IronPdf in C#.</p>
<p>You can add more content here as needed.</p>
</body>
</html>";
// Render the HTML string as a PDF
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Save the resulting PDF to a file
pdf.SaveAs("output.pdf");
Imports IronPdf
' Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"
' Instantiate a PDF renderer
Dim renderer = New ChromePdfRenderer()
' Define a simple HTML string to convert to PDF
Dim htmlContent As String = "
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<title>My PDF</title>
<style>
body {
font-family: Arial, sans-serif;
}
h1 {
color: #333;
text-align: center;
}
p {
color: #666;
text-align: justify;
}
</style>
</head>
<body>
<h1>Welcome to My PDF</h1>
<p>This is a sample paragraph demonstrating how to create a PDF from HTML using IronPdf in C#.</p>
<p>You can add more content here as needed.</p>
</body>
</html>"
' Render the HTML string as a PDF
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
' Save the resulting PDF to a file
pdf.SaveAs("output.pdf")
Converter arquivo HTML para PDF
Se você tiver arquivos HTML armazenados em disco, o IronPDF pode convertê-los em documentos PDF. Este método é ideal para documentos HTML, modelos ou relatórios já existentes, salvos em seu projeto ou servidor.
using IronPdf;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();
// Render the HTML file as a PDF
var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");
// Save the resulting PDF to a file
pdf.SaveAs("file.pdf");
using IronPdf;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();
// Render the HTML file as a PDF
var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");
// Save the resulting PDF to a file
pdf.SaveAs("file.pdf");
Imports IronPdf
' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"
' Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Instantiate a PDF renderer
Dim renderer = New ChromePdfRenderer()
' Render the HTML file as a PDF
Dim pdf = renderer.RenderHtmlFileAsPdf("invoice.html")
' Save the resulting PDF to a file
pdf.SaveAs("file.pdf")
Converter URL para PDF
O IronPDF consegue converter páginas web em documentos PDF, bastando fornecer o URL. Essa funcionalidade captura o estado atual da página da web, incluindo layouts complexos, CSS e conteúdo gerado por JavaScript.
using IronPdf;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();
// Render the URL as a PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_100___");
// Save the resulting PDF to a file
pdf.SaveAs("url.pdf");
using IronPdf;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();
// Render the URL as a PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_100___");
// Save the resulting PDF to a file
pdf.SaveAs("url.pdf");
Imports IronPdf
' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"
' Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Instantiate a PDF renderer
Dim renderer As New ChromePdfRenderer()
' Render the URL as a PDF
Dim pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_100___")
' Save the resulting PDF to a file
pdf.SaveAs("url.pdf")
Suporte para Bootstrap e frameworks CSS modernos
O suporte completo para Bootstrap e frameworks CSS é essencial ao gerar PDFs a partir de aplicações web modernas. As organizações dependem do Bootstrap para interfaces web, tornando a conversão precisa para PDF essencial para relatórios, faturas e documentação.
Funcionalidades do Bootstrap suportadas pelo IronPDF
IronPDF: Suporte completo ao Bootstrap
- Bootstrap 5: Suporte completo para layouts flexbox, CSS Grid, classes utilitárias e componentes responsivos. Bootstrap 4: Sistemas de cartões completos, componentes de navegação e utilitários flexíveis.
- Tailwind CSS: Todas as classes utilitárias são renderizadas com precisão.
- Foundation: Sistema de grade completo e suporte a componentes CSS3 moderno: Flexbox completo, CSS Grid, propriedades personalizadas, animações e transições.
O IronPDF renderiza a página inicial do Bootstrap e todos os exemplos oficiais com precisão perfeita em cada pixel.
Exemplo de código: Painel de métricas de negócios
using IronPdf;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
var renderer = new ChromePdfRenderer();
string bootstrapDashboard = @"
<!DOCTYPE html>
<html>
<head>
<link href='___PROTECTED_URL_101___ rel='stylesheet'>
<style>
.metric-card { transition: transform 0.2s; }
.metric-card:hover { transform: translateY(-5px); }
.trend-up { color: #28a745; }
.trend-down { color: #dc3545; }
</style>
</head>
<body>
<div class='container-fluid py-4'>
<div class='d-flex justify-content-between align-items-center mb-4'>
<h1 class='display-5'>Business Performance Dashboard</h1>
<div class='text-muted'>Last updated: March 2025</div>
</div>
<div class='row g-4 mb-4'>
<div class='col-md-3'>
<div class='card metric-card shadow-sm border-start border-primary border-4'>
<div class='card-body'>
<div class='d-flex justify-content-between align-items-center mb-2'>
<h6 class='text-muted text-uppercase mb-0'>Total Revenue</h6>
<span class='badge bg-primary'>Q1 2025</span>
</div>
<h2 class='mb-1'>$2.4M</h2>
<div class='trend-up'>
<i>↑</i> <strong>+18.5%</strong> from last quarter
</div>
</div>
</div>
</div>
<div class='col-md-3'>
<div class='card metric-card shadow-sm border-start border-success border-4'>
<div class='card-body'>
<div class='d-flex justify-content-between align-items-center mb-2'>
<h6 class='text-muted text-uppercase mb-0'>New Customers</h6>
<span class='badge bg-success'>Active</span>
</div>
<h2 class='mb-1'>1,284</h2>
<div class='trend-up'>
<i>↑</i> <strong>+24.3%</strong> growth rate
</div>
</div>
</div>
</div>
<div class='col-md-3'>
<div class='card metric-card shadow-sm border-start border-warning border-4'>
<div class='card-body'>
<div class='d-flex justify-content-between align-items-center mb-2'>
<h6 class='text-muted text-uppercase mb-0'>Avg Order Value</h6>
<span class='badge bg-warning text-dark'>Updated</span>
</div>
<h2 class='mb-1'>$1,847</h2>
<div class='trend-up'>
<i>↑</i> <strong>+5.2%</strong> increase
</div>
</div>
</div>
</div>
<div class='col-md-3'>
<div class='card metric-card shadow-sm border-start border-info border-4'>
<div class='card-body'>
<div class='d-flex justify-content-between align-items-center mb-2'>
<h6 class='text-muted text-uppercase mb-0'>Satisfaction Rate</h6>
<span class='badge bg-info'>Excellent</span>
</div>
<h2 class='mb-1'>94.7%</h2>
<div class='trend-up'>
<i>↑</i> <strong>+2.1pts</strong> improvement
</div>
</div>
</div>
</div>
</div>
<div class='row g-4'>
<div class='col-md-8'>
<div class='card shadow-sm'>
<div class='card-header bg-white d-flex justify-content-between align-items-center'>
<h5 class='mb-0'>Revenue Breakdown by Category</h5>
<div class='btn-group btn-group-sm' role='group'>
<button type='button' class='btn btn-outline-primary active'>Monthly</button>
<button type='button' class='btn btn-outline-primary'>Quarterly</button>
<button type='button' class='btn btn-outline-primary'>Annual</button>
</div>
</div>
<div class='card-body'>
<div class='table-responsive'>
<table class='table table-hover mb-0'>
<thead class='table-light'>
<tr>
<th>Category</th>
<th>Revenue</th>
<th>Orders</th>
<th>Avg Value</th>
<th class='text-end'>Trend</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class='badge bg-primary me-2'>A</span>Enterprise Solutions</td>
<td><strong>$1,245,000</strong></td>
<td>142</td>
<td>$8,768</td>
<td class='text-end'><span class='badge bg-success'>+12%</span></td>
</tr>
<tr>
<td><span class='badge bg-success me-2'>B</span>Professional Services</td>
<td><strong>$687,500</strong></td>
<td>458</td>
<td>$1,501</td>
<td class='text-end'><span class='badge bg-success'>+18%</span></td>
</tr>
<tr>
<td><span class='badge bg-info me-2'>C</span>Standard Packages</td>
<td><strong>$412,300</strong></td>
<td>891</td>
<td>$463</td>
<td class='text-end'><span class='badge bg-success'>+8%</span></td>
</tr>
<tr>
<td><span class='badge bg-warning me-2'>D</span>Custom Development</td>
<td><strong>$55,200</strong></td>
<td>12</td>
<td>$4,600</td>
<td class='text-end'><span class='badge bg-danger'>-3%</span></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class='col-md-4'>
<div class='card shadow-sm'>
<div class='card-header bg-white'>
<h5 class='mb-0'>Quick Actions</h5>
</div>
<div class='card-body'>
<div class='d-grid gap-2'>
<button class='btn btn-primary'>Generate Full Report</button>
<button class='btn btn-outline-primary'>Export to Excel</button>
<button class='btn btn-outline-secondary'>Schedule Email</button>
<button class='btn btn-outline-info'>Share Dashboard</button>
</div>
</div>
</div>
<div class='card shadow-sm mt-3'>
<div class='card-header bg-white'>
<h5 class='mb-0'>Key Insights</h5>
</div>
<div class='card-body'>
<div class='alert alert-success mb-2'>
<small><strong>Top Performer:</strong> Enterprise Solutions leading revenue growth</small>
</div>
<div class='alert alert-info mb-2'>
<small><strong>Growth Driver:</strong> Professional Services showing strongest customer acquisition</small>
</div>
<div class='alert alert-warning mb-0'>
<small><strong>Attention Needed:</strong> Custom Development segment requires review</small>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapDashboard);
pdf.SaveAs("business-dashboard.pdf");
using IronPdf;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
var renderer = new ChromePdfRenderer();
string bootstrapDashboard = @"
<!DOCTYPE html>
<html>
<head>
<link href='___PROTECTED_URL_101___ rel='stylesheet'>
<style>
.metric-card { transition: transform 0.2s; }
.metric-card:hover { transform: translateY(-5px); }
.trend-up { color: #28a745; }
.trend-down { color: #dc3545; }
</style>
</head>
<body>
<div class='container-fluid py-4'>
<div class='d-flex justify-content-between align-items-center mb-4'>
<h1 class='display-5'>Business Performance Dashboard</h1>
<div class='text-muted'>Last updated: March 2025</div>
</div>
<div class='row g-4 mb-4'>
<div class='col-md-3'>
<div class='card metric-card shadow-sm border-start border-primary border-4'>
<div class='card-body'>
<div class='d-flex justify-content-between align-items-center mb-2'>
<h6 class='text-muted text-uppercase mb-0'>Total Revenue</h6>
<span class='badge bg-primary'>Q1 2025</span>
</div>
<h2 class='mb-1'>$2.4M</h2>
<div class='trend-up'>
<i>↑</i> <strong>+18.5%</strong> from last quarter
</div>
</div>
</div>
</div>
<div class='col-md-3'>
<div class='card metric-card shadow-sm border-start border-success border-4'>
<div class='card-body'>
<div class='d-flex justify-content-between align-items-center mb-2'>
<h6 class='text-muted text-uppercase mb-0'>New Customers</h6>
<span class='badge bg-success'>Active</span>
</div>
<h2 class='mb-1'>1,284</h2>
<div class='trend-up'>
<i>↑</i> <strong>+24.3%</strong> growth rate
</div>
</div>
</div>
</div>
<div class='col-md-3'>
<div class='card metric-card shadow-sm border-start border-warning border-4'>
<div class='card-body'>
<div class='d-flex justify-content-between align-items-center mb-2'>
<h6 class='text-muted text-uppercase mb-0'>Avg Order Value</h6>
<span class='badge bg-warning text-dark'>Updated</span>
</div>
<h2 class='mb-1'>$1,847</h2>
<div class='trend-up'>
<i>↑</i> <strong>+5.2%</strong> increase
</div>
</div>
</div>
</div>
<div class='col-md-3'>
<div class='card metric-card shadow-sm border-start border-info border-4'>
<div class='card-body'>
<div class='d-flex justify-content-between align-items-center mb-2'>
<h6 class='text-muted text-uppercase mb-0'>Satisfaction Rate</h6>
<span class='badge bg-info'>Excellent</span>
</div>
<h2 class='mb-1'>94.7%</h2>
<div class='trend-up'>
<i>↑</i> <strong>+2.1pts</strong> improvement
</div>
</div>
</div>
</div>
</div>
<div class='row g-4'>
<div class='col-md-8'>
<div class='card shadow-sm'>
<div class='card-header bg-white d-flex justify-content-between align-items-center'>
<h5 class='mb-0'>Revenue Breakdown by Category</h5>
<div class='btn-group btn-group-sm' role='group'>
<button type='button' class='btn btn-outline-primary active'>Monthly</button>
<button type='button' class='btn btn-outline-primary'>Quarterly</button>
<button type='button' class='btn btn-outline-primary'>Annual</button>
</div>
</div>
<div class='card-body'>
<div class='table-responsive'>
<table class='table table-hover mb-0'>
<thead class='table-light'>
<tr>
<th>Category</th>
<th>Revenue</th>
<th>Orders</th>
<th>Avg Value</th>
<th class='text-end'>Trend</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class='badge bg-primary me-2'>A</span>Enterprise Solutions</td>
<td><strong>$1,245,000</strong></td>
<td>142</td>
<td>$8,768</td>
<td class='text-end'><span class='badge bg-success'>+12%</span></td>
</tr>
<tr>
<td><span class='badge bg-success me-2'>B</span>Professional Services</td>
<td><strong>$687,500</strong></td>
<td>458</td>
<td>$1,501</td>
<td class='text-end'><span class='badge bg-success'>+18%</span></td>
</tr>
<tr>
<td><span class='badge bg-info me-2'>C</span>Standard Packages</td>
<td><strong>$412,300</strong></td>
<td>891</td>
<td>$463</td>
<td class='text-end'><span class='badge bg-success'>+8%</span></td>
</tr>
<tr>
<td><span class='badge bg-warning me-2'>D</span>Custom Development</td>
<td><strong>$55,200</strong></td>
<td>12</td>
<td>$4,600</td>
<td class='text-end'><span class='badge bg-danger'>-3%</span></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class='col-md-4'>
<div class='card shadow-sm'>
<div class='card-header bg-white'>
<h5 class='mb-0'>Quick Actions</h5>
</div>
<div class='card-body'>
<div class='d-grid gap-2'>
<button class='btn btn-primary'>Generate Full Report</button>
<button class='btn btn-outline-primary'>Export to Excel</button>
<button class='btn btn-outline-secondary'>Schedule Email</button>
<button class='btn btn-outline-info'>Share Dashboard</button>
</div>
</div>
</div>
<div class='card shadow-sm mt-3'>
<div class='card-header bg-white'>
<h5 class='mb-0'>Key Insights</h5>
</div>
<div class='card-body'>
<div class='alert alert-success mb-2'>
<small><strong>Top Performer:</strong> Enterprise Solutions leading revenue growth</small>
</div>
<div class='alert alert-info mb-2'>
<small><strong>Growth Driver:</strong> Professional Services showing strongest customer acquisition</small>
</div>
<div class='alert alert-warning mb-0'>
<small><strong>Attention Needed:</strong> Custom Development segment requires review</small>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapDashboard);
pdf.SaveAs("business-dashboard.pdf");
Imports IronPdf
' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"
Dim renderer As New ChromePdfRenderer()
Dim bootstrapDashboard As String = "
<!DOCTYPE html>
<html>
<head>
<link href='___PROTECTED_URL_101___ rel='stylesheet'>
<style>
.metric-card { transition: transform 0.2s; }
.metric-card:hover { transform: translateY(-5px); }
.trend-up { color: #28a745; }
.trend-down { color: #dc3545; }
</style>
</head>
<body>
<div class='container-fluid py-4'>
<div class='d-flex justify-content-between align-items-center mb-4'>
<h1 class='display-5'>Business Performance Dashboard</h1>
<div class='text-muted'>Last updated: March 2025</div>
</div>
<div class='row g-4 mb-4'>
<div class='col-md-3'>
<div class='card metric-card shadow-sm border-start border-primary border-4'>
<div class='card-body'>
<div class='d-flex justify-content-between align-items-center mb-2'>
<h6 class='text-muted text-uppercase mb-0'>Total Revenue</h6>
<span class='badge bg-primary'>Q1 2025</span>
</div>
<h2 class='mb-1'>$2.4M</h2>
<div class='trend-up'>
<i>↑</i> <strong>+18.5%</strong> from last quarter
</div>
</div>
</div>
</div>
<div class='col-md-3'>
<div class='card metric-card shadow-sm border-start border-success border-4'>
<div class='card-body'>
<div class='d-flex justify-content-between align-items-center mb-2'>
<h6 class='text-muted text-uppercase mb-0'>New Customers</h6>
<span class='badge bg-success'>Active</span>
</div>
<h2 class='mb-1'>1,284</h2>
<div class='trend-up'>
<i>↑</i> <strong>+24.3%</strong> growth rate
</div>
</div>
</div>
</div>
<div class='col-md-3'>
<div class='card metric-card shadow-sm border-start border-warning border-4'>
<div class='card-body'>
<div class='d-flex justify-content-between align-items-center mb-2'>
<h6 class='text-muted text-uppercase mb-0'>Avg Order Value</h6>
<span class='badge bg-warning text-dark'>Updated</span>
</div>
<h2 class='mb-1'>$1,847</h2>
<div class='trend-up'>
<i>↑</i> <strong>+5.2%</strong> increase
</div>
</div>
</div>
</div>
<div class='col-md-3'>
<div class='card metric-card shadow-sm border-start border-info border-4'>
<div class='card-body'>
<div class='d-flex justify-content-between align-items-center mb-2'>
<h6 class='text-muted text-uppercase mb-0'>Satisfaction Rate</h6>
<span class='badge bg-info'>Excellent</span>
</div>
<h2 class='mb-1'>94.7%</h2>
<div class='trend-up'>
<i>↑</i> <strong>+2.1pts</strong> improvement
</div>
</div>
</div>
</div>
</div>
<div class='row g-4'>
<div class='col-md-8'>
<div class='card shadow-sm'>
<div class='card-header bg-white d-flex justify-content-between align-items-center'>
<h5 class='mb-0'>Revenue Breakdown by Category</h5>
<div class='btn-group btn-group-sm' role='group'>
<button type='button' class='btn btn-outline-primary active'>Monthly</button>
<button type='button' class='btn btn-outline-primary'>Quarterly</button>
<button type='button' class='btn btn-outline-primary'>Annual</button>
</div>
</div>
<div class='card-body'>
<div class='table-responsive'>
<table class='table table-hover mb-0'>
<thead class='table-light'>
<tr>
<th>Category</th>
<th>Revenue</th>
<th>Orders</th>
<th>Avg Value</th>
<th class='text-end'>Trend</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class='badge bg-primary me-2'>A</span>Enterprise Solutions</td>
<td><strong>$1,245,000</strong></td>
<td>142</td>
<td>$8,768</td>
<td class='text-end'><span class='badge bg-success'>+12%</span></td>
</tr>
<tr>
<td><span class='badge bg-success me-2'>B</span>Professional Services</td>
<td><strong>$687,500</strong></td>
<td>458</td>
<td>$1,501</td>
<td class='text-end'><span class='badge bg-success'>+18%</span></td>
</tr>
<tr>
<td><span class='badge bg-info me-2'>C</span>Standard Packages</td>
<td><strong>$412,300</strong></td>
<td>891</td>
<td>$463</td>
<td class='text-end'><span class='badge bg-success'>+8%</span></td>
</tr>
<tr>
<td><span class='badge bg-warning me-2'>D</span>Custom Development</td>
<td><strong>$55,200</strong></td>
<td>12</td>
<td>$4,600</td>
<td class='text-end'><span class='badge bg-danger'>-3%</span></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class='col-md-4'>
<div class='card shadow-sm'>
<div class='card-header bg-white'>
<h5 class='mb-0'>Quick Actions</h5>
</div>
<div class='card-body'>
<div class='d-grid gap-2'>
<button class='btn btn-primary'>Generate Full Report</button>
<button class='btn btn-outline-primary'>Export to Excel</button>
<button class='btn btn-outline-secondary'>Schedule Email</button>
<button class='btn btn-outline-info'>Share Dashboard</button>
</div>
</div>
</div>
<div class='card shadow-sm mt-3'>
<div class='card-header bg-white'>
<h5 class='mb-0'>Key Insights</h5>
</div>
<div class='card-body'>
<div class='alert alert-success mb-2'>
<small><strong>Top Performer:</strong> Enterprise Solutions leading revenue growth</small>
</div>
<div class='alert alert-info mb-2'>
<small><strong>Growth Driver:</strong> Professional Services showing strongest customer acquisition</small>
</div>
<div class='alert alert-warning mb-0'>
<small><strong>Attention Needed:</strong> Custom Development segment requires review</small>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>"
Dim pdf = renderer.RenderHtmlAsPdf(bootstrapDashboard)
pdf.SaveAs("business-dashboard.pdf")
Resultado: Painel de controle empresarial profissional em PDF com o sistema de grade baseado em flexbox do Bootstrap 5, componentes de cartão com bordas utilitárias, elementos de distintivo, tabelas responsivas e métricas com código de cores — tudo renderizado com perfeita preservação do layout e da tipografia.
Limitações do framework CSS do Apryse
O módulo HTML2PDF da Apryse usa um mecanismo de renderização personalizado (não o Chromium) com limitações documentadas:
- Suporte parcial ao Flexbox: os layouts do Bootstrap 4/5 podem não ser renderizados corretamente.
- CSS Grid limitado: designs modernos baseados em grids frequentemente falham
- Restrições do JavaScript : Execução mínima em comparação com ambientes de navegador.
- Compatibilidade com frameworks: Requer testes extensivos para componentes Bootstrap.
A documentação do HTML2PDF adverte explicitamente que CSS complexo pode não ser renderizado como esperado. Os desenvolvedores relatam problemas com barras de navegação, layouts de cartões flexíveis e utilitários responsivos.
Impacto no desenvolvimento: As equipes que usam o Apryse precisam criar CSS paralelo "compatível com PDF" ou simplificar significativamente os layouts do Bootstrap, o que aumenta a sobrecarga de desenvolvimento e limita a consistência do design entre as saídas para a web e para PDF.
Para suporte completo ao framework Bootstrap com renderização CSS3 completa, consulte o Guia de CSS do Bootstrap e Flexbox .
Mesclar e dividir PDFs
O IronPDF facilita a combinação de vários documentos PDF ou a divisão de PDFs em arquivos menores. Essa funcionalidade é essencial para sistemas de gerenciamento de documentos que exigem uma estrutura de conteúdo em PDF organizada.
using IronPdf;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Define HTML content for two PDFs to merge
var htmlA = @"
<h1>PDF A</h1>
<p>This is the content of PDF A.</p>
<p>This is the first page of PDF A.</p>
<div style='page-break-after: always;'></div>
<p>This is the second page of PDF A.</p>";
var htmlB = @"
<h1>PDF B</h1>
<p>This is the content of PDF B.</p>
<p>This is the first page of PDF B.</p>
<div style='page-break-after: always;'></div>
<p>This is the second page of PDF B.</p>";
// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();
// Render the HTML content as separate PDF documents
var pdfDocA = renderer.RenderHtmlAsPdf(htmlA);
var pdfDocB = renderer.RenderHtmlAsPdf(htmlB);
// Merge the two PDFs into one
var mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB);
// Save the merged PDF to a file
mergedPdf.SaveAs("Merged.pdf");
using IronPdf;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Define HTML content for two PDFs to merge
var htmlA = @"
<h1>PDF A</h1>
<p>This is the content of PDF A.</p>
<p>This is the first page of PDF A.</p>
<div style='page-break-after: always;'></div>
<p>This is the second page of PDF A.</p>";
var htmlB = @"
<h1>PDF B</h1>
<p>This is the content of PDF B.</p>
<p>This is the first page of PDF B.</p>
<div style='page-break-after: always;'></div>
<p>This is the second page of PDF B.</p>";
// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();
// Render the HTML content as separate PDF documents
var pdfDocA = renderer.RenderHtmlAsPdf(htmlA);
var pdfDocB = renderer.RenderHtmlAsPdf(htmlB);
// Merge the two PDFs into one
var mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB);
// Save the merged PDF to a file
mergedPdf.SaveAs("Merged.pdf");
Imports IronPdf
' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"
' Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Define HTML content for two PDFs to merge
Dim htmlA = "
<h1>PDF A</h1>
<p>This is the content of PDF A.</p>
<p>This is the first page of PDF A.</p>
<div style='page-break-after: always;'></div>
<p>This is the second page of PDF A.</p>"
Dim htmlB = "
<h1>PDF B</h1>
<p>This is the content of PDF B.</p>
<p>This is the first page of PDF B.</p>
<div style='page-break-after: always;'></div>
<p>This is the second page of PDF B.</p>"
' Instantiate a PDF renderer
Dim renderer = New ChromePdfRenderer()
' Render the HTML content as separate PDF documents
Dim pdfDocA = renderer.RenderHtmlAsPdf(htmlA)
Dim pdfDocB = renderer.RenderHtmlAsPdf(htmlB)
' Merge the two PDFs into one
Dim mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB)
' Save the merged PDF to a file
mergedPdf.SaveAs("Merged.pdf")
Adicionando marcas d'água a PDFs
O IronPDF permite adicionar marcas d'água às páginas de PDF para personalizar a identidade visual da sua marca ou marcar documentos como confidenciais. A biblioteca gerencia a complexidade das marcas d'água de texto e de imagem, proporcionando flexibilidade na aplicação e na exibição.
using IronPdf;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();
// Render a URL as a PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_102___");
// Apply a watermark to the PDF
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
// Save the watermarked PDF to a file
pdf.SaveAs("Watermarked.pdf");
```### How Do I Work with PDF Forms?
IronPDF supports complete [interactive PDF form handling](https://ironpdf.com/how-to/create-forms/). You can create, fill, and submit PDF forms programmatically, which is particularly useful for automating form processing or integrating form data collection into your workflows.
```csharp
using IronPdf;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Define HTML content with form elements
const string formHtml = @"
<html>
<body>
<h2>Employee Information Form</h2>
<form>
First name: <br>
Last name: <br>
<br>
<p>Please select your department:</p>
<select name='department'>
<option value='HR'>HR</option>
<option value='Finance'>Finance</option>
<option value='IT'>IT</option>
<option value='Marketing'>Marketing</option>
</select>
<br>
<br>
<p>Please select your employment status:</p>
<label for='fulltime'>Full-time</label> <br>
<label for='parttime'>Part-time</label> <br>
<br>
<p>Please select your skills:</p>
<label for='skill1'> Programming</label><br>
<label for='skill2'> Design</label><br>
<label for='skill3'> Marketing</label><br>
</form>
</body>
</html>";
// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
// Render the HTML form content as a PDF
renderer.RenderHtmlAsPdf(formHtml).SaveAs("EmployeeInfoForm.pdf");
using IronPdf;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();
// Render a URL as a PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_102___");
// Apply a watermark to the PDF
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
// Save the watermarked PDF to a file
pdf.SaveAs("Watermarked.pdf");
```### How Do I Work with PDF Forms?
IronPDF supports complete [interactive PDF form handling](https://ironpdf.com/how-to/create-forms/). You can create, fill, and submit PDF forms programmatically, which is particularly useful for automating form processing or integrating form data collection into your workflows.
```csharp
using IronPdf;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Define HTML content with form elements
const string formHtml = @"
<html>
<body>
<h2>Employee Information Form</h2>
<form>
First name: <br>
Last name: <br>
<br>
<p>Please select your department:</p>
<select name='department'>
<option value='HR'>HR</option>
<option value='Finance'>Finance</option>
<option value='IT'>IT</option>
<option value='Marketing'>Marketing</option>
</select>
<br>
<br>
<p>Please select your employment status:</p>
<label for='fulltime'>Full-time</label> <br>
<label for='parttime'>Part-time</label> <br>
<br>
<p>Please select your skills:</p>
<label for='skill1'> Programming</label><br>
<label for='skill2'> Design</label><br>
<label for='skill3'> Marketing</label><br>
</form>
</body>
</html>";
// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
// Render the HTML form content as a PDF
renderer.RenderHtmlAsPdf(formHtml).SaveAs("EmployeeInfoForm.pdf");
Imports IronPdf
' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"
' Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Instantiate a PDF renderer
Dim renderer As New ChromePdfRenderer()
' Render a URL as a PDF
Dim pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_102___")
' Apply a watermark to the PDF
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center)
' Save the watermarked PDF to a file
pdf.SaveAs("Watermarked.pdf")
Imports IronPdf
' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"
' Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Define HTML content with form elements
Const formHtml As String = "
<html>
<body>
<h2>Employee Information Form</h2>
<form>
First name: <br>
Last name: <br>
<br>
<p>Please select your department:</p>
<select name='department'>
<option value='HR'>HR</option>
<option value='Finance'>Finance</option>
<option value='IT'>IT</option>
<option value='Marketing'>Marketing</option>
</select>
<br>
<br>
<p>Please select your employment status:</p>
<label for='fulltime'>Full-time</label> <br>
<label for='parttime'>Part-time</label> <br>
<br>
<p>Please select your skills:</p>
<label for='skill1'> Programming</label><br>
<label for='skill2'> Design</label><br>
<label for='skill3'> Marketing</label><br>
</form>
</body>
</html>"
' Instantiate a PDF renderer
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
' Render the HTML form content as a PDF
renderer.RenderHtmlAsPdf(formHtml).SaveAs("EmployeeInfoForm.pdf")

Como posso proteger e criptografar PDFs?
O IronPDF oferece recursos confiáveis para proteger documentos PDF , incluindo criptografia, configurações de permissão e assinaturas digitais . Essas medidas garantem a proteção de informações sensíveis e a manutenção da integridade dos documentos.
using IronPdf;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Load an existing PDF file
var pdf = PdfDocument.FromFile("invoice.pdf");
// Set document security settings
pdf.SecuritySettings.OwnerPassword = "top-secret"; // Password to edit the PDF
pdf.SecuritySettings.UserPassword = "sharable"; // Password to open the PDF
// Save the secured PDF to a file
pdf.SaveAs("secured.pdf");
using IronPdf;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Load an existing PDF file
var pdf = PdfDocument.FromFile("invoice.pdf");
// Set document security settings
pdf.SecuritySettings.OwnerPassword = "top-secret"; // Password to edit the PDF
pdf.SecuritySettings.UserPassword = "sharable"; // Password to open the PDF
// Save the secured PDF to a file
pdf.SaveAs("secured.pdf");
Imports IronPdf
' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"
' Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Load an existing PDF file
Dim pdf = PdfDocument.FromFile("invoice.pdf")
' Set document security settings
pdf.SecuritySettings.OwnerPassword = "top-secret" ' Password to edit the PDF
pdf.SecuritySettings.UserPassword = "sharable" ' Password to open the PDF
' Save the secured PDF to a file
pdf.SaveAs("secured.pdf")

Quais opções avançadas de edição estão disponíveis?
O IronPDF oferece recursos avançados de edição que vão além das modificações básicas. Isso inclui adicionar cabeçalhos e rodapés , personalizar o layout da página e incorporar imagens e fontes . Essas funcionalidades permitem a geração e personalização dinâmica de PDFs para atender a requisitos específicos de cada aplicação.
using IronPdf;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate a PDF renderer
var renderer = new IronPdf.ChromePdfRenderer();
// Define multi-page HTML content with page breaks
var multiPageHtml = @"
<p> This is 1st Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 2nd Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 3rd Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 4th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 5th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 6th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 7th Page</p>";
// Render the HTML content as a PDF
var pdfDoc = renderer.RenderHtmlAsPdf(multiPageHtml);
// Create a header for the first page only
var firstPageHeader = new HtmlHeaderFooter();
firstPageHeader.HtmlFragment = "This is the First Page Header";
pdfDoc.AddHtmlHeaders(firstPageHeader, 1);
// Save the resulting PDF with headers to a file
pdfDoc.SaveAs("PagesWithHeaders.pdf");
using IronPdf;
// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";
// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate a PDF renderer
var renderer = new IronPdf.ChromePdfRenderer();
// Define multi-page HTML content with page breaks
var multiPageHtml = @"
<p> This is 1st Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 2nd Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 3rd Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 4th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 5th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 6th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 7th Page</p>";
// Render the HTML content as a PDF
var pdfDoc = renderer.RenderHtmlAsPdf(multiPageHtml);
// Create a header for the first page only
var firstPageHeader = new HtmlHeaderFooter();
firstPageHeader.HtmlFragment = "This is the First Page Header";
pdfDoc.AddHtmlHeaders(firstPageHeader, 1);
// Save the resulting PDF with headers to a file
pdfDoc.SaveAs("PagesWithHeaders.pdf");
Imports IronPdf
' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"
' Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Instantiate a PDF renderer
Dim renderer = New IronPdf.ChromePdfRenderer()
' Define multi-page HTML content with page breaks
Dim multiPageHtml = "
<p> This is 1st Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 2nd Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 3rd Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 4th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 5th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 6th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 7th Page</p>"
' Render the HTML content as a PDF
Dim pdfDoc = renderer.RenderHtmlAsPdf(multiPageHtml)
' Create a header for the first page only
Dim firstPageHeader = New HtmlHeaderFooter()
firstPageHeader.HtmlFragment = "This is the First Page Header"
pdfDoc.AddHtmlHeaders(firstPageHeader, 1)
' Save the resulting PDF with headers to a file
pdfDoc.SaveAs("PagesWithHeaders.pdf")

Quais são os recursos avançados oferecidos pelo Apryse C#?
Como adiciono anotações e marcação?
O Apryse C# permite adicionar anotações e marcações a documentos PDF de forma programática. Isso inclui anotações de texto, destaques, sublinhados e formas — essenciais para processos de revisão de documentos ou para adicionar informações complementares.
using pdftron;
using pdftron.PDF;
using pdftron.SDF;
class Program
{
static void Main()
{
// Initialize the PDFNet library with your license key
PDFNet.Initialize("License");
// Open an existing PDF document
using (PDFDoc doc = new PDFDoc("input.pdf"))
{
// Access the first page of the document
Page page = doc.GetPage(1);
// Create a text annotation on the document
Text txt = Text.Create(doc, new Rect(10, 20, 30, 40));
txt.SetIcon("UserIcon");
txt.SetContents("It's an annotation!");
page.AnnotPushBack(txt);
// Save the modified document
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
}
using pdftron;
using pdftron.PDF;
using pdftron.SDF;
class Program
{
static void Main()
{
// Initialize the PDFNet library with your license key
PDFNet.Initialize("License");
// Open an existing PDF document
using (PDFDoc doc = new PDFDoc("input.pdf"))
{
// Access the first page of the document
Page page = doc.GetPage(1);
// Create a text annotation on the document
Text txt = Text.Create(doc, new Rect(10, 20, 30, 40));
txt.SetIcon("UserIcon");
txt.SetContents("It's an annotation!");
page.AnnotPushBack(txt);
// Save the modified document
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
}
Imports pdftron
Imports pdftron.PDF
Imports pdftron.SDF
Friend Class Program
Shared Sub Main()
' Initialize the PDFNet library with your license key
PDFNet.Initialize("License")
' Open an existing PDF document
Using doc As New PDFDoc("input.pdf")
' Access the first page of the document
Dim page As Page = doc.GetPage(1)
' Create a text annotation on the document
Dim txt As Text = Text.Create(doc, New Rect(10, 20, 30, 40))
txt.SetIcon("UserIcon")
txt.SetContents("It's an annotation!")
page.AnnotPushBack(txt)
' Save the modified document
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized)
End Using
End Sub
End Class

Como faço para converter documentos para PDF?
O Apryse C# permite a conversão de diversos formatos de documentos para PDF, incluindo documentos do Office , imagens e HTML. Essa funcionalidade garante formatos de documento uniformes para arquivamento, compartilhamento ou exibição.
using pdftron;
using pdftron.PDF;
class Program
{
static void Main()
{
// Initialize the PDFNet library
PDFNet.Initialize();
// Create a new PDF document
PDFDoc pdfdoc = new PDFDoc();
// Convert a Word document to PDF and add it to the PDF document
Convert.ToPdf(pdfdoc, "input.docx");
// Save the newly created PDF document
pdfdoc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
using pdftron;
using pdftron.PDF;
class Program
{
static void Main()
{
// Initialize the PDFNet library
PDFNet.Initialize();
// Create a new PDF document
PDFDoc pdfdoc = new PDFDoc();
// Convert a Word document to PDF and add it to the PDF document
Convert.ToPdf(pdfdoc, "input.docx");
// Save the newly created PDF document
pdfdoc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
Imports pdftron
Imports pdftron.PDF
Friend Class Program
Shared Sub Main()
' Initialize the PDFNet library
PDFNet.Initialize()
' Create a new PDF document
Dim pdfdoc As New PDFDoc()
' Convert a Word document to PDF and add it to the PDF document
Convert.ToPdf(pdfdoc, "input.docx")
' Save the newly created PDF document
pdfdoc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized)
End Sub
End Class
Como extrair conteúdo de PDFs?
O Apryse C# se destaca na extração de texto, imagens e outros conteúdos de documentos PDF. Essa funcionalidade oferece suporte a aplicações de análise de conteúdo, extração de dados e recuperação de informações, permitindo o processamento eficiente do conteúdo de PDFs.
using pdftron;
using pdftron.PDF;
using pdftron.SDF;
class Program
{
static void Main()
{
// Initialize the PDFNet library
PDFNet.Initialize();
// Open an existing PDF document
using (PDFDoc doc = new PDFDoc("input.pdf"))
{
// Iterate through each page of the document
PageIterator itr = doc.GetPageIterator();
for (; itr.HasNext(); itr.Next())
{
Page page = itr.Current();
// Extract text from the page
TextExtractor txt = new TextExtractor();
txt.Begin(page);
// Print the extracted text to the console
Console.WriteLine(txt.GetAsText());
}
}
}
}
using pdftron;
using pdftron.PDF;
using pdftron.SDF;
class Program
{
static void Main()
{
// Initialize the PDFNet library
PDFNet.Initialize();
// Open an existing PDF document
using (PDFDoc doc = new PDFDoc("input.pdf"))
{
// Iterate through each page of the document
PageIterator itr = doc.GetPageIterator();
for (; itr.HasNext(); itr.Next())
{
Page page = itr.Current();
// Extract text from the page
TextExtractor txt = new TextExtractor();
txt.Begin(page);
// Print the extracted text to the console
Console.WriteLine(txt.GetAsText());
}
}
}
}
Imports pdftron
Imports pdftron.PDF
Imports pdftron.SDF
Friend Class Program
Shared Sub Main()
' Initialize the PDFNet library
PDFNet.Initialize()
' Open an existing PDF document
Using doc As New PDFDoc("input.pdf")
' Iterate through each page of the document
Dim itr As PageIterator = doc.GetPageIterator()
Do While itr.HasNext()
Dim page As Page = itr.Current()
' Extract text from the page
Dim txt As New TextExtractor()
txt.Begin(page)
' Print the extracted text to the console
Console.WriteLine(txt.GetAsText())
itr.Next()
Loop
End Using
End Sub
End Class

Como posso proteger PDFs com o Apryse?
Apryse C# fornece ferramentas completas para proteger documentos PDF . Você pode aplicar proteção por senha, criptografar documentos e gerenciar permissões de usuário para proteger informações confidenciais.
using pdftron;
using pdftron.SDF;
using pdftron.PDF;
class Program
{
static void Main()
{
// Initialize the PDFNet library
PDFNet.Initialize();
// Open an existing PDF document
using (PDFDoc doc = new PDFDoc("input.pdf"))
{
// Initialize the security handler
doc.InitSecurityHandler();
// Create a new security handler
SecurityHandler newHandler = new SecurityHandler();
// Set the user password for the document
newHandler.ChangeUserPassword("new_password");
// Grant permission to print the document
newHandler.SetPermission(SecurityHandler.Permission.e_print, true);
// Apply the security handler to the document
doc.SetSecurityHandler(newHandler);
// Save the secured document
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
}
using pdftron;
using pdftron.SDF;
using pdftron.PDF;
class Program
{
static void Main()
{
// Initialize the PDFNet library
PDFNet.Initialize();
// Open an existing PDF document
using (PDFDoc doc = new PDFDoc("input.pdf"))
{
// Initialize the security handler
doc.InitSecurityHandler();
// Create a new security handler
SecurityHandler newHandler = new SecurityHandler();
// Set the user password for the document
newHandler.ChangeUserPassword("new_password");
// Grant permission to print the document
newHandler.SetPermission(SecurityHandler.Permission.e_print, true);
// Apply the security handler to the document
doc.SetSecurityHandler(newHandler);
// Save the secured document
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
}
Imports pdftron
Imports pdftron.SDF
Imports pdftron.PDF
Friend Class Program
Shared Sub Main()
' Initialize the PDFNet library
PDFNet.Initialize()
' Open an existing PDF document
Using doc As New PDFDoc("input.pdf")
' Initialize the security handler
doc.InitSecurityHandler()
' Create a new security handler
Dim newHandler As New SecurityHandler()
' Set the user password for the document
newHandler.ChangeUserPassword("new_password")
' Grant permission to print the document
newHandler.SetPermission(SecurityHandler.Permission.e_print, True)
' Apply the security handler to the document
doc.SetSecurityHandler(newHandler)
' Save the secured document
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized)
End Using
End Sub
End Class
Como faço para ocultar informações confidenciais?
O Apryse C# oferece suporte à redação de informações confidenciais em documentos PDF — essencial para conformidade e privacidade. Essa funcionalidade permite a remoção ou ocultação permanente de texto e imagens em arquivos PDF.
using pdftron;
using pdftron.PDF;
using pdftron.SDF;
class Program
{
static void Main()
{
// Initialize the PDFNet library
PDFNet.Initialize();
// Open an existing PDF document
using (PDFDoc doc = new PDFDoc("input.pdf"))
{
// Define redaction areas on specific pages
Redactor.Redaction[] redactions = {
new Redactor.Redaction(1, new Rect(100, 100, 200, 200), false, "redacted"),
};
// Apply redactions to the document
Redactor.Redact(doc, redactions);
// Save the redacted document
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
}
using pdftron;
using pdftron.PDF;
using pdftron.SDF;
class Program
{
static void Main()
{
// Initialize the PDFNet library
PDFNet.Initialize();
// Open an existing PDF document
using (PDFDoc doc = new PDFDoc("input.pdf"))
{
// Define redaction areas on specific pages
Redactor.Redaction[] redactions = {
new Redactor.Redaction(1, new Rect(100, 100, 200, 200), false, "redacted"),
};
// Apply redactions to the document
Redactor.Redact(doc, redactions);
// Save the redacted document
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
}
Imports pdftron
Imports pdftron.PDF
Imports pdftron.SDF
Friend Class Program
Shared Sub Main()
' Initialize the PDFNet library
PDFNet.Initialize()
' Open an existing PDF document
Using doc As New PDFDoc("input.pdf")
' Define redaction areas on specific pages
Dim redactions() As Redactor.Redaction = { New Redactor.Redaction(1, New Rect(100, 100, 200, 200), False, "redacted")}
' Apply redactions to the document
Redactor.Redact(doc, redactions)
' Save the redacted document
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized)
End Using
End Sub
End Class
Que documentação e suporte estão disponíveis?
Que tipo de suporte o IronPDF oferece?
Documentação: O IronPDF oferece documentação completa que abrange desde guias de primeiros passos até recursos avançados como conversão de HTML para PDF , edição de PDF , mesclagem , divisão e segurança . A documentação fornece conteúdo fácil de seguir, com exemplos de código abrangentes e explicações que o guiarão na implementação de várias funcionalidades de PDF.
Suporte: A IronPDF oferece assistência por meio de diversos canais, incluindo suporte por e-mail, abertura de chamados e chat ao vivo com a equipe de engenharia, onde você pode entrar em contato com eles para resolver problemas específicos. Sua candidatura pode se beneficiar imediatamente do sistema de feedback deles.

Que tipo de suporte o Apryse C# oferece?
Documentação: O Apryse C# (anteriormente PDFTron for .NET) fornece documentação detalhada, incluindo uma referência completa da API, guias do desenvolvedor e exemplos de código para diversas tarefas de manipulação de PDF.
Suporte: A Apryse oferece suporte ao desenvolvedor por meio de comunicação direta por e-mail com sua equipe técnica para solução de problemas e dúvidas de implementação. Você também pode fazer perguntas no Stack Overflow.
Quais são as opções de licença e os respectivos preços?
Quais são as opções de licença do IronPDF?
O IronPDF oferece diversas opções de licenciamento adaptadas às diferentes necessidades de cada projeto. Os preços começam em $799 para uma licença Lite. Essas licenças variam de acordo com o número de desenvolvedores, locais e projetos abrangidos. A IronPDF também oferece opções de redistribuição isentas de royalties e suporte estendido com preços específicos para complementos.
As opções de licença perpétua do IronPDF incluem:
- Edição Lite: Custa $799, adequada para 1 desenvolvedor, 1 local e 1 projeto, com suporte por e-mail incluído.
- Edição Plus: Com preço de $1,199, cobre até 3 desenvolvedores, 3 locais e 3 projetos, com suporte por e-mail e chat 24 horas e suporte por telefone.
- Edição Profissional: Na $2,399, esta edição é para até 10 desenvolvedores, 10 locais e 10 projetos, oferecendo suporte abrangente, incluindo suporte por e-mail, chat, telefone e compartilhamento de tela.
Eles também oferecem uma assinatura mensal de US$ 500, que inclui 10.000 chamadas de API, com chamadas adicionais a US$ 0,02 cada. Para uso ilimitado, o IronPDF oferece uma solução empresarial com preços sob consulta. Esta solução inclui licenciamento perpétuo ilimitado e chamadas de API, entre outros recursos.

Quais são as opções de licença do Apryse C#?
O Apryse C# oferece preços personalizáveis com base em requisitos específicos do projeto, incluindo recursos, volume de documentos e cenários de implantação. Você deve entrar em contato com a equipe de vendas deles para obter informações sobre preços do Apryse .

Qual biblioteca de PDFs devo escolher?
Tanto o IronPDF quanto o Apryse C# oferecem recursos eficazes para desenvolvedores .NET que trabalham com PDFs. O IronPDF oferece uma vantagem com seus amplos recursos de manipulação de PDF. Ele se destaca por suas funcionalidades completas, incluindo edição avançada e fusão de PDFs usando o IronPDF . O pacote Iron Suite oferece acesso a diversas ferramentas a um preço acessível, equipando seu projeto com utilitários confiáveis para várias necessidades.
O IronPDF se destaca por sua versatilidade e excelente custo-benefício na maioria dos cenários de processamento de PDF. Sua decisão final deve estar alinhada com os requisitos do seu projeto e com as funcionalidades específicas necessárias para o seu desenvolvimento.
Perguntas frequentes
Quais são as principais diferenças entre o IronPDF e o Apryse C# para manipulação de PDFs?
O IronPDF é conhecido por sua integração perfeita com o .NET e por seus recursos avançados em conversão de HTML para PDF, manipulação de formulários e segurança. O Apryse C#, anteriormente conhecido como PDFTron SDK, concentra-se na extração de conteúdo e conversão de documentos, oferecendo recursos avançados como anotações e redação.
Como posso converter HTML para PDF em uma aplicação .NET?
Você pode usar o método RenderHtmlAsPdf da biblioteca IronPDF para converter strings HTML diretamente em documentos PDF. Isso é útil para gerar PDFs a partir de conteúdo da web ou modelos HTML.
Quais são os passos para instalar o IronPDF em um projeto .NET?
O IronPDF pode ser facilmente instalado usando o gerenciador de pacotes NuGet no Visual Studio. Você também pode usar o Console do Gerenciador de Pacotes para executar o comando Install-Package IronPDF ou baixá-lo diretamente do site do NuGet.
Como o IronPDF lida com a segurança e criptografia de PDFs?
O IronPDF oferece opções de segurança abrangentes, incluindo a capacidade de criptografar documentos, definir permissões de usuário e gerenciar assinaturas digitais. Isso garante que os PDFs estejam protegidos e em conformidade com os padrões de segurança.
Quais recursos avançados de edição de PDF o IronPDF oferece?
O IronPDF oferece suporte a uma variedade de recursos avançados de edição, incluindo a capacidade de mesclar e dividir documentos, adicionar marcas d'água e personalizar cabeçalhos e rodapés. Ele também fornece opções de personalização de layout para a criação de documentos mais personalizados.
Que tipo de suporte e recursos estão disponíveis para usuários do IronPDF?
O IronPDF oferece documentação completa, suporte por e-mail, suporte por tickets e chat ao vivo com engenheiros para auxiliar os desenvolvedores na implementação e na resolução de problemas. Isso garante que os usuários tenham os recursos necessários para manipular PDFs com eficiência.
Quais são as opções de licenciamento disponíveis para o IronPDF?
O IronPDF oferece diversas opções de licenciamento, incluindo as licenças Lite, Plus e Professional, que atendem a diferentes níveis de suporte e necessidades de desenvolvedores. Um modelo de assinatura mensal e soluções corporativas também estão disponíveis para uso mais amplo.
Como posso extrair texto de um PDF usando Apryse C#?
O Apryse C# oferece recursos robustos de extração de texto, permitindo que os desenvolvedores extraiam conteúdo de PDFs programaticamente. Esse recurso é essencial para aplicações que exigem análise de dados ou manipulação de conteúdo.
Quais formatos de documento o Apryse C# consegue converter para PDF?
O Apryse C# suporta a conversão de diversos formatos de documentos, incluindo documentos do Office, imagens e arquivos HTML, em PDFs. Esse recurso é crucial para manter a consistência na apresentação de documentos em diferentes plataformas.
Quais são os principais recursos do IronPDF para desenvolvedores .NET?
O IronPDF é conhecido por seus recursos avançados, como conversão de HTML para PDF, gerenciamento abrangente de formulários e segurança de documentos. É elogiado por seu desempenho, escalabilidade e integração perfeita com o .NET, tornando-o ideal para uma ampla gama de cenários de processamento de PDF.



