Ir para o conteúdo do rodapé
COMPARAçãO DE PRODUTOS

Uma comparação entre IronPDF e PDFreactor

Os arquivos PDF (Portable Document Format) são parte integrante de muitos ambientes de trabalho diferentes e são frequentemente essenciais para tarefas como a emissão de faturas ou a preparação de documentação de produtos. No entanto, atualmente existem muitas ferramentas de PDF diferentes disponíveis no mercado, então como saber qual é a mais adequada para você? Hoje, vamos comparar os recursos, o suporte e os modelos de licenciamento das bibliotecas de PDF: PDFreactor e IronPDF .

Uma visão geral do IronPDF e do PDFreator

IronPDF é uma biblioteca .NET robusta, projetada para ser uma solução abrangente para todas as tarefas relacionadas a PDF dentro do ecossistema .NET . Ele suporta HTML, CSS, JavaScript e vários formatos de imagem, tornando-o altamente adaptável para aplicações baseadas na web. Com uma ampla gama de recursos, incluindo geração, edição, assinatura e criptografia de PDFs, além de integração completa com as modernas estruturas .NET , o IronPDF é uma solução completa para desenvolvedores .NET .

O PDFreactor, por outro lado, é um conversor de HTML para PDF de nível profissional que se destaca na geração de PDFs de alta qualidade prontos para impressão, frequentemente usado para converter documentos como documentos com dados, relatórios ou planilhas técnicas. É particularmente eficaz no processamento de CSS e JavaScript complexos, garantindo que os PDFs resultantes sejam fiéis ao conteúdo original da web. É muito apreciado por sua capacidade de lidar com layouts e estilos complexos com facilidade, tornando-o adequado para editoras e outros setores que exigem controle preciso sobre a saída em PDF.

Compatibilidade entre plataformas

IronPDF:

O IronPDF é compatível com uma ampla variedade de plataformas, garantindo que você possa trabalhar no ambiente de sua preferência. Segue abaixo um resumo da sua compatibilidade:

  • Versões do .NET :

    • C#, VB .NET, F#
    • .NET Core (8, 7, 6, 5 e 3.1+)
    • .NET Standard (2.0+)
    • .NET Framework (4.6.2 ou superior)
  • Ambientes de aplicação: O IronPDF funciona em ambientes como Windows, Linux, Mac, Docker, Azure e AWS.

  • IDEs: Funciona com IDEs como Microsoft Visual Studio e JetBrains Rider & ReSharper.

  • Sistemas Operacionais e Processadores: Suporta diversos sistemas operacionais e processadores, incluindo Windows, Mac, Linux, x64, x86 e ARM.

Para obter mais informações, visite a página de Compatibilidade com o IronPDF .

PDFreactor

  • Versões do .NET :

    • .NET Core 2.1+
    • .NET Framework 4.5+
  • Suporta: HTML5, CSS3, JavaScript, Java, Python, Imagem Docker, Node.js e muito mais.

  • Sistemas operacionais: Funciona nos sistemas operacionais Windows, Linux e macOS, bem como em sistemas baseados em nuvem, como AWS e Azure.

Comparação dos principais recursos: funcionalidade de PDF no IronPDF vs. PDFreactor

Funcionalidades do IronPDF

  • Conversão de HTML para PDF: O IronPDF consegue converter HTML para PDF e, com seu suporte completo aos padrões da web modernos, você tem a garantia de que o IronPDF sempre retornará PDFs perfeitos em termos de qualidade de imagem a partir do seu conteúdo HTML.

  • Conversão de arquivos PDF: Precisa converter arquivos de formatos diferentes de HTML para PDF? O IronPDF suporta a conversão de diversos formatos de arquivo, incluindo: Converta DOCX para PDF, RTF para PDF, Imagem para PDF, URL para PDF e até mesmo PDF para HTML, mantendo a estrutura desejada do documento.

  • Recursos de segurança: Com o IronPDF, você sempre pode ter certeza de que seus arquivos PDF confidenciais estão seguros graças aos seus recursos de segurança. Use o IronPDF para criptografar seus arquivos PDF, definir senhas e permissões para seus arquivos PDF.

  • Recursos de edição de PDF: Com o IronPDF , você pode editar arquivos PDF com facilidade. O IronPDF oferece recursos de edição como adicionar cabeçalhos e rodapés, inserir texto e imagens nas páginas do PDF, adicionar marcas d'água personalizadas ao PDF, trabalhar com formulários em PDF e mesclar arquivos PDF.

Para obter informações detalhadas sobre os recursos oferecidos pelo IronPDF, visite a página de Recursos do IronPDF .

