Ir para o conteúdo do rodapé
USANDO O IRONPDF

Como criar um gerador de PDF em .NET Core

Como criar um gerador de PDF em .NET Core

O IronPDF fornece um mecanismo de renderização baseado no Chrome que converte HTML, CSS e JavaScript em documentos PDF em aplicativos .NET Core , com suporte para implantação multiplataforma em Windows, Linux e contêineres Docker com instalação simples NuGet .

O que torna um gerador de PDF .NET Core confiável?

A criação de documentos PDF em aplicações .NET Core requer uma biblioteca PDF que manipule conteúdo HTML, mantenha a formatação e ofereça suporte à implantação multiplataforma. Se você estiver desenvolvendo APIs web ASP.NET Core ou aplicativos de console, um gerador de PDF robusto for .NET Core simplifica todo o processo de criação de documentos a partir de diversas fontes. Isso economiza muito tempo.

Inicie seu teste gratuito e descubra por que os desenvolvedores escolhem o IronPDF para geração de PDFs de missão crítica em ambientes de produção.

IronPDF se destaca como uma biblioteca PDF abrangente for .NET Core . Ele utiliza um mecanismo de renderização do Chrome para criar documentos PDF com precisão perfeita em cada pixel. Essa abordagem significa que você não precisa aprender APIs complexas de PDF nem se preocupar com problemas de layout; Você pode aproveitar seus conhecimentos de HTML e CSS para gerar arquivos PDF. A extensa documentação e os exemplos de código da biblioteca facilitam a implementação.

Como o IronPDF simplifica a geração de documentos PDF no .NET Core?

O IronPDF transforma a tarefa tradicionalmente complexa de geração de PDFs em um código simples que qualquer desenvolvedor .NET pode implementar. A biblioteca utiliza a classe ChromePdfRenderer para converter strings HTML, arquivos ou URLs diretamente para o formato PDF. Essa abordagem de API fluente oferece amplas opções de personalização, mantendo o alto desempenho em diferentes plataformas.

Por que a geração de PDFs baseada em HTML é importante para desenvolvedores?

O verdadeiro poder reside na forma como o IronPDF lida com a conversão de conteúdo HTML em arquivos PDF profissionais. Em vez de posicionar ou desenhar elementos manualmente, os desenvolvedores escrevem HTML padrão com estilos CSS, e a biblioteca lida com a conversão de forma integrada. Os arquivos PDF resultantes não são meras imagens de texto; São documentos completos onde os usuários podem selecionar e pesquisar texto. Para implantações em contêineres, essa abordagem elimina problemas comuns com o gerenciamento de fontes e a codificação de caracteres UTF-8 , considerações cruciais para ambientes Docker .

Quais são os recursos avançados de edição disponíveis?

Além da geração básica de PDFs, você pode usar as ferramentas avançadas de edição do IronPDF para editar documentos PDF. Com essas ferramentas, você pode mesclar documentos , adicionar marcas d'água , anotações e muito mais. A biblioteca oferece suporte a assinaturas digitais para autenticação de documentos e compressão de PDF para otimizar o tamanho dos arquivos para transferência em rede. Confira o tutorial relacionado para ver mais exemplos de código-fonte dessas ferramentas. Para as equipes da DevOps, esses recursos permitem fluxos de trabalho automatizados de processamento de documentos sem dependências externas.

Como instalo o IronPDF usando o gerenciador de pacotes NuGet ?

Para começar a usar o IronPDF no Visual Studio, basta instalar um único pacote NuGet . Abra o Console do Gerenciador de Pacotes NuGet , certifique-se de que o nome do seu projeto esteja selecionado na lista suspensa "Projeto padrão" e execute o seguinte comando:

Install-Package IronPdf

O que o pacote NuGet inclui?

