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

CraftMyPDF ou IronPDF: Qual biblioteca de geração de PDF para desenvolvedores C#?

IronPDF oferece conversão de HTML para PDF orientada por código com suporte total a CSS/JavaScript e licenciamento perpétuo a partir de $749, enquanto CraftMyPDF fornece design de template baseado em nuvem com integração JSON, mas requer assinaturas contínuas e dependências de API.

CraftMyPDF oferece um designer de template baseado em nuvem com integração de dados JSON, enquanto IronPDF oferece conversão de HTML para PDF orientada por código com suporte completo a CSS/JavaScript para desenvolvedores .NET que buscam controle total sobre a geração de documentos.

O PDF , ou Portable Document Format (Formato de Documento Portátil), é um formato de arquivo desenvolvido pela Adobe para troca de documentos. Ele preserva a formatação, as fontes e as imagens em todos os dispositivos, garantindo uma aparência consistente. Os PDFs oferecem recursos de segurança , interatividade e compressão , tornando-os ideais para o compartilhamento confiável de documentos .

As bibliotecas C# para PDF permitem que os desenvolvedores criem , modifiquem e extraiam conteúdo de PDFs programaticamente. Essas ferramentas oferecem suporte ao processamento de formulários , assinaturas digitais e implantação multiplataforma . Ao integrar bibliotecas de PDF, os desenvolvedores podem adicionar recursos de geração de documentos diretamente aos seus aplicativos, simplificando os fluxos de trabalho para criação , edição e gerenciamento de PDFs .

Este artigo compara duas abordagens diferentes para geração de PDFs: a biblioteca IronPDF em C# e a API Craftmypdf . A comparação examina funcionalidades, fornece exemplos de código e discute opções de licenciamento .

O que é a Solução Base de API CraftMyPDF?

Página inicial do CraftMyPDF mostrando a interface do editor de PDF com arrastar e soltar com um template de lista de embalagem sendo editado em tempo real

CraftMyPDF é uma API baseada na nuvem para criar PDFs através de modelos. Oferece um editor online do tipo "arrastar e soltar" para criar modelos reutilizáveis ​​sem precisar programar. A plataforma gera PDFs combinando esses modelos com dados JSON, permitindo a geração de conteúdo dinâmico para documentos como faturas , relatórios e certificados.

Quais são as Principais Características do CraftMyPDF?

  1. Editor de arrastar e soltar: Designer visual de modelos que não requer conhecimento de programação.

  2. Reutilização de modelos: Crie um design e utilize-o repetidamente com diferentes conjuntos de dados.

  3. Integração de dados JSON: Combine dados dinâmicos com modelos por meio de JSON.

  4. Formatação e expressões avançadas: Formate datas, números e moedas dinamicamente.

  5. Integrações de API: A API REST é compatível com Zapier, Make.com e aplicativos personalizados.

  6. Componentes preenchíveis: Crie formulários interativos com campos de texto e caixas de seleção.

  7. Segurança e Conformidade: Acesso seguro a PDFs com endpoints de API regionais e conformidade com o GDPR.

O que é o IronPDF?

IronPDF PDF Library para desenvolvedores .NET é uma biblioteca PDF completa para aplicações .NET . Escrito em C#, ele gera PDFs com qualidade de pixel perfeita a partir de HTML , CSS , JavaScript e imagens . O IronPDF simplifica os fluxos de trabalho em PDF, fornecendo amplas funcionalidades para criação, edição e gerenciamento em ambientes .NET .

Quais são os principais recursos do IronPDF?

  1. Conversão de HTML para PDF: Converta HTML, CSS e JavaScript em PDFs com precisão perfeita em cada pixel .

  2. URL para PDF: Gere PDFs a partir de qualquer URL , preservando o conteúdo e o estilo responsivo .

  3. Imagem para PDF: Converta JPG, PNG, GIF, BMP e SVG em documentos PDF com suporte a TIFF de múltiplos quadros .

  4. Preenchimento de formulários e extração de dados: Crie e preencha formulários PDF programaticamente com validação personalizada .

  5. Assinaturas digitais e segurança: Adicione assinaturas digitais , senhas e permissões com suporte a HSM .

  6. Edição de PDF: Adicionar, copiar ou excluir páginas . Mescle e divida PDFs com recursos de rotação de páginas .

  7. Anotações e anexos: Adicione notas adesivas e incorpore anexos com metadados personalizados .

  8. Cabeçalhos, rodapés e marcas d'água: Aplique cabeçalhos, rodapés e marcas d'água personalizados com modelos HTML .

  9. Compatibilidade multiplataforma: Funciona no Windows , macOS , Linux , Docker , Azure e AWS .

  10. Otimização de desempenho: suporte a multithreading e processamento assíncrono para geração de alto volume com processamento paralelo .

  11. Documentação completa: Guias abrangentes , tutoriais e suporte técnico 24 horas por dia, 5 dias por semana .

  12. Sem dependências externas: Implantação de DLL única sem requisitos de software adicionais usando mecanismo de renderização nativo .

Como faço para criar um aplicativo C# no Visual Studio?

Para criar um aplicativo de console em C#, é necessário ter o Visual Studio instalado no computador. Siga estes passos para configurar o projeto:

Como faço para abrir o Visual Studio?

Inicie o Visual Studio a partir do menu Iniciar ou do ícone na área de trabalho.

Como faço para criar um novo projeto?

  1. Clique em "Criar um novo projeto" na página inicial.
  2. Pesquise por "Aplicativo de console" ou selecione na lista de modelos.

Como escolho o modelo de projeto?

Selecione "Aplicativo de console (.NET Core)" ou "Aplicativo de console (.NET Framework)" de acordo com os requisitos. Para suporte ao .NET MAUI , escolha os modelos MAUI apropriados.