Funcionalidades do PDFreactor

  • Conversão de HTML para PDF: O serviço web PDFreactor é especializado na conversão de HTML para PDF no lado do servidor, normalmente utilizado na conversão de documentos dinâmicos baseados em dados (como faturas, formulários, relatórios, etc.) e para distribuição eletrônica de PDFs complexos e de alta qualidade.

  • Suporte interativo: Graças ao suporte a JavaScript, o PDFreactor permite incorporar elementos interativos, como botões e formulários, que podem manter sua funcionalidade dentro do PDF.

  • Design de layout avançado: O PDFreactor oferece recursos avançados de layout e design, como controle sobre o layout da página, suporte a várias colunas, adição de elementos ao PDF, dimensionamento e transformação de elementos, adição de cabeçalhos e rodapés, além de tamanhos e orientações de página personalizáveis.

Compatibilidade com Bootstrap e frameworks CSS modernos

Ao gerar PDFs a partir de aplicações web modernas, o suporte aos frameworks Bootstrap e CSS é essencial. A capacidade de converter páginas da web com estilo Bootstrap diretamente para PDF sem modificar o código garante a consistência do design e reduz significativamente o tempo de desenvolvimento.

IronPDF: Suporte completo para Bootstrap e frameworks CSS

Bootstrap 5: Mecanismo completo de layout flexbox, CSS Grid, classes utilitárias e todos os sistemas de componentes.

  • Bootstrap 4: Componentes de cartão completos, elementos de navegação, utilitários flexíveis e pontos de interrupção responsivos
  • Tailwind CSS: Todas as classes utilitárias são renderizadas com precisão no navegador.
  • Foundation: Suporte completo para sistema de grid e biblioteca de componentes CSS3 moderno: Flexbox, CSS Grid, propriedades personalizadas, animações, transições e transformações.

Validação no mundo real: o IronPDF renderiza com sucesso a página inicial do Bootstrap e todos os exemplos oficiais com precisão perfeita em cada pixel.

Exemplo de código: Painel de rastreamento de pedidos

using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

var renderer = new ChromePdfRenderer();
string bootstrapTracking = @"
<!DOCTYPE html>
<html>
<head>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
    <div class='container my-5'>
        <h1 class='mb-4'>Order Tracking - #ORD-2025-0428</h1>

        <div class='row g-4 mb-4'>
            <div class='col-md-4'>
                <div class='card text-center bg-primary text-white h-100'>
                    <div class='card-body'>
                        <h3>Order Placed</h3>
                        <p class='mb-0'>April 20, 2025</p>
                    </div>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='card text-center bg-info text-white h-100'>
                    <div class='card-body'>
                        <h3>Processing</h3>
                        <p class='mb-0'>April 21, 2025</p>
                    </div>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='card text-center bg-light h-100'>
                    <div class='card-body'>
                        <h3 class='text-muted'>Delivered</h3>
                        <p class='mb-0 text-muted'>Est. April 25, 2025</p>
                    </div>
                </div>
            </div>
        </div>

        <div class='card shadow-sm mb-4'>
            <div class='card-header bg-white'>
                <h5 class='mb-0'>Shipping Timeline</h5>
            </div>
            <div class='card-body'>
                <ul class='list-group list-group-flush'>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-success me-3'>✓</span>
                        <div class='flex-grow-1'>
                            <strong>Order Confirmed</strong>
                            <p class='mb-0 text-muted'>April 20, 2025 at 2:30 PM</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-success me-3'>✓</span>
                        <div class='flex-grow-1'>
                            <strong>Payment Processed</strong>
                            <p class='mb-0 text-muted'>April 20, 2025 at 2:35 PM</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-success me-3'>✓</span>
                        <div class='flex-grow-1'>
                            <strong>Order Shipped</strong>
                            <p class='mb-0 text-muted'>April 21, 2025 at 9:00 AM</p>
                            <small class='text-muted'>Tracking: TRK-9876543210</small>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-primary me-3'>→</span>
                        <div class='flex-grow-1'>
                            <strong>In Transit</strong>
                            <p class='mb-0 text-primary'>Currently en route to delivery location</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-secondary me-3'>○</span>
                        <div class='flex-grow-1'>
                            <strong>Out for Delivery</strong>
                            <p class='mb-0 text-muted'>Pending</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-secondary me-3'>○</span>
                        <div class='flex-grow-1'>
                            <strong>Delivered</strong>
                            <p class='mb-0 text-muted'>Est. April 25, 2025</p>
                        </div>
                    </li>
                </ul>
            </div>
        </div>

        <div class='card shadow-sm'>
            <div class='card-header bg-primary text-white'>
                <h5 class='mb-0'>Order Details</h5>
            </div>
            <div class='card-body'>
                <div class='table-responsive'>
                    <table class='table mb-0'>
                        <thead class='table-light'>
                            <tr>
                                <th>Item</th>
                                <th>Quantity</th>
                                <th class='text-end'>Price</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td><strong>Premium Widget Pro</strong></td>
                                <td>2</td>
                                <td class='text-end'>$199.98</td>
                            </tr>
                            <tr>
                                <td><strong>Standard Gadget</strong></td>
                                <td>1</td>
                                <td class='text-end'>$49.99</td>
                            </tr>
                            <tr>
                                <td colspan='2'><strong>Subtotal</strong></td>
                                <td class='text-end'><strong>$249.97</strong></td>
                            </tr>
                            <tr>
                                <td colspan='2'>Shipping</td>
                                <td class='text-end'>$12.50</td>
                            </tr>
                            <tr class='table-primary'>
                                <td colspan='2'><strong>Total</strong></td>
                                <td class='text-end'><strong>$262.47</strong></td>
                            </tr>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapTracking);