Este pacote NuGet único fornece toda a funcionalidade necessária para criar, editar e gerar arquivos PDF em seus aplicativos .NET Core . A instalação configura automaticamente seu projeto para geração de PDFs em ambientes Windows , Linux e Docker . Ele também oferece suporte a várias versões do .NET , incluindo .NET Framework 4.6.2+, .NET Core 3.1+ e .NET Standard 2.0+. Para implantações em contêineres, o pacote inclui dependências nativas otimizadas para tamanho mínimo de imagem. A variante IronPdf.Slim oferece flexibilidade adicional de implantação para ambientes com restrições de tamanho rigorosas.

Como faço para criar meu primeiro documento PDF a partir de HTML?

Vamos criar documentos PDF usando um exemplo prático de fatura. Este exemplo demonstra como gerar arquivos PDF a partir de conteúdo HTML com formatação e vinculação de dados adequadas:

using IronPdf;
using System.IO;
using System.Text;
// Initialize the Chrome renderer
var renderer = new ChromePdfRenderer();
// Configure rendering options
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
// Create HTML content for invoice
var htmlBuilder = new StringBuilder();
htmlBuilder.Append(@"
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; font-size: 14px; }
            .invoice-header { background: #f0f0f0; padding: 20px; }
            table { width: 100%; border-collapse: collapse; }
            th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }
        </style>
    </head>
    <body>
        <div class='invoice-header'>
            <h1>Invoice #INV-2024-001</h1>
            <p>Date: " + DateTime.Now.ToString("MM/dd/yyyy") + @"</p>
        </div>
        <table>
            <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>");