Como configuro meu projeto?

  1. Nome do projeto: Insira o nome do projeto
  2. Local: Escolha o diretório de salvamento
  3. Nome da solução: Normalmente corresponde ao nome do projeto.
  4. Clique em "Criar" para prosseguir.

Como faço para instalar o IronPDF?

O IronPDF oferece três métodos de instalação: Gerenciador de Pacotes NuGet , Console do Gerenciador de Pacotes e download direto. A biblioteca oferece suporte a implantações em Windows , macOS , Linux e na nuvem .

Como faço para usar o gerenciador de pacotes NuGet ?

No Visual Studio, clique com o botão direito do mouse em "Referências" ou "Dependências" no Explorador de Soluções. Selecione "Gerenciar Pacotes NuGet ", procure por "IronPDF" e clique em "Instalar".

Gerenciador de Pacotes NuGet do Visual Studio mostrando os resultados da busca por IronPDF, com a versão principal do pacote IronPDF 2024.5.2 instalada e pacotes relacionados como IronPdf.Native.Chrome.Windows e IronPdf.Slim visíveis

Como faço para usar o console do Gerenciador de Pacotes NuGet ?

Abra Ferramentas > Gerenciador de Pacotes NuGet > Console do Gerenciador de Pacotes e execute:

Install-Package IronPdf

Como faço para baixar do site do NuGet ?

Acesse o site do NuGet , baixe o arquivo do pacote e adicione-o como uma fonte de pacote no Visual Studio. Para implantações em Docker , utilize configurações de contêiner específicas.

Para obter orientações detalhadas, consulte a visão geral da instalação e a configuração avançada do NuGet .

Como Eu Uso o CraftMyPDF?

Para integrar CraftMyPDF, crie uma conta, selecione um plano e obtenha credenciais de API.

Como faço para criar uma conta e selecionar o plano gratuito?

  1. Cadastre-se: Registre-se no site CraftMyPDF.
  2. Selecione o Plano Gratuito: Escolha o plano gratuito para desenvolvimento e testes.
  3. Obtenha a chave da API: Acesse a chave da API no painel de controle da sua conta.

Painel do CraftMyPDF mostrando detalhes da assinatura do plano gratuito, 6/50 créditos usados, e changelog recente com novos recursos incluindo campos de assinatura e correções de bugs

Que bibliotecas preciso instalar?

Instale os pacotes System.Net.Http, RestSharp, e Newtonsoft.Json:

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using RestSharp;
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using RestSharp;
Imports System
Imports System.Net.Http
Imports System.Text
Imports System.Threading.Tasks
Imports RestSharp
$vbLabelText   $csharpLabel

Inicialize o cliente da API:

var client = new RestClient("___PROTECTED_URL_51___");
var request = new RestRequest(Method.Post);
string apiKey = "API Key"; // Replace with your actual API key
string templateId = "Template ID"; // Replace with your actual template ID
request.AddHeader("X-API-KEY", apiKey);
request.AddHeader("Content-Type", "application/json");
var client = new RestClient("___PROTECTED_URL_51___");
var request = new RestRequest(Method.Post);
string apiKey = "API Key"; // Replace with your actual API key
string templateId = "Template ID"; // Replace with your actual template ID
request.AddHeader("X-API-KEY", apiKey);
request.AddHeader("Content-Type", "application/json");
Dim client As New RestClient("___PROTECTED_URL_51___")
Dim request As New RestRequest(Method.Post)
Dim apiKey As String = "API Key" ' Replace with your actual API key
Dim templateId As String = "Template ID" ' Replace with your actual template ID
request.AddHeader("X-API-KEY", apiKey)
request.AddHeader("Content-Type", "application/json")
$vbLabelText   $csharpLabel

Como faço para criar PDFs?

Ambas as bibliotecas oferecem abordagens diferentes para a geração de PDFs. IronPDF usa renderização de HTML baseada em código, enquanto CraftMyPDF usa templates visuais com vinculação de dados. O IronPDF também suporta conversões de Markdown para PDF e de XML para PDF .

Como faço para criar PDFs com o IronPDF?

Como faço para converter HTML em PDF?

Converta strings HTML diretamente para PDF com suporte completo a CSS e renderização em JavaScript :

using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Define your HTML string
        string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a sample PDF document created from an HTML string.</p>";
        // Render the HTML as a PDF document
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF document
        pdfDocument.SaveAs("html_output.pdf");
    }
}
using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Define your HTML string
        string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a sample PDF document created from an HTML string.</p>";
        // Render the HTML as a PDF document
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF document
        pdfDocument.SaveAs("html_output.pdf");
    }
}
Imports IronPdf
Public Class PDFCreator
	Public Sub CreatePdfFromHtml()
		Dim renderer = New ChromePdfRenderer()
		' Define your HTML string
		Dim htmlContent As String = "<h1>Hello, IronPDF!</h1><p>This is a sample PDF document created from an HTML string.</p>"
		' Render the HTML as a PDF document
		Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
		' Save the PDF document
		pdfDocument.SaveAs("html_output.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Captura de tela de um documento PDF gerado por IronPDF mostrando o cabeçalho 'Hello, IronPDF!' e texto de exemplo demonstrando a conversão de HTML para PDF

Para mais exemplos, visite a página de exemplos de HTML para PDF . Os desenvolvedores também podem definir margens personalizadas , adicionar quebras de página e configurar o tamanho do papel .

Como faço para converter um URL em PDF?

Converter páginas web em PDFs preservando todo o estilo, incluindo conteúdo WebGL e CSS responsivo :

using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromUrl(string url)
    {
        // Initialize the ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Render the URL as a PDF document
        var pdfDocument = renderer.RenderUrlAsPdf(url);
        // Save the PDF document
        pdfDocument.SaveAs("url_output.pdf");
    }
}
using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromUrl(string url)
    {
        // Initialize the ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Render the URL as a PDF document
        var pdfDocument = renderer.RenderUrlAsPdf(url);
        // Save the PDF document
        pdfDocument.SaveAs("url_output.pdf");
    }
}
Imports IronPdf