pdf.SaveAs("order-tracking.pdf");
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

var renderer = new ChromePdfRenderer();
string bootstrapTracking = @"
<!DOCTYPE html>
<html>
<head>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
    <div class='container my-5'>
        <h1 class='mb-4'>Order Tracking - #ORD-2025-0428</h1>

        <div class='row g-4 mb-4'>
            <div class='col-md-4'>
                <div class='card text-center bg-primary text-white h-100'>
                    <div class='card-body'>
                        <h3>Order Placed</h3>
                        <p class='mb-0'>April 20, 2025</p>
                    </div>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='card text-center bg-info text-white h-100'>
                    <div class='card-body'>
                        <h3>Processing</h3>
                        <p class='mb-0'>April 21, 2025</p>
                    </div>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='card text-center bg-light h-100'>
                    <div class='card-body'>
                        <h3 class='text-muted'>Delivered</h3>
                        <p class='mb-0 text-muted'>Est. April 25, 2025</p>
                    </div>
                </div>
            </div>
        </div>

        <div class='card shadow-sm mb-4'>
            <div class='card-header bg-white'>
                <h5 class='mb-0'>Shipping Timeline</h5>
            </div>
            <div class='card-body'>
                <ul class='list-group list-group-flush'>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-success me-3'>✓</span>
                        <div class='flex-grow-1'>
                            <strong>Order Confirmed</strong>
                            <p class='mb-0 text-muted'>April 20, 2025 at 2:30 PM</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-success me-3'>✓</span>
                        <div class='flex-grow-1'>
                            <strong>Payment Processed</strong>
                            <p class='mb-0 text-muted'>April 20, 2025 at 2:35 PM</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-success me-3'>✓</span>
                        <div class='flex-grow-1'>
                            <strong>Order Shipped</strong>
                            <p class='mb-0 text-muted'>April 21, 2025 at 9:00 AM</p>
                            <small class='text-muted'>Tracking: TRK-9876543210</small>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-primary me-3'>→</span>
                        <div class='flex-grow-1'>
                            <strong>In Transit</strong>
                            <p class='mb-0 text-primary'>Currently en route to delivery location</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-secondary me-3'>○</span>
                        <div class='flex-grow-1'>
                            <strong>Out for Delivery</strong>
                            <p class='mb-0 text-muted'>Pending</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-secondary me-3'>○</span>
                        <div class='flex-grow-1'>
                            <strong>Delivered</strong>
                            <p class='mb-0 text-muted'>Est. April 25, 2025</p>
                        </div>
                    </li>
                </ul>
            </div>
        </div>

        <div class='card shadow-sm'>
            <div class='card-header bg-primary text-white'>
                <h5 class='mb-0'>Order Details</h5>
            </div>
            <div class='card-body'>
                <div class='table-responsive'>
                    <table class='table mb-0'>
                        <thead class='table-light'>
                            <tr>
                                <th>Item</th>
                                <th>Quantity</th>
                                <th class='text-end'>Price</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td><strong>Premium Widget Pro</strong></td>
                                <td>2</td>
                                <td class='text-end'>$199.98</td>
                            </tr>
                            <tr>
                                <td><strong>Standard Gadget</strong></td>
                                <td>1</td>
                                <td class='text-end'>$49.99</td>
                            </tr>
                            <tr>
                                <td colspan='2'><strong>Subtotal</strong></td>
                                <td class='text-end'><strong>$249.97</strong></td>
                            </tr>
                            <tr>
                                <td colspan='2'>Shipping</td>
                                <td class='text-end'>$12.50</td>
                            </tr>
                            <tr class='table-primary'>
                                <td colspan='2'><strong>Total</strong></td>
                                <td class='text-end'><strong>$262.47</strong></td>
                            </tr>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapTracking);