// Example of dynamically adding table rows with a for loop
for (int i = 0; i < 3; i++)
{
    htmlBuilder.Append($"<tr><td>Product #{i + 1}</td><td>{i + 1}</td><td>$25.00</td></tr>");
}
htmlBuilder.Append(@"
        </table>
        <p><strong>This is a new paragraph with a summary.</strong></p>
    </body>
    </html>");
// Generate PDF from HTML string
PdfDocument pdfObject = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
// Save the PDF file
pdfObject.SaveAs("invoice.pdf");
using IronPdf;
using System.IO;
using System.Text;
// Initialize the Chrome renderer
var renderer = new ChromePdfRenderer();
// Configure rendering options
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
// Create HTML content for invoice
var htmlBuilder = new StringBuilder();
htmlBuilder.Append(@"
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; font-size: 14px; }
            .invoice-header { background: #f0f0f0; padding: 20px; }
            table { width: 100%; border-collapse: collapse; }
            th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }
        </style>
    </head>
    <body>
        <div class='invoice-header'>
            <h1>Invoice #INV-2024-001</h1>
            <p>Date: " + DateTime.Now.ToString("MM/dd/yyyy") + @"</p>
        </div>
        <table>
            <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>");
// Example of dynamically adding table rows with a for loop
for (int i = 0; i < 3; i++)
{
    htmlBuilder.Append($"<tr><td>Product #{i + 1}</td><td>{i + 1}</td><td>$25.00</td></tr>");
}
htmlBuilder.Append(@"
        </table>
        <p><strong>This is a new paragraph with a summary.</strong></p>
    </body>
    </html>");
// Generate PDF from HTML string
PdfDocument pdfObject = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
// Save the PDF file
pdfObject.SaveAs("invoice.pdf");
Imports IronPdf
Imports System.IO
Imports System.Text

' Initialize the Chrome renderer
Dim renderer As New ChromePdfRenderer()

' Configure rendering options
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4

' Create HTML content for invoice
Dim htmlBuilder As New StringBuilder()
htmlBuilder.Append("
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; font-size: 14px; }
            .invoice-header { background: #f0f0f0; padding: 20px; }
            table { width: 100%; border-collapse: collapse; }
            th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }
        </style>
    </head>
    <body>
        <div class='invoice-header'>
            <h1>Invoice #INV-2024-001</h1>
            <p>Date: " & DateTime.Now.ToString("MM/dd/yyyy") & "</p>
        </div>
        <table>
            <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>")

' Example of dynamically adding table rows with a for loop
For i As Integer = 0 To 2
    htmlBuilder.Append($"<tr><td>Product #{i + 1}</td><td>{i + 1}</td><td>$25.00</td></tr>")
Next

htmlBuilder.Append("
        </table>
        <p><strong>This is a new paragraph with a summary.</strong></p>
    </body>
    </html>")

' Generate PDF from HTML string
Dim pdfObject As PdfDocument = renderer.RenderHtmlAsPdf(htmlBuilder.ToString())

' Save the PDF file
pdfObject.SaveAs("invoice.pdf")
$vbLabelText   $csharpLabel

Este código cria um documento de fatura profissional combinando marcação HTML com dados dinâmicos. Observe como adicionamos um tamanho de fonte personalizado no CSS e geramos linhas de tabela dinamicamente usando um loop for. Também incluímos um novo elemento de parágrafo. O método RenderHtmlAsPdf retorna um objeto PdfDocument, que lhe dá controle total sobre o arquivo gerado. Para cenários mais avançados de conversão de HTML para PDF, explore o tutorial de HTML para PDF . As opções de renderização oferecem amplo controle sobre margens , tamanho do papel e configurações da área de visualização .

Qual é a aparência do PDF gerado?

A captura de tela abaixo mostra nossa fatura de exemplo perfeitamente convertida para o formato de documento PDF.

PDF viewer displaying an invoice document with invoice number INV-2024-001, showing a table with three products priced at $25.00 each, generated from HTML using .NET Core.

Como posso gerar arquivos PDF a partir de URLs e páginas da web?

O IronPDF se destaca na conversão de páginas da web existentes em arquivos PDF. Essa funcionalidade se mostra extremamente útil na geração de documentos PDF a partir de painéis de relatórios ou formulários online:

// Create a new ChromePdfRenderer instance
var renderer = new ChromePdfRenderer();
// Set custom page size and margins
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.RenderDelay(1000);
// Convert a URL to PDF
PdfDocument pdfDocument = renderer.RenderUrlAsPdf("___PROTECTED_URL_51___");
// Save to file path
string filePath = Path.Combine(Directory.GetCurrentDirectory(), "webpage.pdf");
pdfDocument.SaveAs(filePath);
// For containerized environments, consider using environment variables
string outputPath = Environment.GetEnvironmentVariable("PDF_OUTPUT_PATH") ?? "/app/output";
pdfDocument.SaveAs(Path.Combine(outputPath, "webpage.pdf"));
// Create a new ChromePdfRenderer instance
var renderer = new ChromePdfRenderer();
// Set custom page size and margins
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.RenderDelay(1000);
// Convert a URL to PDF
PdfDocument pdfDocument = renderer.RenderUrlAsPdf("___PROTECTED_URL_51___");
// Save to file path
string filePath = Path.Combine(Directory.GetCurrentDirectory(), "webpage.pdf");
pdfDocument.SaveAs(filePath);
// For containerized environments, consider using environment variables
string outputPath = Environment.GetEnvironmentVariable("PDF_OUTPUT_PATH") ?? "/app/output";
pdfDocument.SaveAs(Path.Combine(outputPath, "webpage.pdf"));
' Create a new ChromePdfRenderer instance
Dim renderer As New ChromePdfRenderer()
' Set custom page size and margins
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
renderer.RenderingOptions.PrintHtmlBackgrounds = True
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
renderer.RenderingOptions.WaitFor.RenderDelay(1000)
' Convert a URL to PDF
Dim pdfDocument As PdfDocument = renderer.RenderUrlAsPdf("___PROTECTED_URL_51___")
' Save to file path
Dim filePath As String = Path.Combine(Directory.GetCurrentDirectory(), "webpage.pdf")
pdfDocument.SaveAs(filePath)
' For containerized environments, consider using environment variables
Dim outputPath As String = Environment.GetEnvironmentVariable("PDF_OUTPUT_PATH")
If String.IsNullOrEmpty(outputPath) Then
    outputPath = "/app/output"
End If
pdfDocument.SaveAs(Path.Combine(outputPath, "webpage.pdf"))
$vbLabelText   $csharpLabel

Por que o suporte a JavaScript é importante para a conversão de URLs?

A biblioteca gerencia a execução de JavaScript , carrega recursos externos como imagens e folhas de estilo e mantém o layout responsivo durante a conversão. Isso o torna perfeito para criar relatórios a partir de aplicativos da web existentes. A configuração WaitFor garante que todo o conteúdo dinâmico seja carregado antes da renderização. Para sites que exigem autenticação, o IronPDF oferece suporte a cookies , cabeçalhos HTTP e logins de sites TLS . Saiba mais sobre como converter URLs em PDF no guia detalhado.

Captura de tela da página inicial da Wikipédia convertida para formato PDF, mostrando o layout da página principal com artigos em destaque, seções de notícias e elementos de navegação

Quais recursos avançados de PDF dão suporte a relatórios complexos?

Documentos PDF profissionais geralmente exigem elementos adicionais além do conteúdo básico. O IronPDF oferece métodos para aprimorar seus documentos PDF com cabeçalhos, rodapés e marcas d'água. A API de cabeçalhos e rodapés oferece controle total sobre a apresentação do documento:

// Create renderer with advanced options
var renderer = new ChromePdfRenderer();
// Add headers and footers
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    MaxHeight = 25,
    HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    MaxHeight = 25,
    HtmlFragment = "<div>Page {page} of {total-pages}</div>"
};
// Generate PDF with form fields
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
string formHtml = @"
    <form>
        <label>Name: <input type='text' name='name' /></label>
        <label>Email: <input type='email' name='email' /></label>
        <button type='submit'>Submit</button>
    </form>";
PdfDocument formDocument = renderer.RenderHtmlAsPdf(formHtml);
// Add metadata for document management systems
formDocument.MetaData.Author = "Automated System";
formDocument.MetaData.CreationDate = DateTime.Now;
formDocument.SaveAs("form-document.pdf");
// Create renderer with advanced options
var renderer = new ChromePdfRenderer();
// Add headers and footers
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    MaxHeight = 25,
    HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    MaxHeight = 25,
    HtmlFragment = "<div>Page {page} of {total-pages}</div>"
};
// Generate PDF with form fields
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
string formHtml = @"
    <form>
        <label>Name: <input type='text' name='name' /></label>
        <label>Email: <input type='email' name='email' /></label>
        <button type='submit'>Submit</button>
    </form>";
PdfDocument formDocument = renderer.RenderHtmlAsPdf(formHtml);
// Add metadata for document management systems
formDocument.MetaData.Author = "Automated System";
formDocument.MetaData.CreationDate = DateTime.Now;
formDocument.SaveAs("form-document.pdf");
' Create renderer with advanced options
Dim renderer As New ChromePdfRenderer()
' Add headers and footers
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
    .MaxHeight = 25,
    .HtmlFragment = "<div style='text-align:center'>Company Report</div>"
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
    .MaxHeight = 25,
    .HtmlFragment = "<div>Page {page} of {total-pages}</div>"
}
' Generate PDF with form fields
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
Dim formHtml As String = "
    <form>
        <label>Name: <input type='text' name='name' /></label>
        <label>Email: <input type='email' name='email' /></label>
        <button type='submit'>Submit</button>
    </form>"