Public Class PDFCreator
    Public Sub CreatePdfFromUrl(url As String)
        ' Initialize the ChromePdfRenderer
        Dim renderer = New ChromePdfRenderer()
        ' Render the URL as a PDF document
        Dim pdfDocument = renderer.RenderUrlAsPdf(url)
        ' Save the PDF document
        pdfDocument.SaveAs("url_output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Página inicial da IronPDF mostrando exemplo de código C# para conversão de HTML para PDF usando ChromePdfRenderer em C#, com contagem de downloads do NuGet de 9.229.207 e principais funcionalidades da biblioteca

Saiba mais sobre a conversão de URL para PDF . Para páginas autenticadas, consulte Logins de sites TLS e cabeçalhos de solicitação HTTP .

Como faço para converter um arquivo HTML em PDF?

Converta arquivos HTML locais em PDFs com suporte para tipos de mídia CSS e URLs base :

using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromHtmlFile(string filePath)
    {
        // Initialize the ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Render the HTML file as a PDF document
        var pdfDocument = renderer.RenderHtmlFileAsPdf(filePath);
        // Save the PDF document
        pdfDocument.SaveAs("html_file_output.pdf");
    }
}
using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromHtmlFile(string filePath)
    {
        // Initialize the ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Render the HTML file as a PDF document
        var pdfDocument = renderer.RenderHtmlFileAsPdf(filePath);
        // Save the PDF document
        pdfDocument.SaveAs("html_file_output.pdf");
    }
}
Imports IronPdf