pdf.SaveAs("order-tracking.pdf");
Imports IronPdf

' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"

Dim renderer As New ChromePdfRenderer()
Dim bootstrapTracking As String = "
<!DOCTYPE html>
<html>
<head>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
    <div class='container my-5'>
        <h1 class='mb-4'>Order Tracking - #ORD-2025-0428</h1>

        <div class='row g-4 mb-4'>
            <div class='col-md-4'>
                <div class='card text-center bg-primary text-white h-100'>
                    <div class='card-body'>
                        <h3>Order Placed</h3>
                        <p class='mb-0'>April 20, 2025</p>
                    </div>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='card text-center bg-info text-white h-100'>
                    <div class='card-body'>
                        <h3>Processing</h3>
                        <p class='mb-0'>April 21, 2025</p>
                    </div>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='card text-center bg-light h-100'>
                    <div class='card-body'>
                        <h3 class='text-muted'>Delivered</h3>
                        <p class='mb-0 text-muted'>Est. April 25, 2025</p>
                    </div>
                </div>
            </div>
        </div>

        <div class='card shadow-sm mb-4'>
            <div class='card-header bg-white'>
                <h5 class='mb-0'>Shipping Timeline</h5>
            </div>
            <div class='card-body'>
                <ul class='list-group list-group-flush'>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-success me-3'>✓</span>
                        <div class='flex-grow-1'>
                            <strong>Order Confirmed</strong>
                            <p class='mb-0 text-muted'>April 20, 2025 at 2:30 PM</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-success me-3'>✓</span>
                        <div class='flex-grow-1'>
                            <strong>Payment Processed</strong>
                            <p class='mb-0 text-muted'>April 20, 2025 at 2:35 PM</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-success me-3'>✓</span>
                        <div class='flex-grow-1'>
                            <strong>Order Shipped</strong>
                            <p class='mb-0 text-muted'>April 21, 2025 at 9:00 AM</p>
                            <small class='text-muted'>Tracking: TRK-9876543210</small>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-primary me-3'>→</span>
                        <div class='flex-grow-1'>
                            <strong>In Transit</strong>
                            <p class='mb-0 text-primary'>Currently en route to delivery location</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-secondary me-3'>○</span>
                        <div class='flex-grow-1'>
                            <strong>Out for Delivery</strong>
                            <p class='mb-0 text-muted'>Pending</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-secondary me-3'>○</span>
                        <div class='flex-grow-1'>
                            <strong>Delivered</strong>
                            <p class='mb-0 text-muted'>Est. April 25, 2025</p>
                        </div>
                    </li>
                </ul>
            </div>
        </div>

        <div class='card shadow-sm'>
            <div class='card-header bg-primary text-white'>
                <h5 class='mb-0'>Order Details</h5>
            </div>
            <div class='card-body'>
                <div class='table-responsive'>
                    <table class='table mb-0'>
                        <thead class='table-light'>
                            <tr>
                                <th>Item</th>
                                <th>Quantity</th>
                                <th class='text-end'>Price</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td><strong>Premium Widget Pro</strong></td>
                                <td>2</td>
                                <td class='text-end'>$199.98</td>
                            </tr>
                            <tr>
                                <td><strong>Standard Gadget</strong></td>
                                <td>1</td>
                                <td class='text-end'>$49.99</td>
                            </tr>
                            <tr>
                                <td colspan='2'><strong>Subtotal</strong></td>
                                <td class='text-end'><strong>$249.97</strong></td>
                            </tr>
                            <tr>
                                <td colspan='2'>Shipping</td>
                                <td class='text-end'>$12.50</td>
                            </tr>
                            <tr class='table-primary'>
                                <td colspan='2'><strong>Total</strong></td>
                                <td class='text-end'><strong>$262.47</strong></td>
                            </tr>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</body>
</html>"

Dim pdf = renderer.RenderHtmlAsPdf(bootstrapTracking)
pdf.SaveAs("order-tracking.pdf")
$vbLabelText   $csharpLabel

Resultado: PDF profissional para rastreamento de pedidos com o sistema de grade do Bootstrap 5, componentes de cartão, emblemas, grupos de listas, tabelas responsivas e layouts flexbox — tudo renderizado com precisão de cores e espaçamento perfeitos.

PDFreactor: Bom suporte ao Bootstrap com dependência Java