Dim formDocument As PdfDocument = renderer.RenderHtmlAsPdf(formHtml)
' Add metadata for document management systems
formDocument.MetaData.Author = "Automated System"
formDocument.MetaData.CreationDate = DateTime.Now
formDocument.SaveAs("form-document.pdf")
$vbLabelText   $csharpLabel

Como os cabeçalhos e formulários aprimoram documentos profissionais?

Este exemplo demonstra como adicionar cabeçalhos consistentes em todas as páginas e criar campos de formulário interativos dentro do documento PDF. O sistema lida automaticamente com a numeração de páginas e a renderização de campos de formulário . Para formulários complexos, também é possível preencher formulários PDF existentes programaticamente. As propriedades de metadados permitem a integração com sistemas de gerenciamento de documentos.

Documento PDF mostrando um formulário simples com cabeçalho 'Relatório da Empresa' e campos de entrada para Nome e E-mail com um botão Enviar

Como otimizar o desempenho com operações assíncronas no ASP.NET Core?

Para aplicações web que lidam com múltiplas solicitações de geração de PDF, as operações assíncronas melhoram a capacidade de resposta:

public async Task<byte[]> GeneratePdfAsync(string htmlContent)
{
    var renderer = new ChromePdfRenderer();
    // Configure for optimal performance
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    // Generate PDF asynchronously
    PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync(htmlContent);
    // Return as byte array for API responses
    return pdf.BinaryData;
}
// Usage in ASP.NET Core controller
[HttpPost]
public async Task<IActionResult> CreateInvoice([FromBody] InvoiceData data)
{
    string html = BuildInvoiceHtml(data);
    byte[] pdfBytes = await GeneratePdfAsync(html);
    return File(pdfBytes, "application/pdf", "invoice.pdf");
}
// Health check endpoint for monitoring
[HttpGet("/health/pdf-generator")]
public async Task<IActionResult> HealthCheck()
{
    try
    {
        var renderer = new ChromePdfRenderer();
        var testPdf = await renderer.RenderHtmlAsPdfAsync("<p>Test</p>");
        return Ok(new { status = "healthy", renderer = "operational" });
    }
    catch (Exception ex)
    {
        return StatusCode(503, new { status = "unhealthy", error = ex.Message });
    }
}
public async Task<byte[]> GeneratePdfAsync(string htmlContent)
{
    var renderer = new ChromePdfRenderer();
    // Configure for optimal performance
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    // Generate PDF asynchronously
    PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync(htmlContent);
    // Return as byte array for API responses
    return pdf.BinaryData;
}
// Usage in ASP.NET Core controller
[HttpPost]
public async Task<IActionResult> CreateInvoice([FromBody] InvoiceData data)
{
    string html = BuildInvoiceHtml(data);
    byte[] pdfBytes = await GeneratePdfAsync(html);
    return File(pdfBytes, "application/pdf", "invoice.pdf");
}
// Health check endpoint for monitoring
[HttpGet("/health/pdf-generator")]
public async Task<IActionResult> HealthCheck()
{
    try
    {
        var renderer = new ChromePdfRenderer();
        var testPdf = await renderer.RenderHtmlAsPdfAsync("<p>Test</p>");
        return Ok(new { status = "healthy", renderer = "operational" });
    }
    catch (Exception ex)
    {
        return StatusCode(503, new { status = "unhealthy", error = ex.Message });
    }
}
Public Async Function GeneratePdfAsync(htmlContent As String) As Task(Of Byte())
    Dim renderer = New ChromePdfRenderer()
    ' Configure for optimal performance
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
    ' Generate PDF asynchronously
    Dim pdf As PdfDocument = Await renderer.RenderHtmlAsPdfAsync(htmlContent)
    ' Return as byte array for API responses
    Return pdf.BinaryData