Public Class PDFCreator
    Public Sub CreatePdfFromHtmlFile(filePath As String)
        ' Initialize the ChromePdfRenderer
        Dim renderer As New ChromePdfRenderer()
        ' Render the HTML file as a PDF document
        Dim pdfDocument = renderer.RenderHtmlFileAsPdf(filePath)
        ' Save the PDF document
        pdfDocument.SaveAs("html_file_output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Consulte o guia de conversão de arquivo HTML para PDF para obter detalhes. Para arquivos HTML ZIP , o IronPDF realiza a extração automaticamente.

Como Eu Crio PDFs com a API CraftMyPDF?

CraftMyPDF requer a criação de templates primeiro, depois a geração de PDFs pela fusão de dados.

Como faço para criar um modelo?

  1. Faça Login no Painel: Acesse a conta CraftMyPDF
  2. Criar novo modelo: Use o editor de arrastar e soltar para criar o design.
  3. Salvar modelo: Obtenha o ID do modelo para chamadas de API.

Painel de gerenciamento de templates do CraftMyPDF mostrando um template de fatura com ferramentas de edição e recursos tutoriais

Como faço para enviar uma solicitação para gerar um PDF?

Gere PDFs enviando dados JSON para o modelo:

using System;
using System.Net;
using System.Threading.Tasks;
using RestSharp;

class Program
{
    static async Task Main(string[] args)
    {
        var client = new RestClient("___PROTECTED_URL_52___");
        var request = new RestRequest(Method.Post);
        string apiKey = "API-Key"; // Replace with your actual API key
        string templateId = "Template-ID"; // Replace with your actual template ID
        request.AddHeader("X-API-KEY", apiKey);
        request.AddHeader("Content-Type", "application/json");
        var body = new
        {
            data = new
            {
                invoice_number = "INV48321",
                date = "2024-05-27",
                due_date = "2024-06-27",
                currency = "EUR",
                discount = 10,
                tax = 5,
                company_name = "Tech Innovations Ltd",
                email = "contact@techinnovations.com",
                client = "Future Solutions GmbH",
                client_address = "1234 Innovation Drive",
                client_address2 = "Berlin",
                client_address3 = "10115",
                items = new[]
                {
                    new { description = "Cloud Hosting Services", quantity = 12, unit_price = 75, total = 900 },
                    new { description = "Custom Web Application", quantity = 3, unit_price = 150, total = 450 },
                    new { description = "Technical Support", quantity = 15, unit_price = 30, total = 450 },
                    new { description = "Digital Marketing Campaign", quantity = 2, unit_price = 500, total = 1000 },
                    new { description = "SEO Optimization", quantity = 5, unit_price = 120, total = 600 }
                },
                gross_total = 3400
            },
            load_data_from = (string)null,
            template_id = templateId,
            version = 8,
            export_type = "json",
            expiration = 60,
            output_file = "output.pdf",
            is_cmyk = false,
            image_resample_res = 600,
            direct_download = 0,
            cloud_storage = 1
        };
        request.AddJsonBody(body);
        RestResponse response = await client.ExecuteAsync(request);
        Console.WriteLine(response.Content);
        if (response.IsSuccessful)
        {
            var content = response.Content;
            dynamic result = Newtonsoft.Json.JsonConvert.DeserializeObject(content);
            string fileUrl = result.file;
            string localPath = "f:\\downloaded_output.pdf";
            using (WebClient webClient = new WebClient())
            {
                webClient.DownloadFile(fileUrl, localPath);
            }
            Console.WriteLine($"PDF downloaded successfully to {localPath}");
        }
        else
        {
            Console.WriteLine($"Error: {response.Content}");
        }
    }
}
using System;
using System.Net;
using System.Threading.Tasks;
using RestSharp;

class Program
{
    static async Task Main(string[] args)
    {
        var client = new RestClient("___PROTECTED_URL_52___");
        var request = new RestRequest(Method.Post);
        string apiKey = "API-Key"; // Replace with your actual API key
        string templateId = "Template-ID"; // Replace with your actual template ID
        request.AddHeader("X-API-KEY", apiKey);
        request.AddHeader("Content-Type", "application/json");
        var body = new
        {
            data = new
            {
                invoice_number = "INV48321",
                date = "2024-05-27",
                due_date = "2024-06-27",
                currency = "EUR",
                discount = 10,
                tax = 5,
                company_name = "Tech Innovations Ltd",
                email = "contact@techinnovations.com",
                client = "Future Solutions GmbH",
                client_address = "1234 Innovation Drive",
                client_address2 = "Berlin",
                client_address3 = "10115",
                items = new[]
                {
                    new { description = "Cloud Hosting Services", quantity = 12, unit_price = 75, total = 900 },
                    new { description = "Custom Web Application", quantity = 3, unit_price = 150, total = 450 },
                    new { description = "Technical Support", quantity = 15, unit_price = 30, total = 450 },
                    new { description = "Digital Marketing Campaign", quantity = 2, unit_price = 500, total = 1000 },
                    new { description = "SEO Optimization", quantity = 5, unit_price = 120, total = 600 }
                },
                gross_total = 3400
            },
            load_data_from = (string)null,
            template_id = templateId,
            version = 8,
            export_type = "json",
            expiration = 60,
            output_file = "output.pdf",
            is_cmyk = false,
            image_resample_res = 600,
            direct_download = 0,
            cloud_storage = 1
        };
        request.AddJsonBody(body);
        RestResponse response = await client.ExecuteAsync(request);
        Console.WriteLine(response.Content);
        if (response.IsSuccessful)
        {
            var content = response.Content;
            dynamic result = Newtonsoft.Json.JsonConvert.DeserializeObject(content);
            string fileUrl = result.file;
            string localPath = "f:\\downloaded_output.pdf";
            using (WebClient webClient = new WebClient())
            {
                webClient.DownloadFile(fileUrl, localPath);
            }
            Console.WriteLine($"PDF downloaded successfully to {localPath}");
        }
        else
        {
            Console.WriteLine($"Error: {response.Content}");
        }
    }
}
Imports System
Imports System.Net
Imports System.Threading.Tasks
Imports RestSharp

Module Program
    Async Function Main(args As String()) As Task
        Dim client As New RestClient("___PROTECTED_URL_52___")
        Dim request As New RestRequest(Method.Post)
        Dim apiKey As String = "API-Key" ' Replace with your actual API key
        Dim templateId As String = "Template-ID" ' Replace with your actual template ID
        request.AddHeader("X-API-KEY", apiKey)
        request.AddHeader("Content-Type", "application/json")
        Dim body = New With {
            .data = New With {
                .invoice_number = "INV48321",
                .date = "2024-05-27",
                .due_date = "2024-06-27",
                .currency = "EUR",
                .discount = 10,
                .tax = 5,
                .company_name = "Tech Innovations Ltd",
                .email = "contact@techinnovations.com",
                .client = "Future Solutions GmbH",
                .client_address = "1234 Innovation Drive",
                .client_address2 = "Berlin",
                .client_address3 = "10115",
                .items = New Object() {
                    New With {.description = "Cloud Hosting Services", .quantity = 12, .unit_price = 75, .total = 900},
                    New With {.description = "Custom Web Application", .quantity = 3, .unit_price = 150, .total = 450},
                    New With {.description = "Technical Support", .quantity = 15, .unit_price = 30, .total = 450},
                    New With {.description = "Digital Marketing Campaign", .quantity = 2, .unit_price = 500, .total = 1000},
                    New With {.description = "SEO Optimization", .quantity = 5, .unit_price = 120, .total = 600}
                },
                .gross_total = 3400
            },
            .load_data_from = CType(Nothing, String),
            .template_id = templateId,
            .version = 8,
            .export_type = "json",
            .expiration = 60,
            .output_file = "output.pdf",
            .is_cmyk = False,
            .image_resample_res = 600,
            .direct_download = 0,
            .cloud_storage = 1
        }
        request.AddJsonBody(body)
        Dim response As RestResponse = Await client.ExecuteAsync(request)
        Console.WriteLine(response.Content)
        If response.IsSuccessful Then
            Dim content = response.Content
            Dim result = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Object)(content)
            Dim fileUrl As String = result.file
            Dim localPath As String = "f:\downloaded_output.pdf"
            Using webClient As New WebClient()
                webClient.DownloadFile(fileUrl, localPath)
            End Using
            Console.WriteLine($"PDF downloaded successfully to {localPath}")
        Else
            Console.WriteLine($"Error: {response.Content}")
        End If
    End Function
End Module
$vbLabelText   $csharpLabel

Console de depuração do Visual Studio mostrando saída bem-sucedida de geração de PDF da API CraftMyPDF com detalhes da resposta JSON

Saída em PDF gerada:

Fatura da Tech Innovations Ltd mostrando vários serviços de tecnologia, incluindo SEO, marketing digital, suporte técnico, aplicação web e hospedagem na nuvem, com um total de €2.907,00 após desconto e impostos

Como posso gerar faturas profissionais com Bootstrap?

O IronPDF renderiza frameworks modernos sem dependências externas. Este exemplo com Bootstrap 5 demonstra a geração profissional de faturas com design responsivo e CSS para impressão :

using IronPdf;

var renderer = new ChromePdfRenderer();