O PDFreactor utiliza o mecanismo Prince XML, que oferece um sólido suporte ao Bootstrap, mas apresenta algumas considerações arquiteturais:

  • Bom suporte ao Bootstrap 4/5: o Prince XML lida razoavelmente bem com frameworks modernos.
  • Requisito do Java: O PDFreactor é executado em Java, o que aumenta a complexidade de implantação para aplicativos .NET.
  • Arquitetura baseada em servidor: Requer infraestrutura de servidor dedicada
  • Modelo de licenciamento: Licenciamento por servidor em vez de por desenvolvedor

Impacto no desenvolvimento: Embora o PDFreactor lide com o Bootstrap de forma eficaz, a dependência do Java e os requisitos do servidor adicionam complexidade operacional para as equipes .NET , exigindo gerenciamento adicional de infraestrutura e coordenação entre plataformas.

Para obter orientações completas sobre o framework Bootstrap e os recursos de renderização CSS3, consulte o Guia de CSS do Bootstrap e Flexbox .

Comparação das principais funcionalidades entre IronPDF e PDFreactor

Agora, vamos analisar mais de perto alguns casos de uso comuns que você pode encontrar ao trabalhar com arquivos PDF. Nesta seção, analisaremos esses casos de uso e compararemos como o IronPDF e o PDFreactor os gerenciam.

Conversão de HTML para PDF

IronPDF:

using IronPdf;

// Enable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external html assets: images, CSS and JavaScript.
// An optional BasePath 'c:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"c:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
using IronPdf;

// Enable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external html assets: images, CSS and JavaScript.
// An optional BasePath 'c:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"c:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Imports IronPdf

' Enable local disk access or cross-origin requests
Installation.EnableWebSecurity = True

' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()

' Create a PDF from an HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")

' Export to a file or Stream
pdf.SaveAs("output.pdf")

' Advanced Example with HTML Assets
' Load external html assets: images, CSS and JavaScript.
' An optional BasePath 'c:\site\assets\' is set as the file location to load assets from
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "c:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
$vbLabelText   $csharpLabel

PDFreactor:

using System.IO;
using RealObjects.PDFreactor.Webservice.Client;

PDFreactor pdfReactor = new PDFreactor("https://cloud.pdfreactor.com/service/rest") {
    Timeout = 0
};
var config = new Configuration
{
    Document = "http://www.pdfreactor.com/product/samples/textbook/textbook.html"
};

Result data = pdfReactor.Convert(config);
BinaryWriter binWriter = new BinaryWriter(new FileStream("test.pdf",
    FileMode.Create,
    FileAccess.Write));
binWriter.Write(data.Document);
binWriter.Close();
using System.IO;
using RealObjects.PDFreactor.Webservice.Client;

PDFreactor pdfReactor = new PDFreactor("https://cloud.pdfreactor.com/service/rest") {
    Timeout = 0
};
var config = new Configuration
{
    Document = "http://www.pdfreactor.com/product/samples/textbook/textbook.html"
};

Result data = pdfReactor.Convert(config);
BinaryWriter binWriter = new BinaryWriter(new FileStream("test.pdf",
    FileMode.Create,
    FileAccess.Write));
binWriter.Write(data.Document);
binWriter.Close();
Imports System.IO
Imports RealObjects.PDFreactor.Webservice.Client

Private pdfReactor As New PDFreactor("https://cloud.pdfreactor.com/service/rest") With {.Timeout = 0}
Private config = New Configuration With {.Document = "http://www.pdfreactor.com/product/samples/textbook/textbook.html"}

Private data As Result = pdfReactor.Convert(config)
Private binWriter As New BinaryWriter(New FileStream("test.pdf", FileMode.Create, FileAccess.Write))
binWriter.Write(data.Document)
binWriter.Close()
$vbLabelText   $csharpLabel

O IronPDF fornece arquivos PDF de alta fidelidade graças ao uso do ChromePdfRenderer e ao suporte para padrões web modernos. Ao usar o IronPDF para conversão de HTML em PDF , você poderá criar PDFs com qualidade impecável a partir de documentos HTML, páginas da web e muito mais. Embora o PDFreactor se orgulhe de suas capacidades de conversão de HTML para PDF e forneça documentos PDF de alta qualidade, ele adota uma abordagem mais manual que requer mais linhas de código.

Para mais exemplos de uso do IronPDF para conversão de HTML em PDF, visite IronPDF HTML para PDF .

Criptografando documentos PDF

IronPDF:

using IronPdf;
using System;

// Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;

// Edit file security settings
// The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// Change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
using IronPdf;
using System;

// Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;

// Edit file security settings
// The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// Change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
Imports IronPdf
Imports System

' Open an Encrypted File, alternatively create a new PDF from Html
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")

' Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto"
pdf.MetaData.Keywords = "SEO, Friendly"
pdf.MetaData.ModifiedDate = DateTime.Now

' Edit file security settings
' The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption()
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserFormData = False
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights

' Change or set the document encryption password
pdf.Password = "my-password"
pdf.SaveAs("secured.pdf")
$vbLabelText   $csharpLabel

PDFreactor:

O PDFreactor, por ser conhecido principalmente como uma ferramenta de conversão de HTML para PDF, não oferece suporte integrado para criptografia de PDF.

O IronPDF simplifica a criptografia de PDFs com métodos C# claros e oferece uma ferramenta simples, porém poderosa, para criptografar PDFs . Com o IronPDF, você terá controle total sobre todo o processo, até mesmo sobre as configurações de segurança. Com o PDFreactor, você precisará encontrar uma biblioteca de terceiros que possa lidar com a tarefa de criptografia de PDF, pois o PDFreactor não oferece suporte a isso atualmente.

Para mais exemplos de criptografia, visite o guia prático do IronPDF sobre este tópico.

Redigir conteúdo de PDF

IronPDF:

using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

pdf.SaveAs("redacted.pdf");
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

pdf.SaveAs("redacted.pdf");
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")

' Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are")

pdf.SaveAs("redacted.pdf")
$vbLabelText   $csharpLabel

PDFreactor:

O PDFreactor não oferece suporte direto à redação, pois seu conjunto de recursos se concentra mais na geração de documentos PDF a partir de conteúdo HTML e no design desses PDFs.

O IronPDF oferece uma ferramenta de redação concisa e fácil de usar, que permite ocultar conteúdo em seus documentos PDF com apenas algumas linhas de código. O PDFreactor, no entanto, não oferece nenhuma ferramenta de redação integrada.

Assinar PDFs

IronPDF:

using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");

// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create PdfSignature object
var sig = new PdfSignature(cert);

// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");

// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create PdfSignature object
var sig = new PdfSignature(cert);

// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>foo</h1>")

' Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)

' Create PdfSignature object
Private sig = New PdfSignature(cert)

' Sign PDF document
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
$vbLabelText   $csharpLabel

PDFreactor:

O PDFreactor não oferece suporte direto à assinatura digital.

O recurso de assinatura digital do IronPDF oferece uma maneira simples e fácil de automatizar a assinatura de PDFs. Considerando que o PDFreactor não oferece suporte para a aplicação de assinaturas digitais aos seus documentos PDF.

Para mais informações sobre como aplicar assinaturas digitais a documentos PDF com o IronPDF, consulte o guia prático desta ferramenta.

Aplicando marcas d'água em páginas PDF

IronPDF:

using IronPdf;

// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);

pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;

// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);

pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
Imports IronPdf

' Stamps a Watermark onto a new or existing PDF
Private renderer = New ChromePdfRenderer()

Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/")
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center)

pdf.SaveAs("C:\Path\To\Watermarked.pdf")
$vbLabelText   $csharpLabel

PDFreactor:

O PDFreactor não suporta marca d'água diretamente.

A ferramenta de marca d'água integrada do IronPDF utiliza HTML e CSS para fornecer uma maneira fácil de aplicar marcas d'água às suas páginas PDF, ao mesmo tempo que lhe dá controle total sobre todo o processo, tudo isso usando apenas algumas linhas de código.

Quer ver mais da ferramenta de marca d'água do IronPDF? Visite nosso guia prático sobre como usar essa ferramenta!

Inserir imagens e texto em documentos PDF

IronPDF:

using IronPdf;
using IronPdf.Editing;
using System;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create text stamper
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the text stamper
pdf.ApplyStamp(textStamper);

pdf.SaveAs("stampText.pdf");

// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("/img/svgs/iron-pdf-logo.svg"))
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);

pdf.SaveAs("stampImage.pdf");
using IronPdf;
using IronPdf.Editing;
using System;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create text stamper
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the text stamper
pdf.ApplyStamp(textStamper);

pdf.SaveAs("stampText.pdf");

// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("/img/svgs/iron-pdf-logo.svg"))
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);

pdf.SaveAs("stampImage.pdf");
Imports IronPdf
Imports IronPdf.Editing
Imports System

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")

' Create text stamper
Private textStamper As New TextStamper() With {
	.Text = "Text Stamper!",
	.FontFamily = "Bungee Spice",
	.UseGoogleFont = True,
	.FontSize = 30,
	.IsBold = True,
	.IsItalic = True,
	.VerticalAlignment = VerticalAlignment.Top
}

' Stamp the text stamper
pdf.ApplyStamp(textStamper)

pdf.SaveAs("stampText.pdf")