End Function

' Usage in ASP.NET Core controller
<HttpPost>
Public Async Function CreateInvoice(<FromBody> data As InvoiceData) As Task(Of IActionResult)
    Dim html As String = BuildInvoiceHtml(data)
    Dim pdfBytes As Byte() = Await GeneratePdfAsync(html)
    Return File(pdfBytes, "application/pdf", "invoice.pdf")
End Function

' Health check endpoint for monitoring
<HttpGet("/health/pdf-generator")>
Public Async Function HealthCheck() As Task(Of IActionResult)
    Try
        Dim renderer = New ChromePdfRenderer()
        Dim testPdf = Await renderer.RenderHtmlAsPdfAsync("<p>Test</p>")
        Return Ok(New With {Key .status = "healthy", Key .renderer = "operational"})
    Catch ex As Exception
        Return StatusCode(503, New With {Key .status = "unhealthy", Key .error = ex.Message})
    End Try
End Function
$vbLabelText   $csharpLabel

Por que os padrões assíncronos são essenciais para aplicações web?

Esse padrão permite que aplicativos ASP.NET Core gerem arquivos PDF de forma eficiente, sem bloquear threads, uma grande melhoria em relação às tecnologias web mais antigas, onde a geração de arquivos era frequentemente trabalhosa. A saída em formato de array de bytes funciona perfeitamente para endpoints de API que precisam retornar arquivos diretamente para os clientes. Para cenários de alto volume, explore a geração paralela de PDFs e técnicas de renderização multithread . O endpoint de verificação de integridade fornece monitoramento essencial para implantações em contêineres.