string professionalInvoice = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='___PROTECTED_URL_53___ rel='stylesheet'>
    <style>
        .invoice-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; }
        .invoice-table th { background: #f8f9fa; }
        @media print { .invoice-box { page-break-inside: avoid; } }
    </style>
</head>
<body>
    <div class='container my-4'>
        <div class='card shadow-lg invoice-box'>
            <div class='invoice-header p-4'>
                <div class='row align-items-center'>
                    <div class='col-md-8'>
                        <h1 class='mb-0'>INVOICE</h1>
                        <p class='mb-0 opacity-75'>Invoice #INV-2024-0427</p>
                    </div>
                    <div class='col-md-4 text-md-end'>
                        <h3 class='mb-0'>$3,400.00</h3>
                        <small class='opacity-75'>Due: June 27, 2024</small>
                    </div>
                </div>
            </div>

            <div class='card-body p-4'>
                <div class='row mb-4'>
                    <div class='col-md-6'>
                        <h6 class='text-primary text-uppercase mb-2'>From</h6>
                        <strong>Tech Innovations Ltd</strong><br>
                        contact@techinnovations.com
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <h6 class='text-primary text-uppercase mb-2'>Bill To</h6>
                        <strong>Future Solutions GmbH</strong><br>
                        1234 Innovation Drive<br>
                        Berlin, 10115
                    </div>
                </div>

                <table class='table invoice-table'>
                    <thead>
                        <tr>
                            <th>Description</th>
                            <th class='text-center'>Qty</th>
                            <th class='text-end'>Unit Price</th>
                            <th class='text-end'>Total</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td>Cloud Hosting Services</td>
                            <td class='text-center'>12</td>
                            <td class='text-end'>€75.00</td>
                            <td class='text-end'>€900.00</td>
                        </tr>
                        <tr>
                            <td>Custom Web Application</td>
                            <td class='text-center'>3</td>
                            <td class='text-end'>€150.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Technical Support</td>
                            <td class='text-center'>15</td>
                            <td class='text-end'>€30.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Digital Marketing Campaign</td>
                            <td class='text-center'>2</td>
                            <td class='text-end'>€500.00</td>
                            <td class='text-end'>€1,000.00</td>
                        </tr>
                        <tr>
                            <td>SEO Optimization</td>
                            <td class='text-center'>5</td>
                            <td class='text-end'>€120.00</td>
                            <td class='text-end'>€600.00</td>
                        </tr>
                    </tbody>
                </table>

                <div class='row justify-content-end'>
                    <div class='col-md-4'>
                        <table class='table table-sm'>
                            <tr>
                                <td>Subtotal:</td>
                                <td class='text-end'><strong>€3,400.00</strong></td>
                            </tr>
                            <tr>
                                <td>Discount (10%):</td>
                                <td class='text-end text-success'>-€340.00</td>
                            </tr>
                            <tr>
                                <td>Tax (5%):</td>
                                <td class='text-end'>€153.00</td>
                            </tr>
                            <tr class='table-primary'>
                                <td><strong>Total Due:</strong></td>
                                <td class='text-end'><strong>€3,213.00</strong></td>
                            </tr>
                        </table>
                    </div>
                </div>

                <div class='alert alert-info mt-4'>
                    <strong>Payment Terms:</strong> Payment due within 30 days. Late payments may incur additional charges.
                </div>

                <div class='row mt-4 pt-3 border-top'>
                    <div class='col-md-6'>
                        <small class='text-muted'>Generated with IronPDF - No external APIs required</small>
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <span class='badge bg-success'>PAID</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(professionalInvoice);
pdf.SaveAs("professional-invoice.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string professionalInvoice = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='___PROTECTED_URL_53___ rel='stylesheet'>
    <style>
        .invoice-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; }
        .invoice-table th { background: #f8f9fa; }
        @media print { .invoice-box { page-break-inside: avoid; } }
    </style>
</head>
<body>
    <div class='container my-4'>
        <div class='card shadow-lg invoice-box'>
            <div class='invoice-header p-4'>
                <div class='row align-items-center'>
                    <div class='col-md-8'>
                        <h1 class='mb-0'>INVOICE</h1>
                        <p class='mb-0 opacity-75'>Invoice #INV-2024-0427</p>
                    </div>
                    <div class='col-md-4 text-md-end'>
                        <h3 class='mb-0'>$3,400.00</h3>
                        <small class='opacity-75'>Due: June 27, 2024</small>
                    </div>
                </div>
            </div>

            <div class='card-body p-4'>
                <div class='row mb-4'>
                    <div class='col-md-6'>
                        <h6 class='text-primary text-uppercase mb-2'>From</h6>
                        <strong>Tech Innovations Ltd</strong><br>
                        contact@techinnovations.com
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <h6 class='text-primary text-uppercase mb-2'>Bill To</h6>
                        <strong>Future Solutions GmbH</strong><br>
                        1234 Innovation Drive<br>
                        Berlin, 10115
                    </div>
                </div>

                <table class='table invoice-table'>
                    <thead>
                        <tr>
                            <th>Description</th>
                            <th class='text-center'>Qty</th>
                            <th class='text-end'>Unit Price</th>
                            <th class='text-end'>Total</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td>Cloud Hosting Services</td>
                            <td class='text-center'>12</td>
                            <td class='text-end'>€75.00</td>
                            <td class='text-end'>€900.00</td>
                        </tr>
                        <tr>
                            <td>Custom Web Application</td>
                            <td class='text-center'>3</td>
                            <td class='text-end'>€150.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Technical Support</td>
                            <td class='text-center'>15</td>
                            <td class='text-end'>€30.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Digital Marketing Campaign</td>
                            <td class='text-center'>2</td>
                            <td class='text-end'>€500.00</td>
                            <td class='text-end'>€1,000.00</td>
                        </tr>
                        <tr>
                            <td>SEO Optimization</td>
                            <td class='text-center'>5</td>
                            <td class='text-end'>€120.00</td>
                            <td class='text-end'>€600.00</td>
                        </tr>
                    </tbody>
                </table>

                <div class='row justify-content-end'>
                    <div class='col-md-4'>
                        <table class='table table-sm'>
                            <tr>
                                <td>Subtotal:</td>
                                <td class='text-end'><strong>€3,400.00</strong></td>
                            </tr>
                            <tr>
                                <td>Discount (10%):</td>
                                <td class='text-end text-success'>-€340.00</td>
                            </tr>
                            <tr>
                                <td>Tax (5%):</td>
                                <td class='text-end'>€153.00</td>
                            </tr>
                            <tr class='table-primary'>
                                <td><strong>Total Due:</strong></td>
                                <td class='text-end'><strong>€3,213.00</strong></td>
                            </tr>
                        </table>
                    </div>
                </div>

                <div class='alert alert-info mt-4'>
                    <strong>Payment Terms:</strong> Payment due within 30 days. Late payments may incur additional charges.
                </div>

                <div class='row mt-4 pt-3 border-top'>
                    <div class='col-md-6'>
                        <small class='text-muted'>Generated with IronPDF - No external APIs required</small>
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <span class='badge bg-success'>PAID</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(professionalInvoice);
pdf.SaveAs("professional-invoice.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

Dim professionalInvoice As String = "
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='___PROTECTED_URL_53___ rel='stylesheet'>
    <style>
        .invoice-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; }
        .invoice-table th { background: #f8f9fa; }
        @media print { .invoice-box { page-break-inside: avoid; } }
    </style>
</head>
<body>
    <div class='container my-4'>
        <div class='card shadow-lg invoice-box'>
            <div class='invoice-header p-4'>
                <div class='row align-items-center'>
                    <div class='col-md-8'>
                        <h1 class='mb-0'>INVOICE</h1>
                        <p class='mb-0 opacity-75'>Invoice #INV-2024-0427</p>
                    </div>
                    <div class='col-md-4 text-md-end'>
                        <h3 class='mb-0'>$3,400.00</h3>
                        <small class='opacity-75'>Due: June 27, 2024</small>
                    </div>
                </div>
            </div>

            <div class='card-body p-4'>
                <div class='row mb-4'>
                    <div class='col-md-6'>
                        <h6 class='text-primary text-uppercase mb-2'>From</h6>
                        <strong>Tech Innovations Ltd</strong><br>
                        contact@techinnovations.com
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <h6 class='text-primary text-uppercase mb-2'>Bill To</h6>
                        <strong>Future Solutions GmbH</strong><br>
                        1234 Innovation Drive<br>
                        Berlin, 10115
                    </div>
                </div>

                <table class='table invoice-table'>
                    <thead>
                        <tr>
                            <th>Description</th>
                            <th class='text-center'>Qty</th>
                            <th class='text-end'>Unit Price</th>
                            <th class='text-end'>Total</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td>Cloud Hosting Services</td>
                            <td class='text-center'>12</td>
                            <td class='text-end'>€75.00</td>
                            <td class='text-end'>€900.00</td>
                        </tr>
                        <tr>
                            <td>Custom Web Application</td>
                            <td class='text-center'>3</td>
                            <td class='text-end'>€150.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Technical Support</td>
                            <td class='text-center'>15</td>
                            <td class='text-end'>€30.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Digital Marketing Campaign</td>
                            <td class='text-center'>2</td>
                            <td class='text-end'>€500.00</td>
                            <td class='text-end'>€1,000.00</td>
                        </tr>
                        <tr>
                            <td>SEO Optimization</td>
                            <td class='text-center'>5</td>
                            <td class='text-end'>€120.00</td>
                            <td class='text-end'>€600.00</td>
                        </tr>
                    </tbody>
                </table>

                <div class='row justify-content-end'>
                    <div class='col-md-4'>
                        <table class='table table-sm'>
                            <tr>
                                <td>Subtotal:</td>
                                <td class='text-end'><strong>€3,400.00</strong></td>
                            </tr>
                            <tr>
                                <td>Discount (10%):</td>
                                <td class='text-end text-success'>-€340.00</td>
                            </tr>
                            <tr>
                                <td>Tax (5%):</td>
                                <td class='text-end'>€153.00</td>
                            </tr>
                            <tr class='table-primary'>
                                <td><strong>Total Due:</strong></td>
                                <td class='text-end'><strong>€3,213.00</strong></td>
                            </tr>
                        </table>
                    </div>
                </div>

                <div class='alert alert-info mt-4'>
                    <strong>Payment Terms:</strong> Payment due within 30 days. Late payments may incur additional charges.
                </div>

                <div class='row mt-4 pt-3 border-top'>
                    <div class='col-md-6'>
                        <small class='text-muted'>Generated with IronPDF - No external APIs required</small>
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <span class='badge bg-success'>PAID</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>"

Dim pdf = renderer.RenderHtmlAsPdf(professionalInvoice)
pdf.SaveAs("professional-invoice.pdf")
$vbLabelText   $csharpLabel

Resultado: Uma fatura em PDF profissional com cabeçalhos em gradiente Bootstrap 5, tabelas responsivas e resumos de cálculos. O IronPDF renderiza todos os gradientes CSS, estilos de tabela e classes utilitárias com precisão perfeita — sem chamadas de API externas, sem modelos, sem necessidade de conexão com a internet. Diferentemente da abordagem baseada em nuvem do CraftMyPDF, o IronPDF gera faturas instantaneamente em seu servidor, com controle total.

O que o código faz?

  1. Configure RestClient: Inicialize o cliente com o endpoint de API CraftMyPDF
  2. Adicionar cabeçalhos: Inclua a chave da API e o tipo de conteúdo para autenticação.
  3. Preparar o corpo da requisição: Criar um objeto JSON com dados de modelo e opções.
  4. Enviar solicitação: Executar chamada de API para gerar PDF
  5. Lidar com a resposta: Baixar o PDF gerado ou exibir mensagem de erro.

Quais são as principais diferenças para fundadores com perfil técnico?

Como se comparam as abordagens baseadas em templates e as abordagens "code-first"?

Baseado em Templates (CraftMyPDF):

  • Membros da equipe sem conhecimento técnico podem criar e modificar modelos.
  • Os modelos são gerenciados centralmente no painel de controle na nuvem.
  • Alterações nos modelos não exigem implantação de código.
  • Limitado por restrições de design do modelo
  • Ideal para documentos padronizados com layouts previsíveis.

Orientado por Código (IronPDF):

  • Controle total sobre o layout do documento usando HTML e CSS
  • O suporte a JavaScript permite gráficos e cálculos dinâmicos .
  • Os modelos fazem parte da base de código com controle de versão.
  • Flexibilidade de design ilimitada com qualquer tecnologia web
  • Ideal para documentos complexos e dinâmicos que exigem lógica programática.

Para modelos Razor , o IronPDF oferece suporte nativo ao MVC Core , ao MVC Framework e ao Razor Pages .

Quais são as implicações de custo em diferentes escalas?

Estrutura de Custo CraftMyPDF:

  • Plano gratuito: 50 chamadas de API por mês com limite de 3 modelos.
  • Os planos pagos começam com taxas mensais mais altas.
  • Os custos por PDF aumentam linearmente com o volume.
  • Taxas de assinatura mensais/anuais recorrentes
  • Custos adicionais para recursos premium

Estrutura de custos do IronPDF :

Para aplicações que processam mais de 1.000 PDFs por mês, a licença perpétua do IronPDF oferece custos previsíveis sem taxas recorrentes. A calculadora de licenciamento ajuda a estimar os custos totais de propriedade. Considere atualizações e expansões para equipes em crescimento.

Quais são as diferenças nos fluxos de trabalho de desenvolvimento?

Fluxo de Trabalho CraftMyPDF:

  1. O designer cria um modelo na interface web.
  2. O desenvolvedor mapeia os campos JSON para o modelo.
  3. A integração da API requer configuração de autenticação.
  4. Os testes exigem chamadas à API e uso de créditos.
  5. As atualizações de modelos ocorrem fora da implantação do código.

Fluxo de trabalho do IronPDF :

  1. O desenvolvedor escreve o modelo HTML/CSS no código.
  2. Testes locais sem limites de API
  3. Os modelos são implantados com o código do aplicativo.
  4. O controle de versão rastreia todas as alterações.
  5. Integração de CI/CD para testes automatizados

A abordagem autossuficiente do IronPDF permite ciclos de iteração mais rápidos e desenvolvimento offline, o que é crucial para o desenvolvimento ágil. A biblioteca oferece suporte a opções personalizadas de registro e renderização para depuração.

E quanto à privacidade e conformidade dos dados?

Manipulação de Dados CraftMyPDF:

  • Documentos processados ​​em servidores na nuvem
  • É necessária a transmissão de dados pela internet.
  • Pontos finais regionais para conformidade
  • Políticas de armazenamento de arquivos temporários
  • Acordos de processamento de dados com terceiros

Manipulação de dados do IronPDF :

Para aplicações que lidam com dados sensíveis de clientes, o processamento local do IronPDF elimina as preocupações com a privacidade de terceiros. Assinaturas digitais e proteção por senha fornecem camadas adicionais de segurança. A biblioteca também oferece suporte aos padrões PDF/A e PDF/UA para fins de conformidade.

Com que rapidez posso adicionar novos tipos de documento?

Cronograma CraftMyPDF:

  • Criação do modelo: 1 a 4 horas, dependendo da complexidade.
  • Mapeamento e testes de campo: 1 a 2 horas
  • Dependente da disponibilidade do designer
  • Os fluxos de trabalho de aprovação de modelos podem causar atrasos.
  • Limitado pelas capacidades do editor

Cronologia do IronPDF :

  • Criação de modelos HTML: 30 minutos a 2 horas
  • Utilize frameworks web existentes como o Bootstrap
  • Reutilizar folhas de estilo CSS em vários documentos
  • Teste localmente com feedback imediato
  • Implementar novos tipos de documentos com atualizações regulares.

A abordagem "code-first" do IronPDF normalmente reduz o tempo de lançamento de novos tipos de documentos, especialmente quando se utilizam recursos e estruturas web existentes. A biblioteca oferece suporte a conversões de RTF para PDF , DOCX para PDF e Markdown para PDF , proporcionando maior flexibilidade.

Quais são as opções de licenciamento?

IronPDF pricing page showing three perpetual license tiers: Lite ($749), Plus ($1,499), and Professional ($2,999), with feature comparisons and an optional royalty-free redistribution add-on for $1,499

A IronPDF oferece licenças perpétuas com pagamento único. A licença Lite ($799) suporta desenvolvedores individuais em um projeto. A licença Professional ($1,199) cobre múltiplos projetos e desenvolvedores. A licença Enterprise ($2,399) atende equipes maiores com necessidades extensivas de implantação. Cada licença inclui um ano de suporte e atualizações. Uma Licença de Redistribuição OEM permite a distribuição comercial. Está disponível um período de teste gratuito para avaliação. Veja as opções de licenciamento completas.

CraftMyPDF utiliza preços baseados em assinatura. O plano gratuito é adequado para desenvolvimento e testes com um número limitado de chamadas à API. Os planos pagos aumentam os limites de uso e adicionam recursos, adaptando-se às necessidades da empresa. As assinaturas são gerenciadas através do painel CraftMyPDF.

Que documentação e suporte estão disponíveis?

O que o IronPDF oferece em termos de documentação e suporte?

O IronPDF fornece documentação completa, incluindo guias detalhados, exemplos e uma seção de Início Rápido . Os recursos abrangem desde o uso básico até configurações avançadas. Os canais de suporte incluem uma base de conhecimento, suporte por email e solicitações de suporte de engenharia. A equipe de suporte opera 24 horas por dia, 5 dias por semana , para oferecer assistência imediata. Os guias de resolução de problemas abordam questões comuns.

A documentação inclui referências de API , tutoriais e exemplos de código para todos os recursos. Os registros de alterações acompanham as atualizações e os marcos destacam os principais lançamentos. Para obter suporte à migração, consulte os guias que comparam Aspose , iText , Syncfusion e outros concorrentes .

O que o CraftMyPdf oferece para Documentação e Suporte?

CraftMyPDF oferece documentação de API detalhando endpoints, parâmetros e exemplos. Os guias abrangem a criação de modelos, solicitações de API e tratamento de respostas. O suporte está disponível por e-mail e em fóruns da comunidade para perguntas e esclarecimentos.

Qual solução em PDF devo escolher?

Tanto o IronPDF quanto CraftMyPDF oferecem soluções de geração de PDF capazes com abordagens distintas. CraftMyPDF se destaca com seu designer de template visual e processamento baseado em nuvem, enquanto o IronPDF fornece controle programático completo através da renderização de HTML.

O IronPDF se destaca por seu extenso conjunto de recursos para atender a requisitos complexos de documentos. Ele converte HTML , URLs e arquivos em PDFs, além de oferecer suporte a recursos avançados como assinaturas digitais , gerenciamento de formulários e edição de documentos . A implantação autônoma, sem dependências externas, garante uma operação confiável em todas as plataformas .

Os modelos de licenciamento diferem significativamente. As licenças perpétuas do IronPDF começam em $799 com um teste gratuito para avaliação. O pacote Iron Suite oferece nove produtos pelo preço de dois, proporcionando uma relação custo-benefício excepcional para todas as necessidades de gerenciamento de documentos.

Para desenvolvedores que necessitam de controle total sobre a geração de PDFs com suporte avançado a HTML/CSS , manipulação de documentos e custos previsíveis, o IronPDF oferece uma solução confiável. Sua extensa documentação , suporte ágil e opções flexíveis de implantação o tornam adequado para aplicações que vão desde a simples geração de documentos até fluxos de trabalho empresariais complexos.

ObserveCraftMyPDF é uma marca registrada de seu respectivo proprietário. Este site não é afiliado, endossado ou patrocinado por CraftMyPDF. 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

Quais são as vantagens de usar uma biblioteca PDF em C# em vez de uma solução baseada em API?

Uma biblioteca PDF completa como o IronPDF oferece amplos recursos, integração perfeita com ambientes de desenvolvimento .NET, suporte robusto e opções de licenciamento econômicas, tornando-a uma escolha superior para o gerenciamento de documentos complexos.

Como posso converter conteúdo HTML em um documento PDF usando C#?

Você pode usar o IronPDF para converter conteúdo HTML em documentos PDF. Ele oferece suporte a HTML5 e CSS3, garantindo que o conteúdo da web seja renderizado corretamente nos PDFs gerados.

Quais são os principais recursos do IronPDF para geração de PDFs?

O IronPDF oferece assinaturas digitais, preenchimento de formulários, edição de PDFs, anotações e compatibilidade multiplataforma. Ele se destaca na conversão de HTML, URLs e imagens em PDFs com desempenho robusto e otimização.

Como o CraftMyPDF lida com o design de modelos PDF?

O CraftMyPDF oferece um editor online com recurso de arrastar e soltar que permite aos usuários criar modelos de PDF sem a necessidade de programação. Ele suporta a integração de dados JSON, possibilitando a criação de documentos PDF personalizados.

Quais opções de licenciamento estão disponíveis para ferramentas de PDF como o IronPDF?

O IronPDF oferece opções flexíveis de licenciamento, incluindo licenças Lite, Professional e Enterprise com pagamento único. Também oferece um período de teste gratuito para novos usuários explorarem seus recursos.

Como posso integrar uma API de geração de PDF em minha aplicação C#?

Para integrar uma API de geração de PDF como o CraftMyPDF, você precisa criar uma conta, selecionar um plano adequado, obter uma chave de API e usar bibliotecas como System.Net.Http e RestSharp para fazer chamadas à API.

Que recursos de suporte estão disponíveis para desenvolvedores que utilizam o IronPDF?

O IronPDF oferece documentação completa, tutoriais e suporte técnico 24 horas por dia, 5 dias por semana. Esses recursos ajudam os desenvolvedores a implementar e solucionar problemas da biblioteca em seus projetos de forma eficaz.

Como faço para instalar o IronPDF em uma aplicação C#?

O IronPDF pode ser instalado através do Gerenciador de Pacotes NuGet no Visual Studio, usando o Console do Gerenciador de Pacotes NuGet ou baixando o pacote diretamente do site do NuGet.

Como o IronPDF aprimora a segurança e a interatividade de documentos PDF?

O IronPDF oferece suporte a recursos como assinaturas digitais e gerenciamento de formulários, que aprimoram a segurança e a interatividade dos documentos, tornando-o adequado para o gerenciamento abrangente de PDFs.

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