' Create image stamper
Dim imageStamper As New ImageStamper(New Uri("/img/svgs/iron-pdf-logo.svg")) With {.VerticalAlignment = VerticalAlignment.Top}

' Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0)

pdf.SaveAs("stampImage.pdf")
$vbLabelText   $csharpLabel

PDFreactor:

O PDFreactor não suporta estampagem diretamente.

O IronPDF oferece uma ferramenta robusta para inserir texto e imagens em seus documentos PDF. Com uma abordagem muito semelhante à de HTML e CSS, você terá controle total sobre o processo de carimbo. O PDFreactor, no entanto, não oferece nenhuma ferramenta de estampagem integrada.

Se você quiser saber mais sobre as ferramentas de carimbo de imagem e texto do IronPDF, visite nosso guia prático .

Conversão de DOCX para PDF

IronPDF:

using IronPdf;

// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();

// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");

// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
using IronPdf;

// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();

// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");

// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer As New DocxToPdfRenderer()

' Render from DOCX file
Private pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")

' Save the PDF
pdf.SaveAs("pdfFromDocx.pdf")
$vbLabelText   $csharpLabel

PDFreactor:

O PDFreactor não suporta a conversão direta de DOCX para PDF, pois seu foco principal é a conversão de HTML para PDF.

Com o IronPDF, você pode converter seus arquivos DOCX usando sua ferramenta de conversão DOCX concisa e fácil de usar. Ao usar o PDFreactor, você precisará instalar uma biblioteca de conversão de DOCX para PDF para lidar com a conversão, pois o PDFreactor não oferece suporte a esse tipo de conversão.

Para uma análise mais detalhada da ferramenta de conversão de DOCX para PDF do IronPDF, visite o guia prático disponível no site.

Resumo da comparação de recursos

Pdfreactor Html To Pdf Alternative 1 related to Resumo da comparação de recursos

Para exemplos de código detalhados, visite a página de exemplos de código do IronPDF .

Preços e licenciamento: IronPDF vs. PDFreactor

IronPDF

O IronPDF possui diferentes níveis e recursos adicionais para a compra de uma licença. Os desenvolvedores também podem adquirir o Iron Suite , que dá acesso a todos os produtos da Iron Software pelo preço de dois. Se você ainda não está pronto para comprar uma licença, o IronPDF oferece um período de teste gratuito de 30 dias.

  • Licenças perpétuas: Oferecemos uma variedade de licenças perpétuas, dependendo do tamanho da sua equipe, das necessidades do seu projeto e do número de locais. Cada tipo de licença inclui suporte por e-mail.
  • Licença Lite: Esta licença custa $799 e suporta um desenvolvedor, um local e um projeto.
  • Licença Plus: Com suporte para três desenvolvedores, três locais e três projetos, esta é a próxima etapa em relação à licença Lite e custa $1,199. A licença Plus oferece suporte por chat e por telefone, além do suporte básico por e-mail.
  • Licença Profissional: Esta licença é adequada para equipes maiores, suportando dez desenvolvedores, dez locais e dez projetos para $2,399. Oferece os mesmos canais de suporte ao cliente que os planos anteriores, mas também oferece suporte para compartilhamento de tela.
  • Redistribuição livre de royalties: O licenciamento do IronPDF também oferece cobertura de redistribuição livre de royalties por um valor adicional de $2,399
  • Suporte ininterrupto ao produto: A IronPDF oferece acesso a atualizações contínuas do produto, atualizações de recursos de segurança e suporte de sua equipe de engenharia por $1,199/ano ou por uma compra única de $2,399 para cobertura de 5 anos.
  • Iron Suite: Por $1,498, você terá acesso a todos os produtos da Iron Software , incluindo IronPDF, IronOCR, IronWord, IronXL, IronBarcode, IronQR, IronZIP, IronPrint e IronWebScraper.

Pdfreactor Html To Pdf Alternative 2 related to IronPDF

PDFreactor

  • Licença de CPU: Este é o custo base do PDFreactor, e custa US$ 2.950, o que permite até 4 códigos de CPU e inclui o primeiro ano de suporte e manutenção.

  • Complementos: Além da licença, o PDFreactor oferece complementos como; O complemento Raster Image Output, uma extensão de suporte e manutenção de um ano e uma atualização de licença de CPU.

Documentação e suporte: IronPDF vs. PDFreactor

IronPDF

O IronPDF se destaca por fornecer documentação e suporte abrangentes:

  • Documentação completa: Documentação extensa e fácil de usar, abrangendo todos os recursos.
  • Suporte 24 horas por dia, 5 dias por semana: Suporte técnico ativo disponível.
  • Tutoriais em vídeo: Guias em vídeo passo a passo estão disponíveis no YouTube.
  • Fórum da Comunidade: Comunidade engajada para apoio adicional.
  • Atualizações regulares: Atualizações mensais do produto para garantir os recursos mais recentes e os patches de segurança.