Como funciona o tratamento de respostas de arquivos nos controladores?

Observe como o método File() retorna o PDF com o tipo de conteúdo application/pdf correto, garantindo que os navegadores processem a resposta corretamente. Ao trabalhar com documentos PDF grandes ou várias solicitações simultâneas, essa abordagem assíncrona mantém o desempenho ideal do sistema. Em ambientes com memória limitada , você pode transmitir PDFs diretamente sem salvá-los em disco. Para obter mais informações sobre padrões assíncronos, consulte a documentação oficial do ASP.NET Core .

Quais são as principais considerações de implantação para produção?

Quais plataformas e ambientes o IronPDF suporta?

O IronPDF suporta implantação em diversos ambientes. Para contêineres Docker, certifique-se de incluir as dependências necessárias no seu Dockerfile, conforme descrito no guia de implantação do Docker . A biblioteca funciona perfeitamente no Windows Server, em distribuições Linux e em plataformas de nuvem como Azure e AWS . Cada ambiente pode exigir configurações específicas para fontes e renderização, mas a API principal permanece consistente. Para implantações em Kubernetes, considere usar a configuração de mecanismo remoto para separar a renderização de PDF dos pods da sua aplicação. A documentação da Microsoft sobre a implementação do .NET Core fornece práticas recomendadas adicionais para ambientes de produção.

# Example multi-stage Dockerfile for IronPDF
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /source

# Copy and restore
COPY *.csproj .
RUN dotnet restore

# Copy and publish
COPY . .
RUN dotnet publish -c Release -o /app

# Runtime image
FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
COPY --from=build /app .

# Install IronPDF dependencies for Linux
RUN apt-get update \
    && apt-get install -y libgdiplus libc6-dev \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

EXPOSE 80
ENTRYPOINT ["dotnet", "YourApp.dll"]

Pronto para começar a criar seu gerador de PDF hoje mesmo?

O IronPDF transforma a geração de PDFs no .NET Core de um desafio complexo em uma implementação simples. Com suporte para conteúdo HTML, um conjunto abrangente de recursos e comportamento consistente em todas as plataformas, é a escolha ideal para desenvolvedores que precisam gerar documentos PDF de forma confiável. Os recursos de otimização de desempenho da biblioteca garantem o uso eficiente de recursos em ambientes conteinerizados, enquanto o suporte nativo para Linux ARM permite a implantação em infraestrutura de nuvem moderna.

Pronto para implementar seu próprio gerador de documentos PDF? Comece com um teste gratuito para explorar todos os recursos sem limitações. A documentação fornece exemplos e guias abrangentes para ajudá-lo a criar arquivos PDF profissionais que atendam às suas necessidades específicas. Seja para criar sistemas de faturamento, gerar relatórios complexos ou converter conteúdo web existente, o IronPDF oferece as ferramentas para entregar resultados perfeitos em cada detalhe. Confira as demonstrações para ver implementações no mundo real.

Para implantações em produção, explore opções de licenciamento que se adequem à escala do seu projeto. O investimento em uma biblioteca de PDFs de qualidade compensa com a redução do tempo de desenvolvimento e a obtenção de resultados consistentes e profissionais em todos os seus aplicativos .NET . Considere as extensões de licenciamento para suporte e atualizações a longo prazo, mantendo-se sempre com os recursos mais recentes.

Perguntas frequentes

Quais são as principais características de um gerador de PDF .NET Core confiável?

Um gerador de PDF confiável for .NET Core deve oferecer recursos como conversão de HTML para PDF, suporte a diversos formatos de arquivo, renderização de alta qualidade e a capacidade de gerar faturas e relatórios com facilidade. O IronPDF oferece esses recursos, garantindo PDFs com qualidade impecável.

Como posso converter HTML para PDF no .NET Core?

Você pode converter HTML para PDF no .NET Core usando o IronPDF, aproveitando seus recursos de renderização de HTML para PDF. Isso permite converter páginas da web, strings HTML ou arquivos HTML locais em documentos PDF com precisão.

Posso criar faturas usando o IronPDF no .NET Core?

Sim, você pode criar faturas usando o IronPDF no .NET Core. O IronPDF oferece recursos para gerar documentos PDF a partir de modelos HTML, facilitando o design e a produção de faturas profissionais.

É possível gerar relatórios com o IronPDF no .NET Core?

Com certeza. O IronPDF no .NET Core permite a geração de relatórios detalhados convertendo conteúdo HTML para o formato PDF, garantindo que seus relatórios sejam visualmente atraentes e fáceis de compartilhar.

O IronPDF suporta renderização com perfeição de pixels?

Sim, o IronPDF oferece renderização perfeita em pixels, garantindo que os PDFs criados correspondam perfeitamente ao design e layout HTML original. Isso é crucial para manter a integridade da apresentação do seu documento.

Quais formatos de arquivo o IronPDF consegue processar no .NET Core?

O IronPDF consegue lidar com diversos formatos de arquivo no .NET Core, incluindo a conversão de HTML, imagens e arquivos ASPX para PDF. Ele oferece flexibilidade para atender às diferentes necessidades de cada projeto.

Como o IronPDF garante a alta qualidade dos seus arquivos PDF?

O IronPDF garante a geração de PDFs de alta qualidade, empregando técnicas avançadas de renderização e oferecendo suporte a uma ampla variedade de fontes e estilos, resultando em documentos PDF profissionais e precisos.

O IronPDF é adequado para criar materiais de marketing em .NET Core?

Sim, o IronPDF é adequado para a criação de materiais de marketing em .NET Core. Sua capacidade de converter conteúdo HTML complexo, incluindo elementos estilizados em CSS, para PDF o torna ideal para a produção de brochuras e folhetos.

Posso personalizar o layout dos documentos PDF gerados com o IronPDF?

O IronPDF permite uma ampla personalização dos layouts de documentos PDF usando HTML e CSS, dando a você controle sobre o design e a estrutura de seus arquivos PDF.

Quais são os benefícios de usar o IronPDF para geração de PDFs no .NET Core?

As vantagens de usar o IronPDF para geração de PDFs no .NET Core incluem facilidade de uso, documentação completa, suporte robusto para conversão de HTML para PDF e a capacidade de produzir documentos de qualidade profissional com eficiência.

O IronPDF é totalmente compatível com o .NET 10?

Sim. O IronPDF funciona perfeitamente no .NET 10, oferecendo os mesmos recursos avançados de geração, edição e renderização de PDFs das versões anteriores, como .NET 6, 7, 8 e 9. Ele é compatível com as novas melhorias de desempenho do .NET 10 e com os tipos de projeto, incluindo Web, Desktop, Console e MAUI.

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