Para obter mais informações, consulte a extensa documentação do IronPDF e visite o canal da Iron Software no YouTube .

PDFreactor

  1. Documentação detalhada: Abrange todos os aspectos da conversão de HTML para PDF.
  2. Suporte por e-mail: Disponível para dúvidas técnicas e de licenciamento.
  3. Fóruns da comunidade: Interaja com outros usuários e desenvolvedores.
  4. Base de conhecimento: Acesso a artigos e guias de resolução de problemas.
  5. Serviços profissionais: Suporte pago para implementações complexas.

Conclusão

Quando se trata de conversão de HTML para PDF, o IronPDF e o PDFreactor são fortes concorrentes, ambos totalmente capazes de criar documentos PDF a partir de conteúdo HTML. No entanto, se você procura uma ferramenta de PDF capaz de lidar com tarefas mais complexas, como criptografia, marca d'água e conversão de tipos de arquivo diferentes de HTML para PDF, então o IronPDF é a ferramenta ideal para você.

Com seu extenso conjunto de recursos, compatibilidade com as modernas estruturas .NET e excelente suporte, o IronPDF é uma ferramenta poderosa que você pode ter à sua disposição. O PDFreactor, embora poderoso em seu nicho, carece de alguns dos recursos avançados e da flexibilidade oferecidos pelo IronPDF.

Você pode experimentar o teste gratuito de 30 dias para conferir os recursos disponíveis.

ObservePDFreactor é uma marca registrada de seu respectivo proprietário. Este site não é afiliado, endossado ou patrocinado pelo PDFreactor. Todos os nomes de produtos, logotipos e marcas são propriedade de seus respectivos proprietários. As comparações são apenas para fins informativos e refletem informações disponíveis publicamente no momento da redação.

Perguntas frequentes

Como posso converter HTML para PDF em C#?

Você pode usar o método RenderHtmlAsPdf do IronPDF para converter strings HTML em PDFs. Você também pode converter arquivos HTML em PDFs usando o RenderHtmlFileAsPdf .

Quais são as principais diferenças entre IronPDF e PDFreactor?

O IronPDF oferece uma ampla gama de recursos, como geração, edição, assinatura e criptografia de PDFs, além de um suporte robusto para HTML, CSS, JavaScript e diversos formatos de imagem. O PDFreactor se concentra na conversão de HTML para PDF de alta qualidade, sendo excelente no processamento de CSS e JavaScript complexos para PDFs prontos para impressão.

O IronPDF pode ser usado em múltiplas plataformas?

Sim, o IronPDF é compatível com diversas plataformas, incluindo Windows, Linux, macOS, Docker, Azure e AWS. Ele também é compatível com várias versões do .NET, como .NET Core, .NET Standard e .NET Framework.

O IronPDF oferece a possibilidade de adicionar assinaturas digitais a documentos PDF?

Sim, o IronPDF oferece uma maneira simples de aplicar assinaturas digitais a PDFs usando seu recurso de assinatura digital.

Quais opções de suporte estão disponíveis para usuários do IronPDF?

O IronPDF oferece suporte completo, incluindo documentação extensa, suporte técnico 24 horas por dia, 5 dias por semana, tutoriais em vídeo, um fórum da comunidade e atualizações regulares para auxiliar os usuários.

Que tipos de licenças o IronPDF oferece?

O IronPDF oferece diversas opções de licenciamento, incluindo licenças perpétuas e um pacote de software, com benefícios como suporte por e-mail e redistribuição livre de royalties.

Como o IronPDF lida com CSS e JavaScript complexos em PDFs?

O IronPDF oferece suporte a CSS e JavaScript complexos em PDFs, tornando-o ideal para gerar documentos baseados na web com designs intrincados e elementos interativos.

É possível criptografar documentos PDF usando o IronPDF?

Sim, o IronPDF oferece suporte integrado para criptografia de PDF, permitindo que você proteja seus documentos com uma senha forte.

Quais são as capacidades de conversão do IronPDF além do HTML?

O IronPDF suporta a conversão de vários formatos de arquivo para PDF, como DOCX, RTF e imagens, mantendo a estrutura desejada do documento.

O IronPDF consegue adicionar marcas d'água e carimbos a arquivos PDF?

Sim, o IronPDF permite que os usuários adicionem marcas d'água e carimbos a documentos PDF usando HTML e CSS, oferecendo controle total sobre a aparência.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim