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

Adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo

Full Comparison

Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.

View Full Comparison

Adicionando cabeçalhos e rodapés a documentos PDF em C

Adicionar cabeçalhos e rodapés a documentos PDF é essencial para criar relatórios, faturas e documentos comerciais profissionais. Desenvolvedores que procuram soluções iTextSharp usando PdfPageEventHelper e o método OnEndPage descobrirão que as bibliotecas modernas do .NET oferecem abordagens significativamente mais simples para alcançar os mesmos resultados.

Este guia demonstra como adicionar cabeçalhos e rodapés em arquivos PDF usando C#, comparando a abordagem tradicional do iText 7 com a API concisa do IronPDF . No final, você compreenderá ambas as implementações -- desde a criação de um novo Document até a geração do arquivo PDF final -- e poderá escolher a abordagem que melhor se adapta aos requisitos do seu projeto.

Como adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo: Imagem 1 - IronPDF

Por que os cabeçalhos e rodapés de PDFs são importantes em documentos profissionais?

Cabeçalhos e rodapés desempenham funções essenciais em documentos PDF profissionais. Eles proporcionam uma identidade visual consistente por meio de logotipos com imagens, permitem a navegação entre páginas com números de página, exibem metadados importantes, como datas e títulos de documentos, e estabelecem a autenticidade do documento por meio de carimbos de data/hora e informações de versão.

Em ambientes corporativos, cabeçalhos e rodapés geralmente têm significado legal. Os relatórios financeiros exigem registros de data e hora para fins de auditoria. Os contratos precisam de numeração de páginas para garantir que estejam completos. Documentos internos podem exigir avisos de confidencialidade em todas as páginas. Para atender a esses requisitos programaticamente, é necessária uma biblioteca PDF que lide de forma confiável com a injeção de conteúdo em nível de página.

Os principais motivos para adicionar cabeçalhos e rodapés programaticamente incluem:

  • Conformidade com auditorias -- os registros de data e hora e os números de versão em todas as páginas atendem aos requisitos regulamentares.
  • Consistência da marca -- logotipos e estilo da empresa aplicados uniformemente em todos os documentos gerados.
  • Navegação -- números de página e títulos de seção ajudam os leitores a localizar informações rapidamente
  • Autenticidade -- o nome do autor, a data de criação e o ID do documento evitam disputas sobre a integridade do documento.

Como adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo: Imagem 2 - Recursos

Como adicionar um cabeçalho e rodapé de texto em C#?

O IronPDF oferece a abordagem mais direta para adicionar cabeçalhos e rodapés a documentos PDF em aplicações .NET . Usando a classe ChromePdfRenderer combinada com TextHeaderFooter ou HtmlHeaderFooter, você pode gerar cabeçalhos e rodapés com um mínimo de código -- não há necessidade de criar células separadas ou gerenciar um objeto contentbyte manualmente.

Antes de escrever qualquer código, adicione o IronPDF ao seu projeto usando o NuGet:

Install-Package IronPdf
dotnet add package IronPdf
Install-Package IronPdf
dotnet add package IronPdf
SHELL

A biblioteca não requer dependências externas e funciona imediatamente após a instalação. É compatível com .NET 5, 6, 7, 8 e 10 e funciona em Windows, Linux e macOS sem necessidade de configuração específica da plataforma.

Em padrões mais antigos do iTextSharp, os desenvolvedores criavam métodos auxiliares como private static void AddContent() para injetar manualmente a lógica de cabeçalho e rodapé. O IronPDF elimina completamente a necessidade desse tipo de código repetitivo.

Aqui está um exemplo completo que adiciona um cabeçalho e um rodapé de texto a um arquivo PDF:

using IronPdf;

// Initialize the PDF renderer
var renderer = new ChromePdfRenderer();

// Configure the text header
renderer.RenderingOptions.TextHeader = new TextHeaderFooter
{
    CenterText = "Quarterly Sales Report",
    DrawDividerLine = true,
    FontSize = 14
};

// Configure the text footer with page number and date
renderer.RenderingOptions.TextFooter = new TextHeaderFooter
{
    LeftText = "{date}",
    RightText = "Page {page} of {total-pages}",
    DrawDividerLine = true,
    FontSize = 10
};

// Set margins to accommodate header and footer
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;

// Generate PDF from HTML content
var pdf = renderer.RenderHtmlAsPdf("<h1>Sales Data</h1><p>Content goes here...</p>");
pdf.SaveAs("report-with-headers.pdf");
using IronPdf;

// Initialize the PDF renderer
var renderer = new ChromePdfRenderer();

// Configure the text header
renderer.RenderingOptions.TextHeader = new TextHeaderFooter
{
    CenterText = "Quarterly Sales Report",
    DrawDividerLine = true,
    FontSize = 14
};

// Configure the text footer with page number and date
renderer.RenderingOptions.TextFooter = new TextHeaderFooter
{
    LeftText = "{date}",
    RightText = "Page {page} of {total-pages}",
    DrawDividerLine = true,
    FontSize = 10
};

// Set margins to accommodate header and footer
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;

// Generate PDF from HTML content
var pdf = renderer.RenderHtmlAsPdf("<h1>Sales Data</h1><p>Content goes here...</p>");
pdf.SaveAs("report-with-headers.pdf");
Imports IronPdf

' Initialize the PDF renderer
Dim renderer = New ChromePdfRenderer()

' Configure the text header
renderer.RenderingOptions.TextHeader = New TextHeaderFooter With {
    .CenterText = "Quarterly Sales Report",
    .DrawDividerLine = True,
    .FontSize = 14
}

' Configure the text footer with page number and date
renderer.RenderingOptions.TextFooter = New TextHeaderFooter With {
    .LeftText = "{date}",
    .RightText = "Page {page} of {total-pages}",
    .DrawDividerLine = True,
    .FontSize = 10
}

' Set margins to accommodate header and footer
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25

' Generate PDF from HTML content
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Sales Data</h1><p>Content goes here...</p>")
pdf.SaveAs("report-with-headers.pdf")
$vbLabelText   $csharpLabel

A classe TextHeaderFooter fornece propriedades para posicionar texto à esquerda, centro ou direita da área de cabeçalho ou rodapé. A propriedade DrawDividerLine adiciona uma linha de separação profissional entre o cabeçalho ou rodapé e o conteúdo principal do documento. Campos mescláveis como {page}, {total-pages} e {date} são preenchidos automaticamente com valores dinâmicos durante a geração de PDF.

O IronPDF calcula as margens automaticamente, garantindo que cabeçalhos e rodapés não se sobreponham ao conteúdo do documento. A class TextHeaderFooter suporta tipos de fonte de IronSoftware.Drawing.FontTypes, dando a você controle sobre a tipografia sem dependências externas.

Saída

Como adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo: Imagem 4 - Saída PDF

Observe como toda a implementação cabe em um único bloco de código com atribuições de propriedades claras e legíveis. Não há necessidade de criar um arquivo de classe separado, calcular posições de pixels ou gerenciar objetos de tela. A biblioteca abstrai essas complexidades, permitindo que você se concentre no conteúdo em vez da mecânica da geração de PDFs.

Como criar cabeçalhos e rodapés com estilo HTML?

Para designs mais sofisticados, a classe HtmlHeaderFooter do IronPDF permite estilização completa em HTML e CSS. Essa abordagem é particularmente valiosa quando os cabeçalhos precisam incluir um logotipo de imagem, layouts complexos ou estilo específico de marca -- sem criar objetos PdfPCell manualmente ou usar construtores new Phrase.

using IronPdf;
using System;

var renderer = new ChromePdfRenderer();

// Create an HTML header with logo and styling
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='width: 100%; font-family: Arial, sans-serif;'>
            <img src='logo.png' style='height: 30px; float: left;' />
            <span style='float: right; font-size: 12px; color: #666;'>
                Confidential Document
            </span>
        </div>",
    MaxHeight = 25,
    DrawDividerLine = true,
    BaseUrl = new Uri(@"C:\assets\").AbsoluteUri
};

// Create an HTML footer with page numbering
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='text-align: center; font-size: 10px; color: #999;'>
            <span>Generated on {date} at {time}</span>
            <br/>
            <span>Page {page} of {total-pages}</span>
        </div>",
    MaxHeight = 20
};

renderer.RenderingOptions.MarginTop = 30;
renderer.RenderingOptions.MarginBottom = 25;

var pdf = renderer.RenderHtmlAsPdf("<h1>Project Proposal</h1><p>Document content...</p>");
pdf.SaveAs("styled-document.pdf");
using IronPdf;
using System;

var renderer = new ChromePdfRenderer();

// Create an HTML header with logo and styling
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='width: 100%; font-family: Arial, sans-serif;'>
            <img src='logo.png' style='height: 30px; float: left;' />
            <span style='float: right; font-size: 12px; color: #666;'>
                Confidential Document
            </span>
        </div>",
    MaxHeight = 25,
    DrawDividerLine = true,
    BaseUrl = new Uri(@"C:\assets\").AbsoluteUri
};

// Create an HTML footer with page numbering
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='text-align: center; font-size: 10px; color: #999;'>
            <span>Generated on {date} at {time}</span>
            <br/>
            <span>Page {page} of {total-pages}</span>
        </div>",
    MaxHeight = 20
};

renderer.RenderingOptions.MarginTop = 30;
renderer.RenderingOptions.MarginBottom = 25;

var pdf = renderer.RenderHtmlAsPdf("<h1>Project Proposal</h1><p>Document content...</p>");
pdf.SaveAs("styled-document.pdf");
Imports IronPdf
Imports System

Dim renderer As New ChromePdfRenderer()

' Create an HTML header with logo and styling
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
    .HtmlFragment = "
        <div style='width: 100%; font-family: Arial, sans-serif;'>
            <img src='logo.png' style='height: 30px; float: left;' />
            <span style='float: right; font-size: 12px; color: #666;'>
                Confidential Document
            </span>
        </div>",
    .MaxHeight = 25,
    .DrawDividerLine = True,
    .BaseUrl = New Uri("C:\assets\").AbsoluteUri
}

' Create an HTML footer with page numbering
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
    .HtmlFragment = "
        <div style='text-align: center; font-size: 10px; color: #999;'>
            <span>Generated on {date} at {time}</span>
            <br/>
            <span>Page {page} of {total-pages}</span>
        </div>",
    .MaxHeight = 20
}

renderer.RenderingOptions.MarginTop = 30
renderer.RenderingOptions.MarginBottom = 25

Dim pdf = renderer.RenderHtmlAsPdf("<h1>Project Proposal</h1><p>Document content...</p>")
pdf.SaveAs("styled-document.pdf")
$vbLabelText   $csharpLabel

Este código de exemplo demonstra como os cabeçalhos HTML podem incorporar imagens juntamente com o texto. A propriedade BaseUrl estabelece o caminho raiz para resolver URLs de imagem relativos, facilitando a inclusão de logotipos de empresas ou outros gráficos. A propriedade MaxHeight garante que o cabeçalho não exceda as dimensões especificadas, mantendo layouts de documento consistentes.

Os campos mescláveis ({page}, {total-pages}, {url}, {date}, {time}, {html-title}, {pdf-title}) funcionam da mesma forma em cabeçalhos e rodapés HTML, fornecendo inserção de conteúdo dinâmico sem código adicional. Para obter orientações sobre como implementar vários estilos de cabeçalho, consulte o Guia Prático de Cabeçalhos e Rodapés .

A abordagem HTML se destaca na criação de documentos personalizados com a identidade visual da marca. As equipes de marketing podem fornecer modelos HTML que os desenvolvedores integram diretamente, garantindo a reprodução perfeita dos designs aprovados. Propriedades CSS como font-family, color, background-color e border funcionam conforme esperado, permitindo tratamentos visuais sofisticados que exigiriam código de baixo nível extensivo em outras bibliotecas.

Como adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo: Imagem 3 - Como adicionar cabeçalho e rodapé em PDF - IronPDF

Como adicionar cabeçalhos a documentos PDF existentes?

Uma necessidade comum envolve adicionar cabeçalhos e rodapés a arquivos PDF já existentes — sejam documentos carregados, arquivos mesclados ou PDFs gerados por outros sistemas. O IronPDF lida com esse cenário com os métodos AddHtmlHeaders e AddHtmlFooters.

using IronPdf;

// Load an existing PDF document
var pdf = PdfDocument.FromFile("customer-profile.pdf");

// Define the header to add
var header = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align: center;'>REVISED COPY - {date}</div>",
    MaxHeight = 20
};

// Define the footer to add
var footer = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align: right;'>Page {page}</div>",
    MaxHeight = 15
};

// Apply headers and footers to all pages
pdf.AddHtmlHeaders(header);
pdf.AddHtmlFooters(footer);
pdf.SaveAs("document-with-new-headers.pdf");
using IronPdf;

// Load an existing PDF document
var pdf = PdfDocument.FromFile("customer-profile.pdf");

// Define the header to add
var header = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align: center;'>REVISED COPY - {date}</div>",
    MaxHeight = 20
};

// Define the footer to add
var footer = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align: right;'>Page {page}</div>",
    MaxHeight = 15
};

// Apply headers and footers to all pages
pdf.AddHtmlHeaders(header);
pdf.AddHtmlFooters(footer);
pdf.SaveAs("document-with-new-headers.pdf");
Imports IronPdf

' Load an existing PDF document
Dim pdf = PdfDocument.FromFile("customer-profile.pdf")

' Define the header to add
Dim header As New HtmlHeaderFooter With {
    .HtmlFragment = "<div style='text-align: center;'>REVISED COPY - {date}</div>",
    .MaxHeight = 20
}

' Define the footer to add
Dim footer As New HtmlHeaderFooter With {
    .HtmlFragment = "<div style='text-align: right;'>Page {page}</div>",
    .MaxHeight = 15
}

' Apply headers and footers to all pages
pdf.AddHtmlHeaders(header)
pdf.AddHtmlFooters(footer)
pdf.SaveAs("document-with-new-headers.pdf")
$vbLabelText   $csharpLabel

A classe PdfDocument representa um PDF carregado ou renderizado e fornece métodos para modificações pós-renderização. Essa separação entre renderização e modificação possibilita fluxos de trabalho em que documentos PDF passam por múltiplas etapas de processamento. O método AddHtmlHeaders aplica automaticamente o cabeçalho a todas as páginas, embora você também possa direcionar páginas específicas passando uma coleção de índices de página.

Entrada

Como adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo: Imagem 6 - Entrada de amostra

Saída

Como adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo: Imagem 7 - Saída de Cabeçalho de PDF Existente

Essa funcionalidade se mostra extremamente valiosa em sistemas de gerenciamento de documentos que recebem arquivos PDF de diversas fontes, como documentos digitalizados, uploads de usuários ou respostas de APIs de terceiros. O IronPDF padroniza a identidade visual ou a numeração de páginas antes da distribuição ou do arquivamento.

Como adicionar cabeçalhos diferentes em páginas diferentes?

Alguns documentos exigem que a primeira página tenha um cabeçalho diferente (ou nenhum cabeçalho), enquanto as páginas subsequentes utilizam um formato padrão. O IronPDF oferece suporte a isso através da aplicação de cabeçalhos baseados em índice de página -- não há necessidade de verificar condições dentro de manipuladores void OnEndPage ou gerenciar contadores de loop manualmente:

using IronPdf;
using System.Collections.Generic;
using System.Linq;
using System.Text;

var renderer = new ChromePdfRenderer();

// Build multi-page HTML with print page-breaks between pages
var pages = new List<string>
{
    "<section><h1>Title Page</h1><p>Intro text on page 1.</p></section>",
    "<section><h2>Report</h2><p>Detailed report content on page 2.</p></section>",
    "<section><h2>Appendix</h2><p>Appendix content on page 3.</p></section>"
};

var sb = new StringBuilder();
sb.AppendLine("<!doctype html><html><head><meta charset='utf-8'>");
sb.AppendLine("<style>");
sb.AppendLine("  body { font-family: Arial, sans-serif; margin: 20px; }");
sb.AppendLine("  .page-break { page-break-after: always; }");
sb.AppendLine("</style>");
sb.AppendLine("</head><body>");

for (int i = 0; i < pages.Count; i++)
{
    sb.AppendLine(pages[i]);
    if (i < pages.Count - 1)
        sb.AppendLine("<div class='page-break'></div>");
}
sb.AppendLine("</body></html>");

var pdf = renderer.RenderHtmlAsPdf(sb.ToString());

// Create the standard header for pages 2 onwards
var standardHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align: center;'>Standard Header - Page {page}</div>",
    MaxHeight = 20
};

// Apply to all pages except the first (index 0)
var pageIndices = Enumerable.Range(1, pdf.PageCount - 1).ToList();
pdf.AddHtmlHeaders(standardHeader, 1, pageIndices);
pdf.SaveAs("document-skip-first-page-header.pdf");
using IronPdf;
using System.Collections.Generic;
using System.Linq;
using System.Text;

var renderer = new ChromePdfRenderer();

// Build multi-page HTML with print page-breaks between pages
var pages = new List<string>
{
    "<section><h1>Title Page</h1><p>Intro text on page 1.</p></section>",
    "<section><h2>Report</h2><p>Detailed report content on page 2.</p></section>",
    "<section><h2>Appendix</h2><p>Appendix content on page 3.</p></section>"
};

var sb = new StringBuilder();
sb.AppendLine("<!doctype html><html><head><meta charset='utf-8'>");
sb.AppendLine("<style>");
sb.AppendLine("  body { font-family: Arial, sans-serif; margin: 20px; }");
sb.AppendLine("  .page-break { page-break-after: always; }");
sb.AppendLine("</style>");
sb.AppendLine("</head><body>");

for (int i = 0; i < pages.Count; i++)
{
    sb.AppendLine(pages[i]);
    if (i < pages.Count - 1)
        sb.AppendLine("<div class='page-break'></div>");
}
sb.AppendLine("</body></html>");

var pdf = renderer.RenderHtmlAsPdf(sb.ToString());

// Create the standard header for pages 2 onwards
var standardHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align: center;'>Standard Header - Page {page}</div>",
    MaxHeight = 20
};

// Apply to all pages except the first (index 0)
var pageIndices = Enumerable.Range(1, pdf.PageCount - 1).ToList();
pdf.AddHtmlHeaders(standardHeader, 1, pageIndices);
pdf.SaveAs("document-skip-first-page-header.pdf");
Imports IronPdf
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text

Dim renderer As New ChromePdfRenderer()

' Build multi-page HTML with print page-breaks between pages
Dim pages As New List(Of String) From {
    "<section><h1>Title Page</h1><p>Intro text on page 1.</p></section>",
    "<section><h2>Report</h2><p>Detailed report content on page 2.</p></section>",
    "<section><h2>Appendix</h2><p>Appendix content on page 3.</p></section>"
}

Dim sb As New StringBuilder()
sb.AppendLine("<!doctype html><html><head><meta charset='utf-8'>")
sb.AppendLine("<style>")
sb.AppendLine("  body { font-family: Arial, sans-serif; margin: 20px; }")
sb.AppendLine("  .page-break { page-break-after: always; }")
sb.AppendLine("</style>")
sb.AppendLine("</head><body>")

For i As Integer = 0 To pages.Count - 1
    sb.AppendLine(pages(i))
    If i < pages.Count - 1 Then
        sb.AppendLine("<div class='page-break'></div>")
    End If
Next
sb.AppendLine("</body></html>")

Dim pdf = renderer.RenderHtmlAsPdf(sb.ToString())

' Create the standard header for pages 2 onwards
Dim standardHeader As New HtmlHeaderFooter With {
    .HtmlFragment = "<div style='text-align: center;'>Standard Header - Page {page}</div>",
    .MaxHeight = 20
}

' Apply to all pages except the first (index 0)
Dim pageIndices = Enumerable.Range(1, pdf.PageCount - 1).ToList()
pdf.AddHtmlHeaders(standardHeader, 1, pageIndices)
pdf.SaveAs("document-skip-first-page-header.pdf")
$vbLabelText   $csharpLabel

O segundo parâmetro em AddHtmlHeaders especifica o número da página inicial para o campo mesclável {page}, enquanto o terceiro parâmetro aceita uma coleção de índices de página para receber o cabeçalho. Esse controle granular permite layouts de documentos complexos sem lógica condicional intrincada. O exemplo de Cabeçalhos e Rodapés Avançados abrange cenários adicionais, incluindo a diferenciação entre páginas pares e ímpares.

Saída

Como adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo: Imagem 9 - Diferentes cabeçalhos para diferentes páginas Saída

Como implementar conteúdo dinâmico além da numeração de páginas?

O sistema de campos mescláveis ​​suporta diversos valores dinâmicos que são preenchidos automaticamente durante a renderização. A tabela a seguir lista todos os campos disponíveis e seus significados:

Campos mescláveis ​​suportados em cabeçalhos e rodapés do IronPDF
Campo Valor inserido Uso típico
`{page}` Número da página atual Rodapés exibindo "Página 3"
`{total-pages}` Número total de páginas Rodapés exibindo "Página 3 de 10"
`{date}` Data atual no formato local Registros de data e hora da auditoria, datas dos relatórios
`{time}` Hora atual no formato local Rodapés de conformidade regulamentar
`{html-title}` Conteúdo da tag HTML ``</td> <td>Cabeçalhos de documento mostrando o título da página</td> </tr> <tr> <td>`{pdf-title}`</td> <td>título dos metadados do documento PDF</td> <td>Rodapés personalizados com o nome do documento</td> </tr> <tr> <td>`{url}`</td> <td>URL de origem ao renderizar a partir de um endereço web</td> <td>Rodapés de arquivo para conteúdo da web</td> </tr> </tbody> </table> <p>Para conteúdo verdadeiramente dinâmico -- valores determinados em tempo de execução -- você pode construir a string do fragmento HTML com valores interpolados antes de atribuí-la à propriedade <code>HtmlFragment</code>. Essa abordagem permite cabeçalhos que incluem valores recuperados do banco de dados, informações do usuário ou dados calculados:</p> <pre class='naked-code'><code class="language-csharp">using IronPdf; string userName = GetCurrentUserName(); string documentVersion = "v2.3.1"; var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter { HtmlFragment = $"<div style='font-size:10px;'>Prepared by: {userName} " + $"| Version: {documentVersion} " + "| Page {page} of {total-pages}</div>", MaxHeight = 20 }; var pdf = renderer.RenderHtmlAsPdf("<h1>Annual Report</h1><p>Body content here.</p>"); pdf.SaveAs("dynamic-header-report.pdf");</code></pre> <div class="code-content code-content-inner"> <div class="code_window" > <div class="language-selection__content-page-wrapper"> </div> <div class="code_window_content"> <div class="code-window__action-buttons-wrapper code-window__action-buttons-wrapper--content-page"> <button title="Clique para copiar" class="code-window__action-button code-window__action-button--copy copy-clipboard" data-copy-text="Clique para copiar" data-copied-text="Copiado para a área de transferência" data-clipboard-id="code-explorer" data-placement="bottom" > <i class="fa-kit fa-copy-example"></i> </button> <button title="Modo de tela cheia" class="code-window__action-button code-window__action-button--full-screen js-full-screen-code-example-modal" > <i class="fas fa-expand"></i> </button> <button title="Sair do modo tela cheia" class="code-window__action-button code-window__action-button--exit-full-screen js-exit-full-screen-code-example-modal" > <i class="fas fa-compress"></i> </button> </div> <pre class="prettyprint linenums lang-cs"><code>using IronPdf; string userName = GetCurrentUserName(); string documentVersion = "v2.3.1"; var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter { HtmlFragment = $"<div style='font-size:10px;'>Prepared by: {userName} " + $"| Version: {documentVersion} " + "| Page {page} of {total-pages}</div>", MaxHeight = 20 }; var pdf = renderer.RenderHtmlAsPdf("<h1>Annual Report</h1><p>Body content here.</p>"); pdf.SaveAs("dynamic-header-report.pdf");</code></pre> <pre class="prettyprint linenums lang-vb"><code>Imports IronPdf Dim userName As String = GetCurrentUserName() Dim documentVersion As String = "v2.3.1" Dim renderer As New ChromePdfRenderer() renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With { .HtmlFragment = $"<div style='font-size:10px;'>Prepared by: {userName} " & $"| Version: {documentVersion} " & "| Page {page} of {total-pages}</div>", .MaxHeight = 20 } Dim pdf = renderer.RenderHtmlAsPdf("<h1>Annual Report</h1><p>Body content here.</p>") pdf.SaveAs("dynamic-header-report.pdf")</code></pre> </div> <div class="code_window_bottom"> <span class="language_selection"> <span class="ls-span">$vbLabelText  </span> <span> <label class="switch"> <input type="checkbox" checked="checked"> <span class="slider round"></span> </label> </span> <span class="ls-span">$csharpLabel</span> </span> </div> </div> </div> <p>Observe que os tokens <code>{page}</code> e <code>{total-pages}</code> são deixados como strings simples dentro da concatenação de strings em C# -- não dentro da parte interpolada. Durante a renderização do PDF, o IronPDF substitui esses tokens automaticamente. Esse padrão funciona para qualquer valor em tempo de execução: nomes de usuário do Active Directory, IDs de documentos de um banco de dados, strings de versão do seu pipeline de compilação ou totais calculados do seu mecanismo de relatórios.</p> <p>A combinação de campos mescláveis ​​e interpolação de strings possibilita designs de rodapé sofisticados, comuns em documentos comerciais. Os departamentos jurídicos geralmente exigem rodapés que mostrem o título do documento, a data e o número de páginas. Os relatórios financeiros podem precisar de registros de data e hora para fins de conformidade regulatória. Esses requisitos são atendidos sem a necessidade de código personalizado para cada tipo de documento.</p> </section> <section class="md__article-chunk md__article-chunk__level-2" aria-labelledby="anchor-como-36-49-a-abordagem-do-itext-7" data-heading-level="2" data-heading-text="Como é a abordagem do iText 7?"> <h2 id="anchor-como-36-49-a-abordagem-do-itext-7">Como é a abordagem do iText 7?</h2> <p>Os desenvolvedores familiarizados com o iText 7 (o sucessor do iTextSharp) sabem que adicionar cabeçalhos e rodapés requer a implementação de manipuladores de eventos. A biblioteca usa um sistema de eventos de página onde você cria uma classe que responde a eventos do ciclo de vida do documento como <code>OnEndPage</code> e <code>OnCloseDocument</code>.</p> <p>Aqui está como a mesma implementação de cabeçalho e rodapé parece com o iText 7, usando o padrão <code>ITextEvents</code>:</p> <pre class='naked-code'><code class="language-csharp">using iText.Kernel.Pdf; using iText.Layout; using iText.Layout.Element; using iText.Kernel.Events; using iText.Kernel.Geom; using iText.Layout.Properties; // Event handler class for headers and footers -- similar to PdfPageEventHelper public class ITextEvents : IEventHandler { private string _header; public string Header { get { return _header; } set { _header = value; } } public void HandleEvent(Event currentEvent) { PdfDocumentEvent docEvent = (PdfDocumentEvent)currentEvent; PdfDocument pdfDoc = docEvent.GetDocument(); PdfPage page = docEvent.GetPage(); Rectangle pageSize = page.GetPageSize(); // Create a new PdfCanvas for the contentbyte object PdfCanvas pdfCanvas = new PdfCanvas( page.NewContentStreamBefore(), page.GetResources(), pdfDoc); Canvas canvas = new Canvas(pdfCanvas, pageSize); // Add header text at calculated position canvas.ShowTextAligned( new Paragraph("Quarterly Sales Report"), pageSize.GetWidth() / 2, pageSize.GetTop() - 20, TextAlignment.CENTER); // Add footer with page number int pageNumber = pdfDoc.GetPageNumber(page); canvas.ShowTextAligned( new Paragraph($"Page {pageNumber}"), pageSize.GetWidth() / 2, pageSize.GetBottom() + 20, TextAlignment.CENTER); canvas.Close(); } } // Usage in main code var writer = new PdfWriter("report.pdf"); var pdfDoc = new PdfDocument(writer); var document = new Document(pdfDoc); // Register the event handler for END_PAGE pdfDoc.AddEventHandler(PdfDocumentEvent.END_PAGE, new ITextEvents()); document.Add(new Paragraph("Sales Data")); document.Add(new Paragraph("Content goes here...")); document.Close();</code></pre> <div class="code-content code-content-inner"> <div class="code_window" > <div class="language-selection__content-page-wrapper"> </div> <div class="code_window_content"> <div class="code-window__action-buttons-wrapper code-window__action-buttons-wrapper--content-page"> <button title="Clique para copiar" class="code-window__action-button code-window__action-button--copy copy-clipboard" data-copy-text="Clique para copiar" data-copied-text="Copiado para a área de transferência" data-clipboard-id="code-explorer" data-placement="bottom" > <i class="fa-kit fa-copy-example"></i> </button> <button title="Modo de tela cheia" class="code-window__action-button code-window__action-button--full-screen js-full-screen-code-example-modal" > <i class="fas fa-expand"></i> </button> <button title="Sair do modo tela cheia" class="code-window__action-button code-window__action-button--exit-full-screen js-exit-full-screen-code-example-modal" > <i class="fas fa-compress"></i> </button> </div> <pre class="prettyprint linenums lang-cs"><code>using iText.Kernel.Pdf; using iText.Layout; using iText.Layout.Element; using iText.Kernel.Events; using iText.Kernel.Geom; using iText.Layout.Properties; // Event handler class for headers and footers -- similar to PdfPageEventHelper public class ITextEvents : IEventHandler { private string _header; public string Header { get { return _header; } set { _header = value; } } public void HandleEvent(Event currentEvent) { PdfDocumentEvent docEvent = (PdfDocumentEvent)currentEvent; PdfDocument pdfDoc = docEvent.GetDocument(); PdfPage page = docEvent.GetPage(); Rectangle pageSize = page.GetPageSize(); // Create a new PdfCanvas for the contentbyte object PdfCanvas pdfCanvas = new PdfCanvas( page.NewContentStreamBefore(), page.GetResources(), pdfDoc); Canvas canvas = new Canvas(pdfCanvas, pageSize); // Add header text at calculated position canvas.ShowTextAligned( new Paragraph("Quarterly Sales Report"), pageSize.GetWidth() / 2, pageSize.GetTop() - 20, TextAlignment.CENTER); // Add footer with page number int pageNumber = pdfDoc.GetPageNumber(page); canvas.ShowTextAligned( new Paragraph($"Page {pageNumber}"), pageSize.GetWidth() / 2, pageSize.GetBottom() + 20, TextAlignment.CENTER); canvas.Close(); } } // Usage in main code var writer = new PdfWriter("report.pdf"); var pdfDoc = new PdfDocument(writer); var document = new Document(pdfDoc); // Register the event handler for END_PAGE pdfDoc.AddEventHandler(PdfDocumentEvent.END_PAGE, new ITextEvents()); document.Add(new Paragraph("Sales Data")); document.Add(new Paragraph("Content goes here...")); document.Close();</code></pre> <pre class="prettyprint linenums lang-vb"><code>Imports iText.Kernel.Pdf Imports iText.Layout Imports iText.Layout.Element Imports iText.Kernel.Events Imports iText.Kernel.Geom Imports iText.Layout.Properties ' Event handler class for headers and footers -- similar to PdfPageEventHelper Public Class ITextEvents Implements IEventHandler Private _header As String Public Property Header As String Get Return _header End Get Set(value As String) _header = value End Set End Property Public Sub HandleEvent(currentEvent As [Event]) Implements IEventHandler.HandleEvent Dim docEvent As PdfDocumentEvent = CType(currentEvent, PdfDocumentEvent) Dim pdfDoc As PdfDocument = docEvent.GetDocument() Dim page As PdfPage = docEvent.GetPage() Dim pageSize As Rectangle = page.GetPageSize() ' Create a new PdfCanvas for the contentbyte object Dim pdfCanvas As New PdfCanvas(page.NewContentStreamBefore(), page.GetResources(), pdfDoc) Dim canvas As New Canvas(pdfCanvas, pageSize) ' Add header text at calculated position canvas.ShowTextAligned(New Paragraph("Quarterly Sales Report"), pageSize.GetWidth() / 2, pageSize.GetTop() - 20, TextAlignment.CENTER) ' Add footer with page number Dim pageNumber As Integer = pdfDoc.GetPageNumber(page) canvas.ShowTextAligned(New Paragraph($"Page {pageNumber}"), pageSize.GetWidth() / 2, pageSize.GetBottom() + 20, TextAlignment.CENTER) canvas.Close() End Sub End Class ' Usage in main code Dim writer As New PdfWriter("report.pdf") Dim pdfDoc As New PdfDocument(writer) Dim document As New Document(pdfDoc) ' Register the event handler for END_PAGE pdfDoc.AddEventHandler(PdfDocumentEvent.END_PAGE, New ITextEvents()) document.Add(New Paragraph("Sales Data")) document.Add(New Paragraph("Content goes here...")) document.Close()</code></pre> </div> <div class="code_window_bottom"> <span class="language_selection"> <span class="ls-span">$vbLabelText  </span> <span> <label class="switch"> <input type="checkbox" checked="checked"> <span class="slider round"></span> </label> </span> <span class="ls-span">$csharpLabel</span> </span> </div> </div> </div> <p>Esta implementação demonstra a diferença arquitetônica fundamental entre as duas bibliotecas. O iText 7 requer criar uma classe de manipulador separada que implementa <code>IEventHandler</code> (semelhante ao legado <code>PdfPageEventHelper</code>), calculando manualmente posições de página usando coordenadas flutuantes e gerenciando os objetos <code>PdfCanvas</code> e <code>Canvas</code> para operações de desenho. O manipulador recebe eventos para cada página através do tipo de evento <code>END_PAGE</code> -- um detalhe que confunde muitos desenvolvedores que usam erroneamente <code>START_PAGE</code>.</p> <section class="md__article-chunk md__article-chunk__level-3" aria-labelledby="anchor-sa36-49da" data-heading-level="3" data-heading-text="Saída"> <h3 id="anchor-sa36-49da">Saída</h3> <p>Como adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo: Imagem 8 - Como adicionar cabeçalho e rodapé em PDF usando iTextSharp em C# com exemplo</p> <p>O sistema de coordenadas no iText 7 tem origem no canto inferior esquerdo da página, exigindo cálculos explícitos para o posicionamento. Obter o número final de páginas exige complexidade adicional com padrões <code>PdfTemplate</code> que são preenchidos durante <code>OnCloseDocument</code> -- um padrão que adiciona mais código boilerplate a um fluxo de trabalho já envolvido.</p> <p>Para desenvolvedores com experiência em desenvolvimento web, essa abordagem baseada em coordenadas parece estranha em comparação com o modelo declarativo HTML/CSS. Cada decisão de posicionamento exige a compreensão das dimensões da página, das margens e do tamanho do texto — aspectos que são abstraídos em abordagens baseadas em HTML.</p> <p>O iText 7 também opera sob a licença AGPL, o que significa que os aplicativos que usam o iTextSharp ou o iText 7 devem ser de código aberto, a menos que uma licença comercial seja adquirida. Essa é uma consideração importante na hora de escolher entre bibliotecas para projetos comerciais.</p> </section> </section> <section class="md__article-chunk md__article-chunk__level-2" aria-labelledby="anchor-como-se-comparam-as-duas-abordagens" data-heading-level="2" data-heading-text="Como se comparam as duas abordagens?"> <h2 id="anchor-como-se-comparam-as-duas-abordagens">Como se comparam as duas abordagens?</h2> <p>As diferenças ficam mais claras quando se comparam as funcionalidades específicas. A tabela a seguir resume as principais distinções:</p> <table class="content__data-table" data-content-table> <caption>Comparação dos recursos de cabeçalho e rodapé do IronPDF e do iText 7</caption> <thead> <tr> <th>Recurso</th> <th>IronPDF</th> <th>iText 7 / iTextSharp</th> </tr> </thead> <tbody> <tr> <td>Estilo de implementação</td> <td>Atribuição de propriedade nas opções de renderização</td> <td>Classe de manipulador de eventos que implementa IEventHandler</td> </tr> <tr> <td>Suporte a HTML/CSS</td> <td>HTML e CSS completos via HtmlHeaderFooter</td> <td>Sem suporte nativo a HTML; requer desenho em canvas de baixo nível.</td> </tr> <tr> <td>Total de páginas</td> <td>Automático através do campo `{total-pages}`</td> <td>Requer que o PdfTemplate seja preenchido em OnCloseDocument.</td> </tr> <tr> <td>Imagem no cabeçalho</td> <td>Tag HTML padrão `<img loading="lazy" class="img-responsive add-shadow img-popup" alt=" related to Como se comparam as duas abordagens?">` com BaseUrl</td> <td>Requer objeto de imagem e posicionamento manual.</td> </tr> <tr> <td>Adicionar a um PDF existente</td> <td>Métodos AddHtmlHeaders / AddHtmlFooters</td> <td>Requer reprocessamento por meio de carimbo ou loop de eventos</td> </tr> <tr> <td>Segmentação por página</td> <td>Lista de índices de páginas passada para o método</td> <td>Lógica condicional dentro do manipulador de eventos</td> </tr> <tr> <td>Modelo de licença</td> <td>Comercial com período de teste gratuito</td> <td>AGPL (código aberto) ou comercial</td> </tr> <tr> <td>Multiplataforma</td> <td>Windows, Linux, macOS; compatível com Docker</td> <td>Windows, Linux, macOS</td> </tr> </tbody> </table> <p>A experiência de desenvolvimento também difere significativamente na resolução de problemas. A abordagem do IronPDF, baseada em HTML, permite que você visualize o design do cabeçalho em um navegador antes de integrá-lo ao código de geração de PDF. Se algo parecer errado, você pode ajustar o HTML e o CSS usando as ferramentas de desenvolvedor do navegador, que você já conhece. Com o iText 7, a depuração de problemas de posicionamento exige a geração repetida de PDFs de teste e a medição manual das coordenadas.</p> <p>A abordagem baseada em HTML significa que você pode aplicar diretamente suas habilidades existentes em desenvolvimento web. Qualquer layout possível com HTML e CSS funciona nos cabeçalhos e rodapés do IronPDF , desde arranjos flexbox até grades de imagens. O <a href="/pt/examples/html-headers-and-footers/" target="_blank">exemplo de cabeçalhos e rodapés HTML</a> demonstra possibilidades adicionais de estilização.</p> <section class="md__article-chunk md__article-chunk__level-3" aria-labelledby="anchor-personalizando-a-apar36-49ncia-do-cabe36-49alho-e-rodap36-49" data-heading-level="3" data-heading-text="Personalizando a aparência do cabeçalho e rodapé"> <h3 id="anchor-personalizando-a-apar36-49ncia-do-cabe36-49alho-e-rodap36-49">Personalizando a aparência do cabeçalho e rodapé</h3> <p>O ajuste fino de cabeçalhos e rodapés envolve diversas propriedades que afetam o posicionamento e a apresentação visual. A classe <code>TextHeaderFooter</code> fornece essas opções de personalização:</p> <pre class='naked-code'><code class="language-csharp">using IronPdf; using IronSoftware.Drawing; var renderer = new ChromePdfRenderer(); var footer = new TextHeaderFooter { LeftText = "Confidential", CenterText = "{pdf-title}", RightText = "Page {page} of {total-pages}", Font = FontTypes.Arial, FontSize = 9, DrawDividerLine = true, DrawDividerLineColor = Color.Gray }; renderer.RenderingOptions.TextFooter = footer; renderer.RenderingOptions.MarginBottom = 20; var pdf = renderer.RenderHtmlAsPdf("<h1>Board Report</h1><p>Executive summary content.</p>"); pdf.SaveAs("board-report.pdf");</code></pre> <div class="code-content code-content-inner"> <div class="code_window" > <div class="language-selection__content-page-wrapper"> </div> <div class="code_window_content"> <div class="code-window__action-buttons-wrapper code-window__action-buttons-wrapper--content-page"> <button title="Clique para copiar" class="code-window__action-button code-window__action-button--copy copy-clipboard" data-copy-text="Clique para copiar" data-copied-text="Copiado para a área de transferência" data-clipboard-id="code-explorer" data-placement="bottom" > <i class="fa-kit fa-copy-example"></i> </button> <button title="Modo de tela cheia" class="code-window__action-button code-window__action-button--full-screen js-full-screen-code-example-modal" > <i class="fas fa-expand"></i> </button> <button title="Sair do modo tela cheia" class="code-window__action-button code-window__action-button--exit-full-screen js-exit-full-screen-code-example-modal" > <i class="fas fa-compress"></i> </button> </div> <pre class="prettyprint linenums lang-cs"><code>using IronPdf; using IronSoftware.Drawing; var renderer = new ChromePdfRenderer(); var footer = new TextHeaderFooter { LeftText = "Confidential", CenterText = "{pdf-title}", RightText = "Page {page} of {total-pages}", Font = FontTypes.Arial, FontSize = 9, DrawDividerLine = true, DrawDividerLineColor = Color.Gray }; renderer.RenderingOptions.TextFooter = footer; renderer.RenderingOptions.MarginBottom = 20; var pdf = renderer.RenderHtmlAsPdf("<h1>Board Report</h1><p>Executive summary content.</p>"); pdf.SaveAs("board-report.pdf");</code></pre> <pre class="prettyprint linenums lang-vb"><code>Imports IronPdf Imports IronSoftware.Drawing Dim renderer As New ChromePdfRenderer() Dim footer As New TextHeaderFooter With { .LeftText = "Confidential", .CenterText = "{pdf-title}", .RightText = "Page {page} of {total-pages}", .Font = FontTypes.Arial, .FontSize = 9, .DrawDividerLine = True, .DrawDividerLineColor = Color.Gray } renderer.RenderingOptions.TextFooter = footer renderer.RenderingOptions.MarginBottom = 20 Dim pdf = renderer.RenderHtmlAsPdf("<h1>Board Report</h1><p>Executive summary content.</p>") pdf.SaveAs("board-report.pdf")</code></pre> </div> <div class="code_window_bottom"> <span class="language_selection"> <span class="ls-span">$vbLabelText  </span> <span> <label class="switch"> <input type="checkbox" checked="checked"> <span class="slider round"></span> </label> </span> <span class="ls-span">$csharpLabel</span> </span> </div> </div> </div> <p>A propriedade <code>Font</code> aceita valores de <code>IronSoftware.Drawing.FontTypes</code>, incluindo Helvetica, Arial, Courier e Times New Roman. A propriedade <code>DrawDividerLine</code> adiciona uma regra horizontal profissional entre o rodapé e o conteúdo principal. Você pode personalizar a cor da linha usando <code>DrawDividerLineColor</code> para corresponder às cores da sua marca ou ao tema do documento.</p> <p>Para cabeçalhos e rodapés baseados em HTML, a propriedade <code>LoadStylesAndCSSFromMainHtmlDocument</code> opcionalmente herda estilos do documento principal que está sendo renderizado, garantindo consistência visual entre cabeçalhos e conteúdo do corpo. Isso é particularmente útil quando o documento principal usa CSS personalizado que também deve ser aplicado às regiões do cabeçalho e do rodapé.</p> <p>Como adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo: Imagem 5 - Compatibilidade entre plataformas</p> </section> <section class="md__article-chunk md__article-chunk__level-3" aria-labelledby="anchor-implanta36-49es-multiplataforma-e-em-cont36-49ineres" data-heading-level="3" data-heading-text="Implantações multiplataforma e em contêineres"> <h3 id="anchor-implanta36-49es-multiplataforma-e-em-cont36-49ineres">Implantações multiplataforma e em contêineres</h3> <p>Aplicações .NET modernas frequentemente são implantadas em contêineres Linux, no Azure App Services ou em funções AWS Lambda. O IronPDF suporta a implementação multiplataforma em Windows, Linux e macOS sem necessidade de configuração adicional. A biblioteca funciona imediatamente em contêineres Docker, tornando-a adequada para arquiteturas de microsserviços e aplicações nativas da nuvem.</p> <p>Essa capacidade multiplataforma se estende à funcionalidade de cabeçalho e rodapé — o mesmo código que gera PDFs com cabeçalhos em uma máquina de desenvolvimento Windows produz resultados idênticos quando implantado em um servidor de produção Linux. Não é necessário instalar fontes adicionais, configurar mecanismos de renderização ou lidar com caminhos de código específicos da plataforma.</p> <p>Para equipes executando cargas de trabalho conteinerizadas, a <a href="/pt/get-started/linux/" target="_blank">documentação de implementação do IronPDF no Docker</a> fornece orientação de configuração para várias imagens base e plataformas de orquestração. O comportamento consistente da biblioteca em diferentes ambientes elimina uma fonte comum de erros nos fluxos de trabalho de geração de PDFs.</p> <p>De acordo com <a href="https://learn.microsoft.com/en-us/dotnet/core/deploying/" target="_blank" rel="nofollow noopener noreferrer">a documentação do .NET da Microsoft</a> , os aplicativos .NET em contêineres se beneficiam de um comportamento de tempo de execução consistente em diferentes ambientes — um princípio que o mecanismo de renderização do IronPDF reforça para tarefas de geração de PDF. Da mesma forma, <a href="https://docs.docker.com/get-started/" target="_blank" rel="nofollow noopener noreferrer">a documentação oficial do Docker</a> explica as melhores práticas para conteinerizar cargas de trabalho .NET , que se aplicam diretamente aos serviços de geração de PDF.</p> <p>A <a href="https://itextpdf.com/resources/api-documentation" target="_blank" rel="nofollow noopener noreferrer">documentação do iText 7</a> também confirma o suporte multiplataforma, mas a complexidade adicional do seu modelo orientado a eventos significa que a depuração de problemas de renderização multiplataforma pode ser mais trabalhosa do que com uma abordagem declarativa baseada em HTML.</p> </section> </section> <section class="md__article-chunk md__article-chunk__level-2" aria-labelledby="anchor-quais-s36-49o-os-seus-pr36-49ximos-passos" data-heading-level="2" data-heading-text="Quais são os seus próximos passos?"> <h2 id="anchor-quais-s36-49o-os-seus-pr36-49ximos-passos">Quais são os seus próximos passos?</h2> <p>Com o IronPDF, adicionar cabeçalhos e rodapés aos seus documentos PDF leva apenas alguns minutos. Instale a biblioteca através do Gerenciador de Pacotes NuGet :</p> <pre class='naked-code'><code class="language-bash">Install-Package IronPdf dotnet add package IronPdf</code></pre> <div class="code-content code-content-inner" > <div class="code_window" > <div class="code_window_content"> <div class="code-window__action-buttons-wrapper code-window__action-buttons-wrapper--content-page"> <button title="Clique para copiar" class="code-window__action-button code-window__action-button--copy copy-clipboard" data-copy-text="Clique para copiar" data-copied-text="Copiado para a área de transferência" data-clipboard-id="code-explorer" data-placement="bottom" > <i class="fa-kit fa-copy-example"></i> </button> <button title="Modo de tela cheia" class="code-window__action-button code-window__action-button--full-screen js-full-screen-code-example-modal" > <i class="fas fa-expand"></i> </button> <button title="Sair do modo tela cheia" class="code-window__action-button code-window__action-button--exit-full-screen js-exit-full-screen-code-example-modal" > <i class="fas fa-compress"></i> </button> </div> <pre class="prettyprint linenums lang-shell"><code>Install-Package IronPdf dotnet add package IronPdf</code></pre> </div> <div class="code_window_bottom"> <span class="pull-right"><span class="ls-span" style='font-weight: 600'>SHELL</span> </div> </div> </div> <p>Como adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo: Imagem 10 - Instalação</p> <p>A partir daqui, estes recursos irão ajudá-lo a ir mais longe:</p> <ul> <li><strong><a href="/pt/docs/" target="_blank">Documentação de Introdução</a></strong> -- abrange toda a gama de recursos de geração e manipulação de PDFs <strong><a href="/pt/how-to/headers-and-footers/" target="_blank">Guia prático de cabeçalhos e rodapés</a></strong> -- instruções passo a passo para todos os cenários de cabeçalho e rodapé</li> <li><strong><a href="/pt/examples/html-headers-and-footers/" target="_blank">Exemplo de cabeçalhos e rodapés HTML</a></strong> -- exemplos de código prontos para uso para cabeçalhos baseados em HTML <strong><a href="/pt/examples/adding-headers-and-footers-advanced/" target="_blank">Exemplo avançado de cabeçalhos e rodapés</a></strong> : segmentação por página e diferenciação entre páginas pares e ímpares.</li> <li><strong><a href="/pt/object-reference/api/IronPdf.TextHeaderFooter.html" target="_blank">Referência da API TextHeaderFooter</a></strong> -- lista completa de propriedades para cabeçalhos e rodapés baseados em texto</li> <li><strong><a href="/pt/object-reference/api/IronPdf.HtmlHeaderFooter.html" target="_blank">Referência da API HtmlHeaderFooter</a></strong> -- API completa para cabeçalhos e rodapés baseados em HTML</li> <li><strong><a href="/pt/get-started/linux/" target="_blank">Guia de implantação do Docker</a></strong> – configuração para contêineres Linux e ambientes em nuvem</li> <li><strong><a href="/pt/licensing/" target="_blank">Opções de licenciamento do IronPDF</a></strong> -- planos para desenvolvedores individuais até equipes corporativas</li> </ul> <p><a href="#trial-license" data-modal-id="trial-license" class="js-modal-open">Inicie seu teste gratuito</a> para experimentar as implementações de cabeçalho e rodapé em seus próprios projetos. A versão de avaliação inclui todos os recursos, sem limite de tempo para uso, permitindo que você avalie a biblioteca em relação às suas necessidades reais de documentos PDF antes de adquirir uma licença.</p> <p>Como adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo: Imagem 11 - Licenciamento</p> <p>Adicionar cabeçalhos e rodapés a documentos PDF em C# varia de simples a complexo, dependendo da biblioteca escolhida. Enquanto o iText 7 oferece controle de baixo nível por meio de manipuladores de eventos e operações de canvas, o IronPDF fornece a mesma funcionalidade por meio de uma API que aplica conceitos familiares de HTML e CSS. Para desenvolvedores que priorizam implementação rápida e código de fácil manutenção, o IronPDF reduz a implementação de cabeçalhos e rodapés de dezenas de linhas de código — incluindo classes de manipuladores, configurações de células e estruturas de tabelas — para apenas algumas atribuições de propriedades.</p></section> </div> <section id="article__faqs" class="bg" style="min-height: 500px; contain-intrinsic-size: auto 1065px;"> <h2 class="article__faqs__heading-title">Perguntas frequentes</h2> <div class="article__faqs__questions-and-answers container-fluid"> <div class="tab-pane in active" id="ta-faq"> <div class="faq-item"> <div class="faq-collapse"> <i class="fa-solid fa-plus"></i> <i class="fa-solid fa-minus"></i> </div> <div class="faq-content"> <h3 class="question-header">Como posso adicionar cabeçalhos e rodapés a PDFs usando o iTextSharp?</h3> <p class="question-answer">Para adicionar cabeçalhos e rodapés a PDFs usando o iTextSharp, você pode definir um manipulador de eventos de página que personaliza as páginas do documento durante o processo de criação do PDF. Isso envolve sobrescrever o método OnEndPage para incluir o conteúdo de cabeçalho e rodapé desejado.</p> </div> </div> <div class="faq-item"> <div class="faq-collapse"> <i class="fa-solid fa-plus"></i> <i class="fa-solid fa-minus"></i> </div> <div class="faq-content"> <h3 class="question-header">Quais são os benefícios de usar o IronPDF para adicionar cabeçalhos e rodapés?</h3> <p class="question-answer">O IronPDF simplifica o processo de adição de cabeçalhos e rodapés, fornecendo uma API intuitiva e suportando diversas opções de estilo. Ele se integra perfeitamente a projetos C# e oferece recursos adicionais, como a conversão de HTML para PDF, tornando-se uma ferramenta versátil para manipulação de PDFs.</p> </div> </div> <div class="faq-item"> <div class="faq-collapse"> <i class="fa-solid fa-plus"></i> <i class="fa-solid fa-minus"></i> </div> <div class="faq-content"> <h3 class="question-header">O IronPDF e o iTextSharp podem ser usados em conjunto?</h3> <p class="question-answer">Sim, o IronPDF e o iTextSharp podem ser usados juntos em um projeto C#. Embora o iTextSharp seja ótimo para manipulação programática de PDFs, o IronPDF o complementa, fornecendo recursos adicionais, como a conversão de HTML para PDF, o que pode ser útil para gerar cabeçalhos e rodapés dinamicamente.</p> </div> </div> <div class="faq-item"> <div class="faq-collapse"> <i class="fa-solid fa-plus"></i> <i class="fa-solid fa-minus"></i> </div> <div class="faq-content"> <h3 class="question-header">Existe alguma maneira de estilizar cabeçalhos e rodapés usando o IronPDF?</h3> <p class="question-answer">O IronPDF permite estilizar cabeçalhos e rodapés usando HTML e CSS. Isso oferece aos desenvolvedores a flexibilidade de criar designs e layouts visualmente atraentes para seus documentos PDF.</p> </div> </div> <div class="faq-item"> <div class="faq-collapse"> <i class="fa-solid fa-plus"></i> <i class="fa-solid fa-minus"></i> </div> <div class="faq-content"> <h3 class="question-header">Como o IronPDF lida com a numeração de páginas em cabeçalhos e rodapés?</h3> <p class="question-answer">O IronPDF pode inserir automaticamente números de página em cabeçalhos e rodapés. Ele oferece opções para formatar os números de página de acordo com suas necessidades, como incluir a contagem total de páginas ou ajustar o número da página inicial.</p> </div> </div> <div class="faq-item"> <div class="faq-collapse"> <i class="fa-solid fa-plus"></i> <i class="fa-solid fa-minus"></i> </div> <div class="faq-content"> <h3 class="question-header">Qual a vantagem de usar C# para manipulação de PDFs com o IronPDF?</h3> <p class="question-answer">Utilizar C# para manipulação de PDFs com o IronPDF oferece forte segurança de tipos, fácil integração com aplicações .NET e acesso a uma ampla gama de bibliotecas e ferramentas que aprimoram o processo de desenvolvimento. A API C# do IronPDF foi projetada para ser intuitiva e fácil de usar, tornando-a acessível a desenvolvedores de todos os níveis de habilidade.</p> </div> </div> <div class="faq-item"> <div class="faq-collapse"> <i class="fa-solid fa-plus"></i> <i class="fa-solid fa-minus"></i> </div> <div class="faq-content"> <h3 class="question-header">Posso converter documentos existentes para PDF usando o IronPDF?</h3> <p class="question-answer">Sim, o IronPDF pode converter vários formatos de documentos, incluindo HTML, ASPX e outros conteúdos da web, em PDF. Esse recurso é particularmente útil para criar PDFs a partir de páginas da web ou conteúdo gerado dinamicamente.</p> </div> </div> </div> </div> </section> <script> document.addEventListener("DOMContentLoaded", function() { onViewLoadAsync( "#article__faqs", function() { }, ["common__faqs.js", "content__faqs.css", "article__faqs.css"] ); const articleFaqs = document.querySelector("#article__faqs .tab-pane"); if (!articleFaqs) return; articleFaqs.addEventListener("click", (evt) => { const targeted = evt.target.closest(".faq-item"); if (!targeted) return; targeted.classList.toggle("faq-item--active"); }); }); </script> <div class="author-details" id="author"> <div class="d-flex column-gap-4"> <div class="col_image"> <img loading="lazy" src="/img/how-tos/authors/curtis.png" alt="Curtis Chau" class="author-image" width="64" height="64"> </div> <div class="col_detail"> <div class="author-details__connect"> <div class="d-flex align-items-center flex-wrap"> <div class="author-details__connect__author"> <div class="author-name text-no-wrap"> <a href="https://ironsoftware.com/pt/about-us/authors/curtis/" aria-label="">Curtis Chau</a> </div> <div class="author-details__connect__linkedin"> <a href="https://www.linkedin.com/in/curtis-chau-937368213/" target="_blank"><i class="fa-brands fa-linkedin" target="_blank" rel="nofollow"></i></a> </div> <div class="author-details__connect__website"> <a href="https://github.com/CurtisChau" target="_blank"><i class="fa-solid fa-globe"></i></a> </div> </div> <div class="author-details__chat"> <a href="#live-chat-support"><i class="fa-solid fa-comments"></i>  <span class="d-none d-md-inline">Converse agora mesmo com a equipe de engenharia. </a></span> </div> </div> </div> <div class="author-job-title">Redator Técnico</div> <div class="author-bio"><p>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 ...</div><a class="author-job-title__read-more" href="https://ironsoftware.com/pt/about-us/authors/curtis/">Leia mais</a> </div> </div> </div> <div class="feedback_form"> </div> <div class="blog_end_line"></div> <div class="page_blog_listing module section_blog_listing"> <section class="col-12" id="blog_post--related-articles"> <h2>Artigos relacionados</h2> <div class="container-fluid blog_post--related-articles__list"> <div class="row row-cols-1 row-cols-sm-2 row-cols-lg-3 g-4"> <div class="col"> <article class="h-100"> <a href="/pt/blog/using-ironpdf/ironpdf-monthly-statements/" class="d-block h-100 item_box" title="Geração de extratos de conta mensais em formato PDF"> <div class="ratio ratio-16x9 blog_listing_image_placeholder ironpdf"></div> <div class="p-4"> <div class="info d-flex"><span class="post_date d-block flex-grow-1">Atualizado <time datetime="2026-03-31">março 30, 2026</time></span></div> <h3 class="post_header">Geração de extratos de conta mensais em formato PDF</h3> <p class="post_description">Utilizando a biblioteca IronPDF C# para PDF, os desenvolvedores podem converter HTML em arquivos PDF confiáveis dentro de um projeto .NET sem depender de serviços externos.</p> <p class="read_more">Leia mais<i class="fa-solid fa-chevron-right"></i></p> </div> </a> </article> </div> <div class="col"> <article class="h-100"> <a href="/pt/blog/using-ironpdf/ironpdf-form-to-pdf/" class="d-block h-100 item_box" title="Transformando formulários de inscrição online em resumos em PDF usando o IronPDF"> <div class="ratio ratio-16x9 blog_listing_image_placeholder ironpdf"><img class="object-fit-cover" alt="Transformando formulários de inscrição online em resumos em PDF usando o IronPDF" src="/static-assets/pdf/blog/ironpdf-form-to-pdf/ironpdf-form-to-pdf-4.webp" width="1428" height="517" decoding="async" loading="lazy"></div> <div class="p-4"> <div class="info d-flex"><span class="post_date d-block flex-grow-1">Atualizado <time datetime="2026-03-31">março 30, 2026</time></span></div> <h3 class="post_header">Transformando formulários de inscrição online em resumos em PDF usando o IronPDF</h3> <p class="post_description">Aprenda a usar o IronPDF para gerar um registro rastreável do envio de um formulário online — útil para fins de conformidade governamental.</p> <p class="read_more">Leia mais<i class="fa-solid fa-chevron-right"></i></p> </div> </a> </article> </div> <div class="col"> <article class="h-100"> <a href="/pt/blog/using-ironpdf/ironpdf-fintech-receipts/" class="d-block h-100 item_box" title="Recibos em PDF e registros de transações em C# para aplicativos de tecnologia financeira."> <div class="ratio ratio-16x9 blog_listing_image_placeholder ironpdf"></div> <div class="p-4"> <div class="info d-flex"><span class="post_date d-block flex-grow-1">Atualizado <time datetime="2026-03-31">março 30, 2026</time></span></div> <h3 class="post_header">Recibos em PDF e registros de transações em C# para aplicativos de tecnologia financeira.</h3> <p class="post_description">Leia para aprender como usar o IronPDF para criar registros rastreáveis e com carimbo de data/hora de transações no ponto de atendimento.</p> <p class="read_more">Leia mais<i class="fa-solid fa-chevron-right"></i></p> </div> </a> </article> </div> </div> </div> </section> </div> <div class="blog_end_line"></div> <div class="blog_bottom_nav"><div class="blog_bottom_nav row row-cols-2"><div class="text-start text-truncate"><a href="/pt/blog/using-ironpdf/dynamic-pdf-generation/" class="link previous">Como gerar PDFs dinamicamente em .NET usando o IronPDF</a></div><div class="text-end text-truncate"><a href="/pt/blog/using-ironpdf/retrieve-pdf-file-from-database-apr-net/" class="link next">Como Recuperar Arquivos PDF de um B...</a></div></div></div> </article> </div> <div id="blog_sidebar--right" class="blog_sidebar--right"> <aside id="blog_post--right_content" class="right_column right_sidebar_wrapper"> <div class="sticky-top z-0 specific_sticky_height"> <!-- Tutorial Videos Start --> <!-- Tutorial Videos End --> <div class="block_on_this_page"> <div id="blog_right_scrollspy_menu" class="menu_wrapper"> <h2 class="table_of_contents--header">Nesta página</h2> <ul id="scroll-menu" class="blog_post_on_this_page"> <li> <a href="#anchor-adicionando-cabe36-49alhos-e-rodap36-49s-a-documentos-pdf-em-c" class=""><span>Adicionando cabeçalhos e rodapés a documentos PDF em C</span></a> </li> <li> <a href="#anchor-por-que-os-cabe36-49alhos-e-rodap36-49s-de-pdfs-s36-49o-importantes-em-documentos-profissionais" class=""><span>Por que os cabeçalhos e rodapés de PDFs são importantes em documentos profissionais?</span></a> </li> <li> <a href="#anchor-como-adicionar-um-cabe36-49alho-e-rodap36-49-de-texto-em-c" class=""><span>Como adicionar um cabeçalho e rodapé de texto em C#?</span></a> <ul class=""> <li class=""> <a href="#anchor-sa36-49da"><span>Saída</span></a> </li> </ul> </li> <li> <a href="#anchor-como-criar-cabe36-49alhos-e-rodap36-49s-com-estilo-html" class=""><span>Como criar cabeçalhos e rodapés com estilo HTML?</span></a> </li> <li> <a href="#anchor-como-adicionar-cabe36-49alhos-a-documentos-pdf-existentes" class=""><span>Como adicionar cabeçalhos a documentos PDF existentes?</span></a> <ul class=""> <li class=""> <a href="#anchor-entrada"><span>Entrada</span></a> </li> <li class=""> <a href="#anchor-sa36-49da"><span>Saída</span></a> </li> </ul> </li> <li> <a href="#anchor-como-adicionar-cabe36-49alhos-diferentes-em-p36-49ginas-diferentes" class=""><span>Como adicionar cabeçalhos diferentes em páginas diferentes?</span></a> <ul class=""> <li class=""> <a href="#anchor-sa36-49da"><span>Saída</span></a> </li> </ul> </li> <li> <a href="#anchor-como-implementar-conte36-49do-din36-49mico-al36-49m-da-numera36-49o-de-p36-49ginas" class=""><span>Como implementar conteúdo dinâmico além da numeração de páginas?</span></a> </li> <li> <a href="#anchor-como-36-49-a-abordagem-do-itext-7" class=""><span>Como é a abordagem do iText 7?</span></a> <ul class=""> <li class=""> <a href="#anchor-sa36-49da"><span>Saída</span></a> </li> </ul> </li> <li> <a href="#anchor-como-se-comparam-as-duas-abordagens" class=""><span>Como se comparam as duas abordagens?</span></a> <ul class=""> <li class=""> <a href="#anchor-personalizando-a-apar36-49ncia-do-cabe36-49alho-e-rodap36-49"><span>Personalizando a aparência do cabeçalho e rodapé</span></a> </li> <li class=""> <a href="#anchor-implanta36-49es-multiplataforma-e-em-cont36-49ineres"><span>Implantações multiplataforma e em contêineres</span></a> </li> </ul> </li> <li> <a href="#anchor-quais-s36-49o-os-seus-pr36-49ximos-passos" class=""><span>Quais são os seus próximos passos?</span></a> </li> </ul> </div> </div> <div> <div class="nuget-sidebar-wrapper nuget-sidebar-wrapper--right-sidebar nuget-variant-3"> <div class="nuget-sidebar-header-block"> <div class="nuget-sidebar-header-block__logo-block"> <a href="https://nuget.org/packages/IronPdf" target="_blank"><img loading="lazy" src="/img/nuget.blue.svg" alt="Gratuito para desenvolvimento a partir do NuGet." width="38" height="38" data-modal-id="trial-license-after-download" class="js-modal-open"></a> </div> <div class="nuget-sidebar-header-block__text-block" data-bs-toggle="modal"> <p class="nuget-sidebar-header-block__text-block__big-text"> <a href="https://nuget.org/packages/IronPdf" target="_blank" data-modal-id="trial-license-after-download" class="js-modal-open"> Instalar com <span class="nuget-sidebar-header-block__text-block__big-text--blue">NuGet</span> <span class="nuget-sidebar-header-block__text-block__small-text">nuget.org/packages/<span class="text-block__small-text--inline-block">IronPdf</span></span> </a> </p> </div> </div> <div class="nuget-sidebar-cli vwo-nuget-copy vwo-nuget-copy--ironpdf" data-bs-custom-class="tooltipCopyToClipboard"> <div class="nuget-sidebar-cli__command"> <p class="nuget-sidebar-cli__command__text"> PM > <span class="js-nuget-sidebar-cli__command__text">Install-Package IronPdf</span> </p> </div> <div class="nuget-sidebar-cli__copy-block"> <span class="fas copy-icon-white"></span> </div> </div> </div> </div> <div class="join_bug_bounty"> <h2>Reportar um problema</h2> <ul class="list-unstyled rt-list"> <li class="list-unstyled__item-flex-align-items-center"><i class="fa-regular fa-pen-to-square"></i>   <button class="js-modal-open" data-modal-id="article-feedback-modal">Participe do nosso programa de recompensas por bugs e ganhe itens de ferro!</button> </li> </ul> </div> </div> </div> </aside> </div> </div> <!-- offcanvas menu --> <div id="offcanvas_blog_right_sidebar" class="offcanvas offcanvas-end offcanvas_blog_right_sidebar" data-bs-scroll="true" data-bs-backdrop="false" tabindex="-1" aria-labelledby="offcanvas_blog_right_sidebar"> <!-- button toggle offcanvas right sidebar --> <div id="button_toggle_blog_right_sidebar" class="button_toggle_blog_right_sidebar" data-bs-toggle="offcanvas" data-bs-target="#offcanvas_blog_right_sidebar" aria-controls="offcanvasScrolling"> <div class="button_icons_open_offcanvas"><i class="fa-solid fa-angle-left"></i><i class="fa-solid fa-list-ul ms-1"></i></div> <div class="button_icons_close_offcanvas" style="display:none;"><i class="fa-solid fa-x"></i></div> </div> <div class="offcanvas-body" style="box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.25); background-color:#fafafb; padding:0 20px 0;"> <div id="place_holder_offcanvas_blog_right_sidebar"></div> </div> </div> <!-- A/B test new content layout 2025 May, end --> <section style="container-type: inline-size;"></section> </main> <section class="bifrost"></section> <div class="modal fade img-popup-modal" id="img-popup-modal" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog" data-bs-dismiss="modal"> <div class="modal-loaded donotdelete" style="font-size: 1px; display: none;"></div> <div class="modal-content" > <div class="modal-title"> <!--<button type="button" class="close" data-bs-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>--> <i data-bs-dismiss="modal" aria-hidden="true" class="fas fa-times slide-out-close"></i> </div> <div class="modal-body"> <img class="img-popup-fullsize" loading="lazy" src="" alt=" related to Adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo"> <p class="img-popup-caption"></p> </div> </div> </div> </div> <script> document.addEventListener("DOMContentLoaded", function() { var element = document.querySelector("#img-popup-modal"); document.onElementViewportIntersect(element, function() { importModal(["image-popup.js", "modals/image-popup.css"], "img-popup-modal"); }); }) </script> <div class="modal cv-auto" id="download-modal"> <div class="modal-dialog products-download dm-IronPDF ironpdf"> <div class="modal-loaded donotdelete"></div> <div class="modal-content"> <div class="modal-header"> <i data-bs-dismiss="modal" aria-hidden="true" class="fas fa-times slide-out-close"></i> </div> <div class="modal-body"> <div class="dm-col-left"> <div class="products-title">Experimente IronPDF gratuitamente</div> <div class="subtitle">Configure tudo em 5 minutos</div> <div class="image-box"> <img class="img-responsive" loading="lazy" src="/img/license-types/icon-lightbulb.svg" alt="Icon Lightbulb related to Adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo"> </div> </div> <div class="dm-col-right"> <div class="row"> <div class="col-md-6"> <div class="js-modal-open product-item nuget vwo-nuget-copy" data-modal-id="trial-license-after-download" > <div class="product-section" style="padding: 33px 25px 28px;"> <div class="row"> <div class="col-lg-2 product-image"> <img class="img-responsive add-shadow" loading="lazy" src="/img/nuget-logo.svg" alt="Biblioteca NuGet C# para PDF" > </div> <div class="col-lg-10 product-info"> <div class="products-title">Instalar com <span>NuGet</span></div> <div class="subtitle"><strong>Versão:</strong> 2026.4</div> </div> </div> <div class="js-open-modal-ignore copy-nuget-section" data-toggle="tooltip" data-copy-text="Clique para copiar" , data-copied-text="Copiado para a área de transferência" data-placement="top" title="Clique para copiar"> <div class="copy-nuget-row vwo-nuget-copy"> <pre class="install-script">Install-Package IronPdf</pre> <div class="copy-button"> <button class="btn btn-default copy-nuget-script" type="button" data-toggle="popover" data-placement="top" data-content="Copiado para a área de transferência" aria-label="Copie o comando do Gerenciador de Pacotes" data-original-title="Clique para copiar" title="Clique para copiar"> <span class="fas copy-icon-white"></span> </button> </div> </div> </div> <div class="nuget-link"> nuget.org/packages/IronPdf/ </div> </div> <div class="product-section"> <ol class="product-description"> <li><span>No Solution Explorer, clique com o botão direito do mouse em Referências e selecione Gerenciar Pacotes NuGet.</span></li> <li><span>Selecione Procurar e pesquise "IronPDF".</span></li> <li><span>Selecione o pacote e instale.</span></li> </ol> </div> </div> </div> <div class="col-md-6"> <div class="js-modal-open product-item dll" data-modal-id="trial-license-after-download" > <div class="product-section"> <div class="row"> <div class="col-lg-2 product-image"> <img class="img-responsive add-shadow" loading="lazy" src="/img/dll-img.png" alt="DLL de PDF em C#" > </div> <div class="col-lg-10 product-info"> <div class="products-title">Baixar <span>DLL</span></div> <div class="subtitle"><strong>Versão:</strong> 2026.4</div> </div> </div> <div class="download-dll-section"> <a class="btn btn-red download-library-dropdown dark-version" href="/packages/IronPdf.zip" data-toggle="tooltip" data-placement="bottom" data-html="true" title="<div class='library_download_dropdown_tooltip'><div class='library_download_dropdown_tooltip__menuitem' data-download-link='/packages/IronPdf.zip'><span class='library_download_dropdown_tooltip__menuitem_text'><i class='library_download_dropdown_tooltip__menuitem_fa-icon fab fa-microsoft'></i><span class='library_download_dropdown_tooltip_menuitem_text-label'>Para Windows</span></span></div><div class='library_download_dropdown_tooltip__menuitem' data-download-link='/packages/IronPdf.MacOs.zip'><span class='library_download_dropdown_tooltip__menuitem_text'><i class='library_download_dropdown_tooltip__menuitem_fa-icon fab fa-apple'></i><span class='library_download_dropdown_tooltip_menuitem_text-label'>Para macOS</span></span></div><div class='library_download_dropdown_tooltip__menuitem' data-download-link='/packages/IronPdf.Linux.zip'><span class='library_download_dropdown_tooltip__menuitem_text'><i class='library_download_dropdown_tooltip__menuitem_fa-icon fab fa-linux'></i><span class='library_download_dropdown_tooltip_menuitem_text-label'>Para Linux</span></span></div></div>" download><i class="fas fa-download"></i> Baixe agora</a> <div class="subtitle">ou faça o download do Windows Installer <a href="/packages/IronPdfInstaller.zip" class="ga-windows-installer" title="Baixe o instalador do Iron Software para Windows.">aqui</a> .</div> </div> </div> <div class="product-section"> <ol class="product-description"> <li><span>Baixe e descompacte o IronPDF em um local como ~/Libs dentro do diretório da sua solução.</span></li> <li><span>No Solution Explorer do Visual Studio, clique com o botão direito do mouse em Referências. Selecione Procurar e digite "IronPDF.dll".</span></li> </ol> </div> </div> </div> </div> <div class="licensing-link"> Licenças a partir de <a href="/pt/licensing/" target="_blank">US$ 749</a> </div> </div> </div> <div class="dm-modal-footer"> <div class="dm-col-left"> </div> <div class="dm-col-right"> <p class="helpscout-text">Tem alguma dúvida? <a href="#live-chat-support">Entre em contato</a> com nossa equipe de desenvolvimento.</p> </div> </div> </div> </div> </div> <script> document.addEventListener("DOMContentLoaded", function() { setupModalPopup("#download-modal", "download-modal", ["modals/download.css", "download-modal.js"], () => { const dlSection = qs("#download-modal .col-md-6, #download-modal .ironpdf-java__maven-install-section"); const packageUrl = "/packages/IronPdf.zip"; const filename = "IronPdf.zip" if (!dlSection) return; registerDownloadAction(dlSection, "click", packageUrl, filename); }); }); </script> <div class="modal cv-auto" id="trial-license-after-download" tabindex="-1" data-bs-backdrop="true" data-form-id="b93685fb-4445-4114-8b0a-4af3ec564c41" data-ironproduct-key="ironpdf" data-js-modal-id="trial-license-after-download"> <div class="modal-config" data-for-product="ironpdf"> <span class="trial-license-inactive-timeout" data-trial-license-inactive-timeout="15"></span> <span class="trial-license-inactive-timeout-interval" data-trial-license-inactive-timeout-interval="1000"></span> <span class="trial-license-reset-state-in-days" data-trial-license-reset-state-in-days="1"></span> </div> <div class="modal-dialog"> <div class="modal-content modal-content_border-0 modal-content_padding-0"> <div class="trial-license-after-download-modal__status__css-loaded" style="display:none; font-size:0px;"><!-- a place holder, when css completely load the font-size will change to 1px; then it will trigger js to make modal visible --></div> <div class="modal-header"> <i class="slide-out-close-bold" data-bs-dismiss="modal" aria-hidden="true"></i> </div> <div class="modal-body modal-body_padding-0"> <div class="modal-loaded donotdelete"></div> <div class="trial-license trial-license_light"> <div id="trial-after-download-meeting-form-fullscreen" style="display:none;"> <div style="style:font-size:24px; color:#fff; position:absolute; top:14px; right:21px; cursor:pointer;" data-bs-dismiss="modal"><i class="fa-solid fa-close"></i></div> <div style="position:absolute; left:50%; top:0; transform: translatex(-50%); background-color:#fff; width: 100%; max-width:840px; margin:0 auto; height:100%; z-index:-1"> <div class="iron_loader_wrapper"> <div class="iron_loader"></div> </div> </div> <div class="meetings-iframe-container" data-src="https://hub.ironsoftware.com/meetings/iron-software-sales/demo-trial?embed=true"></div> </div> <div class="after-download-modal-202504 d-none d-lg-flex"> <h2 class="iron_fs--40 iron_lh--12 iron_font--black mb-4 iron_color--deep_blue">Want to deploy IronSuite to a live project for FREE?</h2> <h3 class="iron_fs--20 iron_lh--14 iron_font--bold mb-3 iron_color--pink">What’s included?</h3> <ul class="feature_list_202504 iron_fs--18 iron_lh--12 iron_font--normal iron_color--black"> <li><i class="fa-solid fa-check iron_color--green"></i> Test in production without watermarks</li> <li><i class="fa-solid fa-check iron_color--green"></i> 30 days fully functional product</li> <li><i class="fa-solid fa-check iron_color--green"></i> 24/5 technical support during trial</li> </ul> <div class="product_list_202504 iron_fs--10 mt-4"> <div><img src="/img/main/library-explorer/library-explorer-logo-ironpdf.svg" width="50" height="50" alt="Logo of IronPDF" loading="lazy"><div class="iron_product_name ironpdf"><strong>IRON</strong>PDF</div></div> <div><img src="/img/main/library-explorer/library-explorer-logo-ironword.svg" width="50" height="50" alt="Logo of IronWORD" loading="lazy"><div class="iron_product_name ironword"><strong>IRON</strong>WORD</div></div> <div><img src="/img/main/library-explorer/library-explorer-logo-ironxl.svg" width="50" height="50" alt="Logo of IronXL" loading="lazy"><div class="iron_product_name ironxl"><strong>IRON</strong>XL</div></div> <div><img src="/img/main/library-explorer/library-explorer-logo-ironppt.svg" width="50" height="50" alt="Logo of IronPPT" loading="lazy"><div class="iron_product_name ironxl"><strong>IRON</strong>PPT</div></div> <div><img src="/img/main/library-explorer/library-explorer-logo-ironocr.svg" width="50" height="50" alt="Logo of IronOCR" loading="lazy"><div class="iron_product_name ironocr"><strong>IRON</strong>OCR</div></div> <div><img src="/img/main/library-explorer/library-explorer-logo-ironbarcode.svg" width="50" height="50" alt="Logo of IronBarcode" loading="lazy"><div class="iron_product_name ironbarcode"><strong>IRON</strong>BARCODE</div></div> <div><img src="/img/main/library-explorer/library-explorer-logo-ironqr.svg" width="50" height="50" alt="Logo of IronQR" loading="lazy"><div class="iron_product_name ironqr"><strong>IRON</strong>QR</div></div> <div><img src="/img/main/library-explorer/library-explorer-logo-ironzip.svg" width="50" height="50" alt="Logo of IronZIP" loading="lazy"><div class="iron_product_name ironzip"><strong>IRON</strong>ZIP</div></div> <div><img src="/img/main/library-explorer/library-explorer-logo-ironprint.svg" width="50" height="50" alt="Logo of IronPRINT" loading="lazy"><div class="iron_product_name ironprint"><strong>IRON</strong>PRINT</div></div> <div><img src="/img/main/library-explorer/library-explorer-logo-ironwebscraper.svg" width="50" height="50" alt="Logo of IronWEBSCRAPER" loading="lazy"><div class="iron_product_name ironwebscraper"><strong>IRON</strong>WEBSCRAPER</div></div> </div> </div> <div class="thankyouAfterSubmittedTrialFormAfterDownload202604"> <div> <div style="margin-bottom:32px;"><img src="/img/icons/greencheck_in_yellowcircle.svg" alt="Thank you for submitted a trial" width="100" height="100" loading="lazy"></div> <h2 class="iron_font--black iron_fs--36 iron_lh--12 iron_color--black m-0">Thank You</h2> <div class="mt-4 pt-2 iron_font--normal iron_fs--18 iron_lh--16 iron_color--black">Your trial key should be in the email.<br>If it is not, please contact<br><a href="mailto:support@ironsoftware.com" aria-label="Send email to our support" class="iron_font--medium iron_fs--18 iron_lh--16 iron_color--deep_blue iron_hover_color--pink">support@ironsoftware.com</a> </div> </div> </div> <div class="trial-license__action" style="min-height: 550px;" > <div class="trial-license__action-title" style=" "> Obtenha sua <strong>chave de avaliação gratuita de 30 dias</strong> instantaneamente. </div> <div class="trial-license__exit-intent-form-sent-title"> Obrigado.<br> Se desejar falar com nossa equipe de licenciamento: </div> <div id="hubspot-form__thank_you" class="hubspot-form__thank_you"> <p><section class="formright_submitted"><img loading="lazy" src="/img/icons/greencheck_in_yellowcircle.svg" width="100" height="100" alt="badge_greencheck_in_yellowcircle"><div class="thank-you__header"> O formulário de inscrição para o teste foi enviado.<br> <em>Com sucesso</em> .</div><p> Sua chave de avaliação deve estar no e-mail.<br> Caso contrário, entre em contato.<br> <a href="mailto:support@ironsoftware.com">support@ironsoftware.com</a></p></section></p> </div> <div id="hubspot-form__form__trial-license-after-download" class="hubspot-form__form-wrapper"> <script data-hbspt-form> document.addEventListener("DOMContentLoaded", function() { var trialLicenseHbsptOptions_form_1a = { region: "na1", portalId: "22630553", formId: "b93685fb-4445-4114-8b0a-4af3ec564c41", locale: "pt", target: "#trial-license-after-download .place_holder--form_1a", cssClass: "hsform_error_v2 hsform_floating_label hsform_intl_phone", onFormReady: function ($form) { var hsFormErrorTooltipMessages = {"email":"Por favor, insira um endere\u00e7o de e-mail v\u00e1lido.","firstname":"Por favor, digite seu nome.","countrycode":"","phone":"Um n\u00famero de telefone v\u00e1lido pode conter apenas n\u00fameros, +(), -, ou x.","preferred_communication":"Selecione um m\u00e9todo de contato preferido"}; buildFormErrorTooltips($form, hsFormErrorTooltipMessages); buildCountryCodeForPhoneFields($form, 'div.hs-fieldtype-phonenumber'); removeHSFormPlaceHolder($form); }, onFormSubmitted: function($form, data) { trigger_goal('trial_form_submitted'); // trigger goal start // Fire Custom Event when form submited dataLayer.push({'event':'trial-from-submitted'}); // HubSpot hubspot_custom_conversion_trigger("pe22630553_trial_from_submitted_v2"); // trigger goal end setTimeout(function () { // $("#trial-license-after-download .trial-license__action-features").hide(); }, 0); // hide 1st form place holder // $("#trial-license-after-download .place_holder--form_1b").hide(); // $("#trial-license-after-download .place_holder--form_2").show(); /// push submited data to 2nd form setTimeout(function() { // $("#trial-license-after-download .trialFormTwo input[name='email']").val(data.submissionValues.email).change(); }, 1000); history.pushState("", document.title, window.location.pathname + "#trial-license-after-download-form-sent"); $("#trial-license-after-download .trial-license__action").hide(); $('#trial-license-after-download .thankyouAfterSubmittedTrialFormAfterDownload202604').show(); setTimeout(function() { // update iframe from data-src, start const email = data['submissionValues']['email']; const name = data['submissionValues']['firstname']; const phone = data['submissionValues']['phone']; var bookingFormUrl = $('#trial-after-download-meeting-form-fullscreen .meetings-iframe-container').attr('data-src'); // generate new data-src bookingFormUrl = bookingFormUrl + '&email=' + email; bookingFormUrl = bookingFormUrl + '&firstname=' + name; bookingFormUrl = bookingFormUrl + '&phone=' + phone; $('#trial-after-download-meeting-form-fullscreen .meetings-iframe-container').attr('data-src', bookingFormUrl); // update iframe from data-src, end // Show meeting form $("#trial-after-download-meeting-form-fullscreen").show(); // call next form manually after update data-src $.getScript('https://static.hsappstatic.net/MeetingsEmbed/ex/MeetingsEmbedCode.js', function() { }); // listen for the meeting form submit, start // const meetingEventOrigin = 'https://meetings.hubspot.com'; const meetingEventOrigin = 'https://hub.ironsoftware.com'; function handleMessage(event) { // Validate the origin first if (event.origin === meetingEventOrigin) { // only if meetingBookSucceeded if (event.data?.meetingBookSucceeded === true) { // goal for meeting form of 3 steps trial window._vis_opt_queue = window._vis_opt_queue || []; window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(239);}); // Remove this listener after success window.removeEventListener('message', handleMessage); } } } // Register the listener window.addEventListener('message', handleMessage); // listen for the meeting form submit, end }, 200); }, translations: { pt: { fieldLabels: {"email":"Seu e-mail comercial","firstname":"Nome","countrycode":"C\u00f3digo de discagem","phone":"N\u00famero de telefone","preferred_communication":"M\u00e9todo de contato preferido"} } }, submitText: "Continue", submitButtonClass: "hs-button primary large arrow_right", inlineMessage: "<div class=\"d-none\"></div>", }; // var for form 1b var trialLicenseHbsptOptions_form_1b = Object.assign({}, trialLicenseHbsptOptions_form_1a); trialLicenseHbsptOptions_form_1b.formId = "8c54dcae-960c-4452-b83c-06affb378052"; trialLicenseHbsptOptions_form_1b.target = "#trial-license-after-download .place_holder--form_1b"; // var for form 2 var trialLicenseHbsptOptions_form_2 = { region: "na1", portalId: "22630553", formId: "febf5e33-1edd-45f9-b9b0-6ead75fb1b9a", locale: "pt", cssClass: "trialFormTwo", target: "#trial-license-after-download .place_holder--form_2", inlineMessage: "<div class=\"d-none\"></div>", onFormSubmitted: function ($form, data) { // setCookie("stopFlag", "1", 1); setLocalStorageIfTrialSubmitted(); // Trigger HubSpot goal trigger_goal('second_trial_form_submitted'); $(".hubspot-form__form-wrapper").css("display", "none"); $("#trial-license-after-download .hubspot-form__thank_you").css("padding-top", "60px").show(); // Specific to modal #trial-license-after-download $("#trial-license-after-download .hubspot-form__thank_you section.formright_submitted").css("display", "block"); $("#trial-license-after-download .hubspot-form__thank_you").css("display", "block"); $("#trial-license-after-download .trial-license__action-title").css("display", "none"); $("#trial-license-after-download .trial-license__action-features-single, #trial-license .trial-license__action-features-single").css("display", "none"); // Specific to modal #trial-license $("#trial-license .trial-license__action-title").css("display", "none"); }, }; var selector = document.querySelector("#hubspot-form__form__trial-license-after-download"); const modalSelector = document.querySelector("#trial-license-after-download"); modalSelector?.addEventListener("shown.bs.modal", function() { embedCustomHubspotForm(selector, trialLicenseHbsptOptions_form_1a); embedCustomHubspotForm(selector, trialLicenseHbsptOptions_form_1b); embedCustomHubspotForm(selector, trialLicenseHbsptOptions_form_2); }, { once: true }); });</script> <div class="place_holder--form_1a vwo_ab_test_phone_extension_a"></div> <div class="place_holder--form_1b vwo_ab_test_phone_extension_b"></div> <div class="place_holder--form_2"></div> </div> <div class="trial-license__exit-intent-form-sent-action-button"> <a class="btn btn-red btn-red--exit-intent-form-sent" href="https://help.ironsoftware.com/meetings/ironsoftware/schedule-a-call-with-sales" target="_blank"> <i class="fa fa-phone-alt" aria-hidden="true"></i> Agende uma chamada </a> </div> <div class="trial-license__exit-intent-form-sent-description"> Tem alguma dúvida? <a href="#live-chat-support" onclick="return show_helpscout(event)">Entre em contato</a> com nossa equipe de desenvolvimento. </div> <div class="flex-grow-1"><!-- spacer --></div> <div class="trial-license__action-features"> <div class="trial-license__action-features-single"> Não é necessário cartão de crédito nem criação de conta. </div> </div> </div> </div> </div> </div> </div> </div> <script> document.addEventListener("DOMContentLoaded", function() { var selector = "#trial-license-after-download"; document.onElementViewportIntersect(selector, function() { var modals = ["trial-license.util.js", "modals/trial-license.css"]; importModal(modals, "trial-license-after-download", debug()); }); }); </script> <div class="modal cv-auto" id="trial-license-after-download-form-sent" tabindex="-1" data-bs-backdrop="true" data-form-id="b93685fb-4445-4114-8b0a-4af3ec564c41" data-ironproduct-key="ironpdf" data-js-modal-id="trial-license-after-download-form-sent"> <div class="modal-config" data-for-product="ironpdf"> <span class="trial-license-inactive-timeout" data-trial-license-inactive-timeout="15"></span> <span class="trial-license-inactive-timeout-interval" data-trial-license-inactive-timeout-interval="1000"></span> <span class="trial-license-reset-state-in-days" data-trial-license-reset-state-in-days="1"></span> </div> <div class="modal-dialog"> <div class="modal-content modal-content_border-0 modal-content_padding-0"> <div class="trial-license-after-download-form-sent-modal__status__css-loaded" style="display:none; font-size:0px;"><!-- a place holder, when css completely load the font-size will change to 1px; then it will trigger js to make modal visible --></div> <div class="modal-header"> <i class="slide-out-close-bold" data-bs-dismiss="modal" aria-hidden="true"></i> </div> <div class="modal-body modal-body_padding-0"> <div class="modal-loaded donotdelete"></div> <div class="trial-license trial-license_light"> <div class="trial-license__action" style="min-height: 270px;" > <div class="trial-license__action-title" style=" "> <strong>Obrigado.<br> Veja as suas opções de licença:</strong> </div> <div class="trial-license__exit-intent-form-sent-title"> Obrigado.<br> Se desejar falar com nossa equipe de licenciamento: </div> <div class="trial-license__action-buttons" style=" "> <a class="trial-license__action-button trial-license__action-button_red trial-license__action-button_wide" style=" " href="/pt/licensing/" > <span class="trial-license__action-button-text"> Ver Licenciamento </span> </a> </div> <div class="trial-license__exit-intent-form-sent-action-button"> <a class="btn btn-red btn-red--exit-intent-form-sent" href="https://help.ironsoftware.com/meetings/ironsoftware/schedule-a-call-with-sales" target="_blank"> <i class="fa fa-phone-alt" aria-hidden="true"></i> Agende uma chamada </a> </div> <div class="trial-license__action-description trial-license__action-description_highlighted" style=" "> Tem alguma pergunta? <!-- --><a href="#live-chat-support" >Entre em contato</a><!-- --> com nossa equipe de desenvolvimento. </div> <div class="trial-license__exit-intent-form-sent-description"> Tem alguma dúvida? <a href="#live-chat-support" onclick="return show_helpscout(event)">Entre em contato</a> com nossa equipe de desenvolvimento. </div> </div> </div> </div> </div> </div> </div> <script> document.addEventListener("DOMContentLoaded", function() { var selector = "#trial-license-after-download-form-sent"; document.onElementViewportIntersect(selector, function() { var modals = ["trial-license.util.js", "modals/trial-license.css"]; importModal(modals, "trial-license-after-download-form-sent", debug()); }); }); </script> <script> function getHsProductCodeFromUrl() { const url = window.location.href; if (url.includes("ironpdf.com") || url.includes("ironpdf.local")) { if (url.includes("/java/")) return "pdf-java"; if (url.includes("/python/")) return "pdf-python"; if (url.includes("/nodejs/")) return "pdf-nodejs"; return "pdf"; } else if (url.includes("ironsoftware.com") || url.includes("ironsoftware.local")) { if (url.includes("/word/")) return "word"; if (url.includes("/ocr/")) return "ocr"; if (url.includes("/webscraper/")) return "webscraper"; if (url.includes("/barcode/")) return "barcode"; if (url.includes("/excel/")) return "excel"; if (url.includes("/qr/")) return "qr"; if (url.includes("/zip/")) return "zip"; if (url.includes("/word/")) return "word"; if (url.includes("/print/")) return "print"; if (url.includes("/securedoc/")) return "securedoc"; if (url.includes("/ppt/")) return "ppt"; if (url.includes("/python/excel/")) return "excel-python"; return "suite"; } } function enabledAbandonTrialForm() { function s(e = "") { const headers = new Headers(); headers.append("Content-Type", "application/json"); const body = JSON.stringify({ "fields": [{ "name": "email", "value": e }, { "name": "interested_products", "value": getHsProductCodeFromUrl() } ], "context": { "pageUri": window.location.href, "pageName": window.location.href.split('#')[0] } }); fetch("https://api.hsforms.com/submissions/v3/integration/submit/22630553/e036830d-c04a-4cb9-a5a0-2ba606d5de9f", { method: "POST", headers: headers, body: body, redirect: "follow" }).then((response) => response.text()).then((result) => console.log(result)).catch((error) => console.error(error)); } const w = 'email'; const t = 'trial-license'; const l = 'trial-license-new'; const f = 'name'; const fullScreenTrialModal = document.getElementById(t); if (fullScreenTrialModal && fullScreenTrialModal.classList.contains(l)) { fullScreenTrialModal.addEventListener('hide.bs.modal', function() { let e = []; document.querySelectorAll('#' + t + ' input[' + f + '="' + w + '"]').forEach(function(input) { if (input.value != '' && input.value != null && input.value.length >= 4) { e.push(input.value); } }); if (e.length > 0) { s(e[0]); } }); } }; function enabledSocialTrial() { const target = '.modal#trial-license .right_content.page_one'; const insertAfter = '.no_credit_required'; // Add place holder for social login document.querySelector(target + ' ' + insertAfter).insertAdjacentHTML("afterend", '<div id="firebaseui-auth-container"><div class="or_separator">OR</div></div>'); const firebaseuiAuthContainer = document.querySelector(target + ' #firebaseui-auth-container'); const currentPageUri = window.location.href; function submitHsform(formData) { const myHeaders = new Headers(); const hsu = "https://api.hsforms.com/submissions/v3/integration/submit/23795711/98897ae8-f5f7-4636-ae9e-98d808bc59b7"; myHeaders.append("Content-Type", "application/json"); const raw = JSON.stringify({ "fields": [{ "name": "email", "value": formData.email }, { "name": "firstname", "value": formData.name }, { "name": "comment", "value": "Submit via social login" } ], "context": { "pageUri": currentPageUri, "pageName": "Trial Submit" } }); fetch(hsu, { method: "POST", headers: myHeaders, body: raw, redirect: "follow" }) .then((response) => response.text()) .then((result) => console.log(result)) .catch((error) => console.error(error)); } // helper to load a script function loadScript(src) { return new Promise(resolve => { const s = document.createElement('script'); s.src = src; s.onload = resolve; document.head.appendChild(s); }); } // helper to load CSS function loadCSS(href) { const l = document.createElement('link'); l.rel = "stylesheet"; l.href = href; document.head.appendChild(l); } // Make sure related files are loaded, prevent miss behavior. Promise.all([ loadScript("https://www.gstatic.com/firebasejs/9.23.0/firebase-app-compat.js"), loadScript("https://www.gstatic.com/firebasejs/9.23.0/firebase-auth-compat.js"), loadScript("https://www.gstatic.com/firebasejs/ui/6.0.1/firebase-ui-auth.js"), loadCSS("https://www.gstatic.com/firebasejs/ui/6.0.1/firebase-ui-auth.css"), ]).then(() => { // Firebase config const firebaseConfig = { apiKey: "AIzaSyCsJiQyqdfI_YcNRxxpVUJ_pvicKmH9dX4", authDomain: "iron-authentication.firebaseapp.com", projectId: "iron-authentication", storageBucket: "iron-authentication.firebasestorage.app", messagingSenderId: "381801101678", appId: "1:381801101678:web:2d637bb0cdf2377998e97f" }; // init authn app firebase.initializeApp(firebaseConfig); // FirebaseUI const ui = new firebaseui.auth.AuthUI(firebase.auth()); ui.start('#firebaseui-auth-container', { signInFlow: 'popup', signInOptions: [{ provider: firebase.auth.GoogleAuthProvider.PROVIDER_ID, scopes: [ 'email', 'profile', ], customParameters: { prompt: 'select_account' } }, { provider: firebase.auth.GithubAuthProvider.PROVIDER_ID, scopes: [ 'user:email', 'read:user', ], customParameters: { prompt: 'select_account' } }, ], callbacks: { signInSuccessWithAuthResult: function(authResult) { const user = authResult.user; const userEmail = user.email || user.providerData[0]?.email; const userName = user.displayName; // Place info into the HS form const emailInput = document.querySelector('.modal#trial-license .right_content.page_two .placeholder__hsform--two form input[name="email"]'); const nameInput = document.querySelector('.modal#trial-license .right_content.page_two .placeholder__hsform--two form input[name="firstname"]'); // interact the dom document.querySelector('.modal#trial-license .right_content.page_one').style.display = 'none'; document.querySelector('.modal#trial-license .right_content.page_two').style.display = 'block'; var emailInputField = document.querySelector('.modal#trial-license .placeholder__hsform--two input[name="email"]'); if (emailInputField) { emailInputField.readOnly = true; emailInputField.value = userEmail; emailInputField.dispatchEvent(new Event('change', { bubbles: true })); } if (emailInput) { emailInput.value = userEmail; emailInput.dispatchEvent(new InputEvent('input', { bubbles: true, cancelable: true })); } if (nameInput) { nameInput.value = userName; nameInput.dispatchEvent(new InputEvent('input', { bubbles: true, cancelable: true })); } submitHsform({ "email": userEmail, "name": userName }) firebaseuiAuthContainer.style.display = 'none'; return false; } } }); }); return; } // enabledAbandonTrialForm(); // enabledSocialTrial(); </script> <script> /* trialFormSetStep("#trial-license", 1); modalId = "#trial-license"; */ function trialFormSetStep(modal_id, step) { // check is suite modal const isSuite = getHsProductCodeFromUrl() === 'suite'; const modal = document.querySelector(modal_id); const show = (selector) => modal.querySelector(selector).style.display = 'block'; const hide = (selector) => modal.querySelector(selector).style.display = 'none'; if (step === 1) { // left contents show('.group__started_for_free'); hide('.group__started_for_free_completed'); hide('.group__booking'); hide('.group__booking_completed'); // right forms show('.page_one'); hide('.page_two'); hide('.page_three'); hide('.page_submitted'); } else if (step === 2) { // left contents show('.group__started_for_free'); hide('.group__started_for_free_completed'); hide('.group__booking'); hide('.group__booking_completed'); // right forms hide('.page_one'); show('.page_two'); hide('.page_three'); hide('.page_submitted'); } else if (step === 3) { // left contents hide('.group__started_for_free'); show('.group__started_for_free_completed'); show('.group__booking'); hide('.group__booking_completed'); // right forms hide('.page_one'); hide('.page_two'); show('.page_three'); hide('.page_submitted'); hide('.right .trusted_by'); show('.right .trial_key_sent'); } else if (step === 4) { // left contents hide('.group__started_for_free'); show('.group__started_for_free_completed'); show('.group__booking'); hide('.group__booking_completed'); // right forms hide('.page_one'); hide('.page_two'); hide('.page_three'); show('.page_submitted'); show('.right .trusted_by'); hide('.right .trial_key_sent'); } /* override for suite modal */ if (isSuite == true) { // left contents for suite hide('.group__started_for_free'); hide('.group__started_for_free_completed'); hide('.group__booking'); hide('.group__booking_completed'); show('.group__suite'); hide('.formright_submitted--products'); show('.formright_submitted--suite'); } } window.addEventListener("load", function() { // enabled 3 steps form (won test) window.IRON = window.IRON || {}; window.IRON.enabled3StepsTrialForm = true; }); window.addEventListener("DOMContentLoaded", function() { trialFormSetStep("#trial-license", 1); }); </script> <script data-hbspt-form> /* settings of from one */ var hsFormOptions_one = { region: "na1", portalId: "22630553", formId: "78c61202-075f-4baa-909b-54216b9dede2", // new form information form for all product formInstanceId: "modal-trial-license", locale: "pt", target: "#trial-license .placeholder__hsform--one", cssClass: "hsform_error_v2 hsform_floating_label", submitButtonClass: "hs-button primary large", submitText: "Continuar →", inlineMessage: "<div class=\"d-none\"></div>", onFormReady: function ($form) { var hsFormErrorTooltipMessages = {"email":"Por favor, insira um endere\u00e7o de e-mail v\u00e1lido.","firstname":"Por favor, digite seu nome.","countrycode":"","phone":"Um n\u00famero de telefone v\u00e1lido pode conter apenas n\u00fameros, +(), -, ou x.","preferred_communication":"Selecione um m\u00e9todo de contato preferido"}; buildFormErrorTooltips($form, hsFormErrorTooltipMessages); removeHSFormPlaceHolder($form); }, onFormSubmitted: function ($form, data) { trialFormSetStep("#trial-license", 2); // trigger goal start trigger_goal('trial_form_submitted'); setLocalStorageIfTrialSubmitted(); // trigger VWO goal window._vis_opt_queue = window._vis_opt_queue || []; window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(238);}); // Fire Custom Event when form submited dataLayer.push({'event':'trial-from-submitted'}); // HubSpot hubspot_custom_conversion_trigger("pe22630553_trial_from_submitted_v2"); // trigger goal end /// push submited data to 2nd form and mark readonly setTimeout(function() { $(".modal#trial-license .placeholder__hsform--two input[name='email']").attr('readonly', true).val(data.submissionValues.email).change(); }, 200); }, translations: { pt: { fieldLabels: {"email":"Seu e-mail comercial","firstname":"Nome","countrycode":"C\u00f3digo de discagem","phone":"N\u00famero de telefone","preferred_communication":"M\u00e9todo de contato preferido"} } }, }; /* settings of from two */ var hsFormOptions_two = { region: "na1", portalId: "22630553", formId: "dbd072d1-1098-4c98-bdc3-7255fc2e0d6b", // existing trial form for each product locale: "pt", target: "#trial-license .placeholder__hsform--two", cssClass: "trialFormTwo hsform_error_v2 hsform_floating_label", submitButtonClass: "hs-button primary large", submitText: "Continuar →", inlineMessage: "<div class=\"d-none\"></div>", onFormReady: function ($form) { var hsFormErrorTooltipMessages = {"email":"Por favor, insira um endere\u00e7o de e-mail v\u00e1lido.","firstname":"Por favor, digite seu nome.","countrycode":"","phone":"Um n\u00famero de telefone v\u00e1lido pode conter apenas n\u00fameros, +(), -, ou x.","preferred_communication":"Selecione um m\u00e9todo de contato preferido"}; buildFormErrorTooltips($form, hsFormErrorTooltipMessages); removeHSFormPlaceHolder($form); }, onFormSubmitted: function ($form, data) { // change step to meeting form trialFormSetStep("#trial-license", 3); // trigger window resize for HubSpot meeting form to recalculate the height after update data-src window.dispatchEvent(new Event('resize')); setTimeout(function() { // update iframe from data-src, start const email = data['submissionValues']['email']; const name = data['submissionValues']['firstname']; const phone = data['submissionValues']['phone']; var bookingFormUrl = $('#trial-license .hsform_schedule_meeting .meetings-iframe-container').attr('data-src'); // generate new data-src bookingFormUrl = bookingFormUrl + '&email=' + email; bookingFormUrl = bookingFormUrl + '&firstname=' + name; bookingFormUrl = bookingFormUrl + '&phone=' + phone; $('#trial-license .hsform_schedule_meeting .meetings-iframe-container').attr('data-src', bookingFormUrl); // update iframe from data-src, end // call next form manually after update data-src $.getScript('https://static.hsappstatic.net/MeetingsEmbed/ex/MeetingsEmbedCode.js', function() { }); // listen for the meeting form submit, start // const meetingEventOrigin = 'https://meetings.hubspot.com'; const meetingEventOrigin = 'https://hub.ironsoftware.com'; function handleMessage(event) { // Validate the origin first if (event.origin === meetingEventOrigin) { // only if meetingBookSucceeded if (event.data?.meetingBookSucceeded === true) { // goal for meeting form of 3 steps trial window._vis_opt_queue = window._vis_opt_queue || []; window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(239);}); // Remove this listener after success window.removeEventListener('message', handleMessage); trialFormSetStep("#trial-license", 4); } } } // Register the listener window.addEventListener('message', handleMessage); // listen for the meeting form submit, end }, 200); }, translations: { pt: { fieldLabels: {"email":"Seu e-mail comercial","firstname":"Nome","countrycode":"C\u00f3digo de discagem","phone":"N\u00famero de telefone","preferred_communication":"M\u00e9todo de contato preferido"} } }, } // load embed forms after hsoptions is ready document.addEventListener("DOMContentLoaded", function() { const selector = document.querySelector("#trial-license .placeholder__hsform--one"); const modalSelector = document.querySelector("#trial-license.modal_new"); modalSelector.addEventListener("shown.bs.modal", function() { embedCustomHubspotForm(selector, hsFormOptions_one); embedCustomHubspotForm(selector, hsFormOptions_two, false); }, { once: true }); }); </script> <div class="modal modal_new trial-license-new cv-auto" id="trial-license" tabindex="-1" data-bs-backdrop="true" data-form-id="dbd072d1-1098-4c98-bdc3-7255fc2e0d6b" style="" data-js-modal-id="trial-license"> <div class="modal-dialog modal-dialog-scrollable modal-fullscreen"> <div class="modal-content p-0"> <div class="position-relative z-1"> <i class="fa-solid fa-x" data-bs-dismiss="modal" aria-hidden="true" style="position:absolute; top:12px; right:12px; width:40px; height:40px; cursor:pointer; display:flex; align-items:center; justify-content:center;font-size:18px; color:#181818;"></i> </div> <div class="modal-body p-0"> <div id="formtrial" class="modal_body"> <div class="modal-loaded donotdelete"></div> <div class="d-flex h-100 gap-0"> <div class="left d-none d-lg-block"> <div class="wrapper"> <div style="flex:0 1 56px;"><!-- spacer --></div> <div><img src="/img/products/ironpdf-logo-text-dotnet.svg" alt="ironpdf_for_dotnet_log2o" class="product_logo" loading="lazy"></div> <div style="flex:0 1 48px;"><!-- spacer --></div> <div class="bg_wrapper group__started_for_free"> <section class="title"> <div class="h1"><img src="/img/modals/trial-license-new/key_circle_blue.svg" width="40" height="40" alt="Chave azul em círculo" loading="lazy">Comece GRATUITAMENTE</div> <div class="subtitle">Não é necessário cartão de crédito.</div> </section> <section class="content"> <article> <div class="h2">Teste em um ambiente real</div> <p>Teste em produção sem marcas d'água.<br> Funciona onde você precisar.</p> <div class="floating_icon"><i class="fa-kit fa-square-arrow-in"></i></div> </article> <article> <div class="h2">Produto totalmente funcional</div> <p>Receba 30 dias de produto totalmente funcional.<br> Deixe-o pronto para usar em minutos.</p> <div class="floating_icon"><i class="fa-kit fa-calendar-bottom-check"></i></div> </article> <article> <div class="h2">Suporte técnico 24 horas por dia, 5 dias por semana.</div> <p>Acesso total à nossa equipe de suporte técnico durante o período de teste do produto.</p> <div class="floating_icon"><i class="fa-regular fa-messages-question"></i></i></div> </article> </section> </div> <div class="bg_wrapper group__started_for_free_completed"> <section class="title"> <div class="h1"><img src="/img/modals/trial-license-new/checked_circle_grey.svg" width="40" height="40" alt="Chave cinza em círculo" loading="lazy">Comece GRATUITAMENTE</div> <div class="subtitle">O formulário de inscrição para o teste foi enviado com sucesso.</div> </section> <section class="content"> </section> </div> <div class="bg_wrapper group__booking"> <section class="title"> <div class="h1"><img src="/img/modals/trial-license-new/calendar_circle_blue.svg" width="40" height="40" alt="Calendário em círculo" loading="lazy">Agende uma demonstração ao vivo gratuita</div> <div class="subtitle">Sem contato, sem necessidade de dados de cartão, sem compromissos <span class="detail">. Agende uma demonstração personalizada de 30 minutos.<span></span></div> </section> <section class="content"> <div class="title_of_listing">Eis o que você pode esperar:</div> <article> <p>Uma demonstração ao vivo do nosso produto e suas principais funcionalidades.</p> <div class="floating_icon"><i class="fa-regular fa-circle-check"></i></div> </article> <article> <p>Receba recomendações de funcionalidades específicas para o seu projeto.</p> <div class="floating_icon"><i class="fa-regular fa-circle-check"></i></div> </article> <article> <p>Todas as suas dúvidas serão respondidas para garantir que você tenha todas as informações necessárias. (Sem qualquer compromisso.)</p> <div class="floating_icon"><i class="fa-regular fa-circle-check"></i></div> </article> </section> </div> <div class="bg_wrapper group__booking_completed"> <section class="title"> <div class="h1"><img src="/img/modals/trial-license-new/checked_circle_grey.svg" width="40" height="40" alt="Chave cinza em círculo" loading="lazy">Agende uma demonstração ao vivo gratuita</div> <div class="subtitle">Sua reserva foi concluída. <span class="detail">Confira seu e-mail para confirmação.</span></div> </section> <section class="content"> </section> </div> <style> ul.suite_features { list-style: none; li + li { margin-top: 6px } } .grid_listing_products { margin-top: 48px; display: grid; grid-template-columns: auto auto; row-gap:16px; justify-content: space-between; } </style> <div class="group__suite" style="display:none;"> <h2 class="iron_color--deep_blue iron_font--black iron_fs--30" style="margin:0 0 16px;">Want to deploy IronSuite to a live project for FREE?</h2> <h3 class="iron_color--pink iron_font--bold iron_fs--20" style="margin:24px 0 16px;">What’s included?</h3> <ul class="suite_features iron_color--black iron_font--normal iron_fs--18 p-0 m-0"> <li><i class="fa-solid fa-check iron_color--green me-2"></i>Test in production without watermarks</li> <li><i class="fa-solid fa-check iron_color--green me-2"></i>30 days fully functional product</li> <li><i class="fa-solid fa-check iron_color--green me-2"></i>24/5 technical support during trial</li> </ul> <div class="grid_listing_products"> <div><img src="\img\products\h-126\logo-ironpdf.svg" height="32" width="auto" alt="ironpdf Logo" loading="lazy"></div> <div><img src="\img\products\h-126\logo-ironword.svg" height="32" width="auto" alt="ironword Logo" loading="lazy"></div> <div><img src="\img\products\h-126\logo-ironxl.svg" height="32" width="auto" alt="ironxl Logo" loading="lazy"></div> <div><img src="\img\products\h-126\logo-ironppt.svg" height="32" width="auto" alt="ironppt Logo" loading="lazy"></div> <div><img src="\img\products\h-126\logo-ironocr.svg" height="32" width="auto" alt="ironocr Logo" loading="lazy"></div> <div><img src="\img\products\h-126\logo-ironbarcode.svg" height="32" width="auto" alt="ironbarcode Logo" loading="lazy"></div> <div><img src="\img\products\h-126\logo-ironqr.svg" height="32" width="auto" alt="ironqr Logo" loading="lazy"></div> <div><img src="\img\products\h-126\logo-ironprint.svg" height="32" width="auto" alt="ironprint Logo" loading="lazy"></div> <div><img src="\img\products\h-126\logo-ironzip.svg" height="32" width="auto" alt="ironzip Logo" loading="lazy"></div> <div><img src="\img\products\h-126\logo-ironwebscraper.svg" height="32" width="auto" alt="ironwebscraper Logo" loading="lazy"></div> </div> </div> <div style="flex:1 1 auto;"><!-- spacer --></div> <div class="modal_new_trial__support_team"> <div class="image_wrapper"> <img class="lazy" width="64" height="64" aria-label="" src="/img/support-team/support-team-member-6.webp" loading="lazy" alt="Support Team Member 6 related to Adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo"> <img class="lazy" width="64" height="64" aria-label="" src="/img/support-team/support-team-member-14.webp" loading="lazy" alt="Support Team Member 14 related to Adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo"> <img class="lazy" width="64" height="64" aria-label="" src="/img/support-team/support-team-member-4.webp" loading="lazy" alt="Support Team Member 4 related to Adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo"> <img class="lazy" width="64" height="64" aria-label="" src="/img/support-team/support-team-member-2.webp" loading="lazy" alt="Support Team Member 2 related to Adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo"> </div> <div class="online">Online 24 horas por dia, 5 dias por semana.</div> </div> <div class="need_help"><strong>Precisa de ajuda?</strong> Nossa equipe de vendas terá prazer em ajudá-lo(a).</div> <a href="https://ironsoftware.com/pt/enterprise/trial/" class="enterprise-trial__cta">Experimente a versão de avaliação Enterprise.<i class="fa-solid fa-arrow-right"></i></a> <div style="flex:0 1 48px;"><!-- spacer --></div> </div> </div> <div class="right" style="flex:1 1 auto;"> <div class="wrapper"> <div style="flex:0 1 80px;"><!-- spacer --></div> <div class="d-none text-center"> <img loading="lazy" src="/img/products/ironpdf-logo-text-dotnet.svg" alt="ironpdf_for_dotnet_log2o" class="product_logo" style="max-height:50px;" height="50" width="auto"> </div> <!-- Page One --> <div class="right_content page_one"> <div class="header"> <div><img src="/img/modals/trial-license-new/key_circle_blue.svg" width="80" height="80" alt="Chave no círculo azul" loading="lazy"></div> <div class="h2">Obtenha sua <strong class="visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline">chave de avaliação gratuita de 30 dias</strong> instantaneamente.</div> </div> <div style="height:48px;"><!-- spacer --></div> <div class="placeholder__hsform--one"></div> <div> <div class="no_credit_required"><img loading="lazy" src="/img/modals/trial-license-new/bullet_checked.svg" width="16" height="16" alt="bullet_checked">Não é necessário cartão de crédito nem criação de conta.</div> </div> </div> <!-- Page Two --> <div class="right_content page_two" style="display:none;"> <div class="header"> <div><img src="/img/modals/trial-license-new/key_circle_blue.svg" width="80" height="80" alt="Chave no círculo azul" loading="lazy"></div> <div class="h2">Obtenha sua <strong class="visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline">chave de avaliação gratuita de 30 dias</strong> instantaneamente.</div> </div> <div style="height:24px;"><!-- spacer --></div> <div class="placeholder__hsform--two"></div> <div> <div class="no_credit_required"><img loading="lazy" src="/img/modals/trial-license-new/bullet_checked.svg" width="16" height="16" alt="Chave azul em círculo">Não é necessário cartão de crédito nem criação de conta.</div> </div> </div> <!-- Page Three (meeting form) --> <div class="right_content page_three" style="display:none;"> <div class="header"> <div><img src="/img/modals/trial-license-new/green_check_in_orange_circle.svg" width="80" height="80" alt="Green Check in orange circle" loading="lazy"></div> <div class="h2">O formulário de teste foi enviado <span class="iron_font--bold">com sucesso</span>.</div> </div> <div style="height:24px;"><!-- spacer --></div> <div class="hsform_schedule_meeting"> <!-- Start of Meetings Embed Script --> <div class="meetings-iframe-container" data-src="https://hub.ironsoftware.com/meetings/iron-software-sales/demo-trial?embed=true"></div> <!-- End of Meetings Embed Script --> </div> </div> <!-- Page Submitted --> <div class="right_content page_submitted formright_submitted" style="display:none;"> <div class="d-none d-md-block" style="flex:0 1 80px;"><!-- spacer --></div> <div class="d-block d-md-none" style="flex:0 1 24px;"><!-- spacer --></div> <!-- submitted for products --> <div class="formright_submitted--products" style="display:block;"> <div><img loading="lazy" src="/img/modals/trial-license-new/green_check_in_orange_circle.svg" width="100" height="100" alt="badge_greencheck_in_yellowcircle"></div> <div class="title">Obrigado por iniciar um período de teste.</div> <div class="text p-3"><p>Por favor, verifique seu e-mail para obter a chave de licença de avaliação.</p><p> Caso não receba um e-mail, inicie um <a href="#livechat" onclick="return window.HubSpotConversations.widget.open()">chat ao vivo</a> ou envie um e-mail <a href="mailto:support@ironsoftware.com">para support@ironsoftware.com.</a></p></div> <div> <div style="margin:0 auto; width:100%; max-width:248px;"> <div class="my-3"><a class="trial-license__action-button trial-license__action-button_red m-0" style="width:100%; font-size:14px;" href="https://www.nuget.org/packages/IronPdf/" target="_blank"><i class="trial-license__action-button-icon nuget-icon-white2"></i><span class="trial-license__action-button-text">Instalar com NuGet</span></a></div> <div class="my-3"><a class="trial-license__action-button trial-license__action-button_white m-0" style="width:100%; font-size:14px;" href="/pt/licensing/"><span class="trial-license__action-button-text">Ver Licenciamento</span></a></div> </div></div> </div> <!-- submitted for suite --> <div class="formright_submitted--suite" style="display:none; padding-top:80px;"> <div><img loading="lazy" src="/img/modals/trial-license-new/green_check_in_orange_circle.svg" width="100" height="100" alt="badge_greencheck_in_yellowcircle"></div> <div class="title">Obrigado</div> <div class="text p-3">Sua chave de teste deve estar no e-mail.<br>Se não estiver, por favor entre em contato com <a href="mailto:support@ironsoftware.com" aria-label="Contact support" class="iron_color--deep_blue iron_font--medium iron_hover_color--pink">support@ironsoftware.com</a></div> </div> </div> <div style="flex:1 1 96px"><!-- spacer --></div> <section class="trusted_by"> <ul class="our_clients"><li><img class="img-fluid" loading="lazy" src="/img/modals/trial-license-new/logo_aetna.svg" alt="Logotipo da Aetna" width="80" height="20"></li><li><img class="img-fluid" loading="lazy" src="/img/modals/trial-license-new/logo_nasa.svg" alt="Logotipo NASA" width="64" height="52"></li><li><img class="img-fluid" loading="lazy" src="/img/modals/trial-license-new/logo_ge.svg" alt="Logotipo GE" width="54" height="54"></li><li><img class="img-fluid" loading="lazy" src="/img/modals/trial-license-new/logo_porsche.svg" alt="Logotipo da Porsche" width="40" height="52"></li><li><img class="img-fluid" loading="lazy" src="/img/modals/trial-license-new/logo_usds.svg" alt="Logotipo do USDA" width="54" height="54"></li><li><img class="img-fluid" loading="lazy" src="/img/modals/trial-license-new/logo_qatar.svg" alt="Logotipo do Catar" width="114" height="32"></li></ul> <div class="h2">Junte-se a milhões de engenheiros que já experimentaram o IronPDF.</div> </section> <section class="trial_key_sent text-center iron_color--black iron_font--normal iron_fs--14 iron_lh--16" style="display:none;"> Sua chave de teste deve estar no e-mail.<br>Se não estiver, por favor entre em contato com <a href="mailto:support@ironsoftware.com" aria-label="Contact support" class="iron_color--deep_blue iron_font--medium iron_hover_color--pink">support@ironsoftware.com</a> </section> <div style="flex:0 1 80px"><!-- spacer --></div> </div> </div> </div> </div> </div> </div> </div> </div> <script> document.addEventListener("DOMContentLoaded", function() { var selector = "#trial-license"; document.onElementViewportIntersect(selector, function() { var modals = ["trial-license.util.js", "modals/trial-license.css", "modals/trial-license-new.css"]; importModal(modals, "trial-license", debug()); }); }); </script> <script> function getHsProductCodeFromUrl() { const url = window.location.href; if (url.includes("ironpdf.com") || url.includes("ironpdf.local")) { if (url.includes("/java/")) return "pdf-java"; if (url.includes("/python/")) return "pdf-python"; if (url.includes("/nodejs/")) return "pdf-nodejs"; return "pdf"; } else if (url.includes("ironsoftware.com") || url.includes("ironsoftware.local")) { if (url.includes("/word/")) return "word"; if (url.includes("/ocr/")) return "ocr"; if (url.includes("/webscraper/")) return "webscraper"; if (url.includes("/barcode/")) return "barcode"; if (url.includes("/excel/")) return "excel"; if (url.includes("/qr/")) return "qr"; if (url.includes("/zip/")) return "zip"; if (url.includes("/word/")) return "word"; if (url.includes("/print/")) return "print"; if (url.includes("/securedoc/")) return "securedoc"; if (url.includes("/ppt/")) return "ppt"; if (url.includes("/python/excel/")) return "excel-python"; return "suite"; } } function enabledAbandonTrialForm() { function s(e = "") { const headers = new Headers(); headers.append("Content-Type", "application/json"); const body = JSON.stringify({ "fields": [{ "name": "email", "value": e }, { "name": "interested_products", "value": getHsProductCodeFromUrl() } ], "context": { "pageUri": window.location.href, "pageName": window.location.href.split('#')[0] } }); fetch("https://api.hsforms.com/submissions/v3/integration/submit/22630553/e036830d-c04a-4cb9-a5a0-2ba606d5de9f", { method: "POST", headers: headers, body: body, redirect: "follow" }).then((response) => response.text()).then((result) => console.log(result)).catch((error) => console.error(error)); } const w = 'email'; const t = 'trial-license'; const l = 'trial-license-new'; const f = 'name'; const fullScreenTrialModal = document.getElementById(t); if (fullScreenTrialModal && fullScreenTrialModal.classList.contains(l)) { fullScreenTrialModal.addEventListener('hide.bs.modal', function() { let e = []; document.querySelectorAll('#' + t + ' input[' + f + '="' + w + '"]').forEach(function(input) { if (input.value != '' && input.value != null && input.value.length >= 4) { e.push(input.value); } }); if (e.length > 0) { s(e[0]); } }); } }; function enabledSocialTrial() { const target = '.modal#trial-license .right_content.page_one'; const insertAfter = '.no_credit_required'; // Add place holder for social login document.querySelector(target + ' ' + insertAfter).insertAdjacentHTML("afterend", '<div id="firebaseui-auth-container"><div class="or_separator">OR</div></div>'); const firebaseuiAuthContainer = document.querySelector(target + ' #firebaseui-auth-container'); const currentPageUri = window.location.href; function submitHsform(formData) { const myHeaders = new Headers(); const hsu = "https://api.hsforms.com/submissions/v3/integration/submit/23795711/98897ae8-f5f7-4636-ae9e-98d808bc59b7"; myHeaders.append("Content-Type", "application/json"); const raw = JSON.stringify({ "fields": [{ "name": "email", "value": formData.email }, { "name": "firstname", "value": formData.name }, { "name": "comment", "value": "Submit via social login" } ], "context": { "pageUri": currentPageUri, "pageName": "Trial Submit" } }); fetch(hsu, { method: "POST", headers: myHeaders, body: raw, redirect: "follow" }) .then((response) => response.text()) .then((result) => console.log(result)) .catch((error) => console.error(error)); } // helper to load a script function loadScript(src) { return new Promise(resolve => { const s = document.createElement('script'); s.src = src; s.onload = resolve; document.head.appendChild(s); }); } // helper to load CSS function loadCSS(href) { const l = document.createElement('link'); l.rel = "stylesheet"; l.href = href; document.head.appendChild(l); } // Make sure related files are loaded, prevent miss behavior. Promise.all([ loadScript("https://www.gstatic.com/firebasejs/9.23.0/firebase-app-compat.js"), loadScript("https://www.gstatic.com/firebasejs/9.23.0/firebase-auth-compat.js"), loadScript("https://www.gstatic.com/firebasejs/ui/6.0.1/firebase-ui-auth.js"), loadCSS("https://www.gstatic.com/firebasejs/ui/6.0.1/firebase-ui-auth.css"), ]).then(() => { // Firebase config const firebaseConfig = { apiKey: "AIzaSyCsJiQyqdfI_YcNRxxpVUJ_pvicKmH9dX4", authDomain: "iron-authentication.firebaseapp.com", projectId: "iron-authentication", storageBucket: "iron-authentication.firebasestorage.app", messagingSenderId: "381801101678", appId: "1:381801101678:web:2d637bb0cdf2377998e97f" }; // init authn app firebase.initializeApp(firebaseConfig); // FirebaseUI const ui = new firebaseui.auth.AuthUI(firebase.auth()); ui.start('#firebaseui-auth-container', { signInFlow: 'popup', signInOptions: [{ provider: firebase.auth.GoogleAuthProvider.PROVIDER_ID, scopes: [ 'email', 'profile', ], customParameters: { prompt: 'select_account' } }, { provider: firebase.auth.GithubAuthProvider.PROVIDER_ID, scopes: [ 'user:email', 'read:user', ], customParameters: { prompt: 'select_account' } }, ], callbacks: { signInSuccessWithAuthResult: function(authResult) { const user = authResult.user; const userEmail = user.email || user.providerData[0]?.email; const userName = user.displayName; // Place info into the HS form const emailInput = document.querySelector('.modal#trial-license .right_content.page_two .placeholder__hsform--two form input[name="email"]'); const nameInput = document.querySelector('.modal#trial-license .right_content.page_two .placeholder__hsform--two form input[name="firstname"]'); // interact the dom document.querySelector('.modal#trial-license .right_content.page_one').style.display = 'none'; document.querySelector('.modal#trial-license .right_content.page_two').style.display = 'block'; var emailInputField = document.querySelector('.modal#trial-license .placeholder__hsform--two input[name="email"]'); if (emailInputField) { emailInputField.readOnly = true; emailInputField.value = userEmail; emailInputField.dispatchEvent(new Event('change', { bubbles: true })); } if (emailInput) { emailInput.value = userEmail; emailInput.dispatchEvent(new InputEvent('input', { bubbles: true, cancelable: true })); } if (nameInput) { nameInput.value = userName; nameInput.dispatchEvent(new InputEvent('input', { bubbles: true, cancelable: true })); } submitHsform({ "email": userEmail, "name": userName }) firebaseuiAuthContainer.style.display = 'none'; return false; } } }); }); return; } // enabledAbandonTrialForm(); // enabledSocialTrial(); </script> <script> document.addEventListener("DOMContentLoaded", function() { var selector = "#trial-license-form-sent"; document.onElementViewportIntersect(selector, function() { var modals = ["trial-license.util.js", "modals/trial-license.css", "modals/trial-license-new.css"]; importModal(modals, "trial-license-form-sent", debug()); }); }); </script> <div class="modal fade" id="talk-to-sales" tabindex="-1"> <div class="modal-dialog modal-fullscreen modal-dialog-scrollable"> <div class="modal-content talk_to_sales"> <div class="modal-loaded donotdelete"></div> <!-- close modal button --> <button type="button" class="button_close_modal" data-bs-dismiss="modal"><img src="/img/modals/talk_to_sales/icon_close_modal.svg" width="20" height="20" alt="close modal" loading="lazy"></button> <!-- modal content, start --> <div class=""> <div class="d-flex align-items-stretch vh-100"> <div class="content_left d-none d-md-flex flex-column"> <div class="product_logo"><img src="/img/modals/talk_to_sales/main_logo.svg" width="220" height="40" alt="Logotipo da Iron Suite Enterprise" loading="lazy"></div> <div class="h2">Fale com a equipe de vendas</div> <p class="sub_title">Agende uma consulta sem compromisso.</p> <div class="team_expert_photo"> <img src="/img/modals/talk_to_sales/team_expert.webp" width="248" height="56" alt="Equipe de consultoria da Iron Software Enterprise" class="img-fluid" loading="lazy"> </div> <div class="how_we_help"> <div class="h3">Como podemos ajudar:</div> <ul> <li><span class="d-block"><i class="far fa-check-circle"></i></span><span class="d-block flex-grow-1">Consulta sobre seu fluxo de trabalho e principais dificuldades.</span></li><li><span class="d-block"><i class="far fa-check-circle"></i></span><span class="d-block flex-grow-1">Veja como outras empresas resolvem suas necessidades de documentos .NET.</span></li><li><span class="d-block"><i class="far fa-check-circle"></i></span><span class="d-block flex-grow-1">Responderemos a todas as suas perguntas para garantir que você tenha todas as informações necessárias. (Sem qualquer compromisso.)</span></li><li><span class="d-block"><i class="far fa-check-circle"></i></span><span class="d-block flex-grow-1">Obtenha um orçamento personalizado para as necessidades do seu projeto.</span></li> </ul> </div> </div> <div class="content_right d-flex flex-column"> <div style="flex:0 1 84px;"><!-- spacer --></div> <div class="content_right__hsform_header"> <div class="form_title">Agende sua consulta sem compromisso.</div> <p class="sub_title">Preencha o formulário abaixo ou envie um e-mail <a href="mailto:sales@ironsoftware.com" aria-title="">para sales@ironsoftware.com</a></p> </div> <div id="form_wrapper" class="form_wrapper" style="min-height: 488px;"> <div class="form_placeholder"></div> <p class="text_below_form"><i class="fa-solid fa-shield-heart"></i>Os seus dados serão sempre <strong>mantidos em sigilo.</strong></p> </div> <div style="flex:0 1 98px; min-height:24px;"><!-- spacer --></div> <div class="trusted_by"> <div class="h3">Aprovado por milhões de engenheiros em todo o mundo.</div> <div><img src="/img/modals/talk_to_sales/trusted_by_logos.webp" width="552" height="97" alt="Logotipos dos clientes da Iron Software" class="img-fluid" loading="lazy"></div> </div> </div> </div> </div> <!-- modal content, end --> </div> </div> </div> <script data-hbspt-form> document.addEventListener("DOMContentLoaded", function() { // iron_hsform_error_v2 (2024 DEC) // required: css group ".iron_hsform_error_v2" // required: label from hubspot // HubSpot form CSS is global; with multiple instances it can affect the wrong form. // Toggle the stylesheet with the modal to prevent modal submissions // from visually updating the page form. let hsCss; var salesTalkSelector = document.querySelector("#talk-to-sales"); salesTalkSelector?.addEventListener("hidden.bs.modal", (evt) => { if (evt.target.id === "talk-to-sales") { hsCss = document.querySelector(`link[rel="stylesheet"][type="text/css"][href="/front/css/hbsptforms.css?v=1776616414"]`); hsCss && (hsCss.disabled = true); } }); salesTalkSelector?.addEventListener("show.bs.modal", (evt) => { if (evt.target.id === "talk-to-sales") { hsCss && (hsCss.disabled = false); } }); var this_hsFormID = "dd27b8f3-83d9-4518-8fbc-8d07ec8b0761"; var this_hsFormSubmitText = "Solicite um orçamento"; var this_hsFormSubmittedText = '<div class="hsform_submitted_badge"></div><div class="hsform_submitted_text">Obrigado por enviar o formulário!</div>'; var this_hsFormConfig = { region: "na1", portalId: "22630553", formId: this_hsFormID, locale: "pt", inlineMessage: this_hsFormSubmittedText, submitText: this_hsFormSubmitText, target: "#form_wrapper", cssClass: "hsform_talk-to-sales iron_hsform_error_v2", translations: { "pt": { fieldLabels: {"email":"Seu e-mail comercial","firstname":"Nome","countrycode":"Código de discagem","phone":"Número de telefone","preferred_communication":"Método de contato preferido"} } }, onFormReady: function($form) { // alway scoped with $form // inject error element (icon and tooltip) var this_hsFormErrors = {"email":"Por favor, insira um endereço de e-mail válido.","firstname":"Por favor, digite seu nome.","countrycode":"","phone":"Um número de telefone válido pode conter apenas números, +(), -, ou x.","preferred_communication":"Selecione um método de contato preferido"}; var this_hsFormErrorTooltipMessages = { ".hs-form-field.hs-firstname": this_hsFormErrors.firstname || "Por favor, digite seu nome.", ".hs-form-field.hs-email": this_hsFormErrors.email || "Por favor, insira um endereço de e-mail válido.", ".hs-form-field.hs-phone": this_hsFormErrors.phone || "Um número de telefone válido pode conter apenas números, +(), -, ou x.", } for (var classname in this_hsFormErrorTooltipMessages) { const errorElement = $('<div/>', { class: 'iron-hsform-error-element', 'data-toggle': 'tooltip', 'data-placement': 'top', title: this_hsFormErrorTooltipMessages[classname] }); $form.find(classname).append(errorElement); } // create bootstrap's tooltip inside this form only $form.find('[data-toggle="tooltip"]').each(function(index, el) { bootstrap.Tooltip.getOrCreateInstance(this); }); }, onFormSubmitted: function($form) { // hide form header, form making sense of submitted form $form.parent().parent().parent().find('.content_right__hsform_header').hide(); window._vis_opt_queue = window._vis_opt_queue || []; window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(229);}); } }; setupModalPopupWithHubSpotForm(salesTalkSelector, "talk-to-sales", ["modals/talk_to_sales.css"], this_hsFormConfig, "#talk-to-sales div.form_wrapper"); }); </script> <!-- modal start --> <div class="modal fade cv-auto" id="booking-demo" tabindex="-1"> <div class="modal-dialog modal-fullscreen modal-dialog-scrollable"> <div class="modal-content modal_booking_demo"> <div class="modal-loaded donotdelete"></div> <!-- close modal button --> <button type="button" class="button_close_modal" data-bs-dismiss="modal" aria-label="Close"><img src="/img/modals/booking_demo/icon_close_modal.svg" width="20" height="20" alt="close modal button" loading="lazy"></button> <!-- modal content, start --> <div class=""> <div class="d-flex align-items-stretch vh-100"> <div class="content_left d-none d-md-flex flex-column"> <div class="product_logo_wrapper"><img class="product_logo" src="/img/products/ironpdf-logo-text-dotnet-white.svg" width="170" height="28" alt="IronPDF para .Net" loading="lazy"></div> <div style="flex:0 1 56px;"><!-- spacer --></div> <div class="h2">Agende uma demonstração ao vivo gratuita</div> <p class="sub_title">Agende uma demonstração personalizada de 30 minutos.</p> <p class="sub_title_emphasis">Sem contrato, sem necessidade de dados de cartão, sem compromissos.</p> <div style="flex:0 1 12px;"><!-- spacer --></div> <div class="team_expert_photo_wrapper"> <img loading="lazy" src="/img/modals/booking_demo/team_expert.webp" width="496" height="112" alt="Equipe de Demonstração de Produtos da Iron Software" class="team_expert_photo"> </div> <div style="flex:0 1 40px;"><!-- spacer --></div> <div class="how_we_help"> <span class="h3">Eis o que você pode esperar:</h3> <ul> <li><span class="d-block"><i class="far fa-check-circle"></i></span><span class="d-block flex-grow-1">Uma demonstração ao vivo do nosso produto e suas principais funcionalidades.</span></li><li><span class="d-block"><i class="far fa-check-circle"></i></span><span class="d-block flex-grow-1">Receba recomendações de funcionalidades específicas para o seu projeto.</span></li><li><span class="d-block"><i class="far fa-check-circle"></i></span><span class="d-block flex-grow-1">Todas as suas dúvidas serão respondidas para garantir que você tenha todas as informações necessárias.<br> (Sem qualquer compromisso.)</span></li> </ul> </div> </div> <div class="content_right d-flex flex-column"> <div class="d-none d-md-block" style="flex:0 0 48px;"><!-- spacer --></div> <div class="d-none d-md-block hsform_progress"> <div class="line"></div> <div class="dot step-1"></div> <div class="dot step-2"></div> <div class="text step-1">ESCOLHA O HORÁRIO</div> <div class="text step-2">SUAS INFORMAÇÕES</div> </div> <div class="form_title">Agende sua <strong>demonstração ao vivo</strong> gratuita.</div> <div class="d-none d-md-block" style="height:72px;"><!-- spacer --></div> <div class="content_right__hsform_header"> <div class="text-center"> <img loading="lazy" src="/img/modals/booking_demo/booking_badge.svg" class="img-fluid mx-auto" width="234" height="170" alt="Booking Badge related to Adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo"> </div> </div> <div class="hsform_loader_wrapper"> <div class="hsform_loader"></div> </div> <div class="form_wrapper hsform_schedule_email" style="min-height: 201px;"></div> <div class="hsform_schedule_meeting"> <!-- Start of Meetings Embed Script --> <div class="meetings-iframe-container" data-src="https://hub.ironsoftware.com/meetings/ironsoftware/demo?embed=true"></div> <!-- End of Meetings Embed Script --> </div> <div style="flex:0 0 24px;"><!-- spacer --></div> <div style="flex:0 1 98px;"><!-- spacer --></div> <div class="trusted_by"> <h3 class="h3">Aprovado por milhões de engenheiros em todo o mundo.</h3> <div><img loading="lazy" src="/img/modals/booking_demo/trusted_by_logos.webp" width="574" height="54" alt="Logotipos dos clientes da Iron Software" class="img-fluid"></div> </div> </div> </div> </div> <!-- modal content, end --> </div> </div> </div> <script data-hbspt-form> document.addEventListener("DOMContentLoaded", function() { var bookingDemoSelector = document.querySelector("#booking-demo"); // iron_hsform_error_v2 (2024 DEC) // required: css group ".iron_hsform_error_v2" // required: label from hubspot window.currentModalID = "#booking-demo"; var this_hsFormID = "28570e7d-08f2-41c5-ab5b-b00342515d68"; var this_hsFormSubmitText = "Iniciar reserva"; var this_hsFormConfig = { region: "na1", portalId: "22630553", formId: this_hsFormID, locale: 'en', submitText: this_hsFormSubmitText, cssClass: "iron_hsform_meeting iron_hsform_error_v2", onFormReady: function($form) { /* create error tooltip, start */ // alway scoped with $form // inject error element (icon and tooltip), then hide them var this_hsFormErrorTooltipMessages = { ".hs-form-field.hs-firstname": "Por favor, digite seu nome.", ".hs-form-field.hs-email": "Por favor, insira um endereço de e-mail válido.", ".hs-form-field.hs-phone": "", }; for (var classname in this_hsFormErrorTooltipMessages) { const invalidAttr = $('<div/>', { class: 'invalid-field', 'data-toggle': 'tooltip', 'data-placement': 'top', title: this_hsFormErrorTooltipMessages[classname] }); $form.find(classname).append(invalidAttr); } // create bootstrap's tooltip inside this form only $form.find('[data-toggle="tooltip"]').each(function(index, element) { bootstrap.Tooltip.getOrCreateInstance(element); }); /* create error tooltip, end */ }, onFormSubmitted: function($form, data) { $(currentModalID + ' .content_right__hsform_header').hide(); $(currentModalID + ' .hsform_schedule_email').hide(); $(currentModalID + ' .trusted_by').hide(); $(currentModalID + ' .hsform_loader_wrapper').show(); dataLayer.push({ 'event': 'book_live_demo' }); window._vis_opt_queue = window._vis_opt_queue || []; window._vis_opt_queue.push(function() { _vis_opt_goal_conversion(234); }); setTimeout(function() { // collect email address after form submitted const email = data['submissionValues']['email']; // get data-src from next form var nextFormDataSrc = $('.hsform_schedule_meeting .meetings-iframe-container').attr('data-src'); // generate new data-src nextFormDataSrc = nextFormDataSrc + '&email=' + email // inject new data-src to next form $(currentModalID + ' .hsform_schedule_meeting .meetings-iframe-container').attr('data-src', nextFormDataSrc); // call next form manually after update data-src $.getScript('https://static.hsappstatic.net/MeetingsEmbed/ex/MeetingsEmbedCode.js', function() { $(currentModalID + ' .hsform_loader_wrapper').hide(); $(currentModalID + ' .hsform_schedule_meeting').show(); }); }, 0); }, }; /* for form progress, start */ var hsMeetingFormActivated = false; window.addEventListener("message", function(event) { if (event.origin == "https://meetings.hubspot.com" && event.data == "readyForConsentListener" && hsMeetingFormActivated == false) { hsMeetingFormActivated = true; $(currentModalID + ' .hsform_progress').css("visibility", "visible"); $(currentModalID + ' .hsform_progress .step-1.dot').addClass('active'); $(currentModalID + ' .hsform_progress .step-1.text').addClass('active'); } if (event.origin == "https://meetings.hubspot.com" && event.data != "readyForConsentListener" && hsMeetingFormActivated) { // console.log('>> second meeting form displaying') $(currentModalID + ' .hsform_progress .step-1.dot').addClass('completed'); $(currentModalID + ' .hsform_progress .step-1.dot').html('<i class="fas fa-check"></i>'); $(currentModalID + ' .hsform_progress .step-1.text').addClass('completed'); $(currentModalID + ' .hsform_progress .step-2.dot').addClass('active'); $(currentModalID + ' .hsform_progress .step-2.text').addClass('active'); $(currentModalID + ' .hsform_progress .line').addClass('active'); } if (event.origin == "https://meetings.hubspot.com" && event.data.meetingBookSucceeded && hsMeetingFormActivated) { // console.log('>> meeting form submitted') $(currentModalID + ' .hsform_progress .step-2.dot').addClass('completed'); $(currentModalID + ' .hsform_progress .step-2.dot').html('<i class="fas fa-check"></i>'); $(currentModalID + ' .hsform_progress .step-2.text').addClass('completed'); } }); /* for form progress, end */ setupModalPopupWithHubSpotForm(bookingDemoSelector, "booking-demo", ["modals/booking_demo.css"], this_hsFormConfig, "#booking-demo .form_wrapper.hsform_schedule_email"); }); </script> <!-- modal end --> <!-- Article Documentation Typeform Modal START --> <div class="modal fade cv-auto" id="article-feedback-modal" tabindex="-1" data-bs-backdrop="true" aria-modal="true" aria-hidden="true" role="dialog"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <i class="fas fa-times slide-out-close" data-bs-dismiss="modal" aria-hidden="true"></i> </div> <div class="modal-body"> <div class="modal-loaded donotdelete"></div> <div class="article-feedabck__wrapper" id="anchor-improve-the-article" data-tf-widget="zrOqRbmz" data-tf-iframe-props="title=Article feedback" data-tf-medium="snippet" data-tf-hidden="source=https://ironpdf.com/pt/blog/using-ironpdf/read-header-footer-itextsharp" data-tf-disable-auto-focus ></div> <script> document.addEventListener("DOMContentLoaded", function() { setupModalPopup("#article-feedback-modal", "article-feedback-modal", ["https://embed.typeform.com/next/embed.js", "modals/article-typeform.css"]); }); </script> </div> </div> </div> </div> <!-- Article Documentation Typeform Modal END --> <!-- Full Width Code Example Modal START --> <div class="modal full-width-code-example-modal cv-auto" tabindex="-1" id="fullWidthCodeExample" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-loaded donotdelete"></div> <div class="modal-header"> <button title="Close" data-bs-dismiss="modal" aria-hidden="true" class="full-width-code-example-modal__close-button"> <i class="fas fa-times" data-bs-dismiss="modal" aria-hidden="true"></i> </button> </div> <div class="modal-body"></div> </div> </div> </div> <script> document.addEventListener("DOMContentLoaded", function() { var copyButtonSibling = null; const fwCSEl = document.querySelector("#fullWidthCodeExample"); const fwCSModal = bsModal(fwCSEl); document.querySelectorAll(".js-full-screen-code-example-modal").forEach((exBtn) => { exBtn.addEventListener("click", (ev) => { copyButtonSibling = Array.from(getSiblings(exBtn)).filter(sibling => sibling.classList.contains('js-clipboard-button') || sibling.classList.contains('copy-clipboard'))[0]; let copyHoverVal = copyButtonSibling.getAttribute("title"); let copyDataHoverVal = copyButtonSibling.getAttribute("data-original-title"); let codeExampleContent = exBtn.closest(".code-content")?.cloneNode(true); if (!codeExampleContent) { codeExampleContent = exBtn.closest(".code-explorer__content").cloneNode(true); } if (codeExampleContent) { fwCSEl.querySelector(".modal-body").replaceChildren(codeExampleContent); fwCSEl.querySelector(".copy-clipboard")?.setAttribute("title", copyDataHoverVal != '' ? copyDataHoverVal : copyHoverVal); openModalPopup("fullWidthCodeExample", null, false); } }); }); fwCSEl.addEventListener("click", (ev) => { const target = ev.target.closest(".js-exit-full-screen-code-example-modal, .full-width-code-example-modal__close-button"); if (!target) return; const sib = Array.from(getSiblings(target)).filter(sibling => sibling.classList.contains('copy-clipboard'))[0]; if (!sib) return; copyButtonSibling.setAttribute('title', sib.getAttribute('title')); fwCSModal.then((modal) => { modal.hide(); }); }); setupModalPopup("#fullWidthCodeExample", "fullWidthCodeExample", ["modals/code-examples.css"]); }); </script> <!-- Full Width Code Example Modal END --> <script> // toggle dropdown trial form function vwoEnabledHsFormAtStickyFooter() { load_$(() => { // load hubspot form dynamically function dynamicLoadHsForms(formOption, target) { function waitForHsptReady() { var interval = setInterval(function() { if (typeof hbspt !== "undefined") { clearInterval(interval); var option = formOption; option.target = target; hbspt.forms.create(option); } }, 10); } if (typeof hbspt === "undefined") { var script = document.createElement("script"); script.type = "text/javascript"; script.src = "//js.hsforms.net/forms/embed/v2.js"; document.getElementsByTagName("head")[0].appendChild(script); script.onload = function() { waitForHsptReady(); }; } else { waitForHsptReady(); } } // disable open the modal on click at sticky footer bar const $footerSticky = $("#footer-sticky"); $footerSticky.replaceWith($footerSticky.clone(true)); // hide default black cta button $('#footer-sticky-cta-button').hide(); // show a variant hsform $('#placeHolderForHsFormAtStickyFooter').show(); // styling variant $("#footer-sticky").css({ 'cursor': 'default', 'height': '52px' }); $('#footer-sticky .support-text').css({ 'cursor': 'default', }); // hsform options const hsFormOptionsAtStickyFooter = { portalId: "22630553", region: "na1", locale: "en", formId: "78c61202-075f-4baa-909b-54216b9dede2", formInstanceId: "sticky-footer-trial", submitText: "Teste gratuito", inlineMessage: "Obrigado, verifique seu e-mail para obter informações sobre seu período de teste gratuito.", onFormReady: function($form) { // insert product_id to form hidden input // $form.find('input[name="2-12260276/trial_products"]').val(window.IRON.product.code.toUpperCase()).change(); const el = document.querySelector('#placeHolderForHsFormAtStickyFooter'); const tooltip = new bootstrap.Tooltip(el, { placement: 'top', trigger: 'manual', title: 'É necessário enviar um e-mail para receber a chave de avaliação.', }); const emailInput = $form.find('input[type="email"]')[0]; const observer = new MutationObserver((mutations) => { const mutation = mutations[0]; if (mutation.attributeName === 'class') { if (emailInput.classList.contains('invalid')) { tooltip.show(); setTimeout(() => { tooltip.hide(); }, 3000); } else { tooltip.hide(); } } }); observer.observe(emailInput, { attributes: true, attributeFilter: ['class'] }); }, onFormSubmitted: function($form, data) { // trigger goal start window._vis_opt_queue = window._vis_opt_queue || []; window._vis_opt_queue.push(function() { _vis_opt_goal_conversion(237); }); // Fire Custom Event when form submited dataLayer.push({ 'event': 'trial-from-submitted' }); // HubSpot hubspot_custom_conversion_trigger("pe22630553_trial_from_submitted_v2"); // trigger goal end const nextForm = ".modal#trial-license .placeholder__hsform--two form"; const waitForTargetInput = setInterval(() => { if ($(nextForm).length) { clearInterval(waitForTargetInput); $(nextForm + " input[name='email']").val(data.submissionValues.email).change(); $(nextForm + " input[name='email']").attr('readonly', true); } }, 100); // open full trial modal, jump to step 2 trialFormSetStep('#trial-license', 2); $('#trial-license').modal('show'); }, }; dynamicLoadHsForms(hsFormOptionsAtStickyFooter, "#placeHolderForHsFormAtStickyFooter"); }); } </script> <div id="footer-sticky" class="fixed-support-bar footer-sticky__vwo-test js-hide-footer-on-scroll js-search-offset-block js-modal-open" data-modal-id="trial-license" > <div class="support-text"> <span class="support-text__full-power">Teste grátis por 30 dias → Produto completo. Sem limites. Sem cartão.</span> <a id="footer-sticky-cta-button" aria-label="Licença de avaliação do Iron Software" class="js-fixed-support-bar-button vwo-homepage-start-trial-cta-button--control btn btn-red btn-white-red" > <i class="fas fa-key d-inline"></i><span class="d-inline">Teste gratuito</span> </a> <div id="placeHolderForHsFormAtStickyFooter"><!-- placeholder --></div> </div> </div> <script> // enabled for debug /* window.onload = function() { vwoEnabledHsFormAtStickyFooter(); }; */ </script> <footer id="footer" class="footer"> <!-- Iron Suite Products --> <div id="new-sc" class="main_product_page new-footer"> <div class="footer__wrapper"> <div class="footer__header"> <a href="https://ironsoftware.com/pt/about-us/1-percent-for-the-planet/" class="footer__header-logo"> <img class="footer__logo" src="/img/footer/logo-1_percent.svg" alt="Logo 1 Percent related to Adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo" width="204" height="32" loading="lazy"> </a> <div class="footer__header-content"> <div class="footer__header-tagline"> <div class="footer__icon-wrapper"> <img class="footer__icon" src="/img/footer/textlogo-iron_suite.svg" alt="Textlogo Iron Suite related to Adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo" width="201" height="32" loading="lazy"> </div> <h2 class="footer__title"><span>IronPDF faz parte do</span> IRON <strong>SUITE.</strong></h2> <p class="footer__subtitle">10 APIs .NET <span>para seus documentos de escritório</span></p> </div> <div class="footer__cta"> <a href="https://ironsoftware.com/pt/suite/" class="footer__btn buy-all__btn">Obter o Iron Suite completo <i class="fa-solid fa-caret-right"></i></a> <a href="https://ironsoftware.com/pt/suite/#trial-license" class="footer__btn free-trial__btn"><i class="fa-solid fa-key"></i>  Comece seu teste gratuito <i class="fa-solid fa-caret-right"></i></a> </div> </div> </div> <div class="footer__divider d-none d-xl-block"></div> <div class="footer__products"> <h2 class="visually-hidden" id="footer__products__heading">Links de produtos</h2> <ul class="footer__products-list" aria-labelledby="footer__products__heading"> <li class="footer__product"> <a href="/pt/" class="footer__product-link"> <div class="d-flex align-items-center"> <div class="footer__hash-icon-wrapper d-none d-md-inline-flex"> <img src="/img/footer/icon-hash.svg" alt="Icon Hash related to Links de produtos" width="27.95" height="24" loading="lazy"> </div> <div class="footer__product-icon-wrapper"> <img src="/img/footer/textlogo-iron_pdf.svg" alt="logotipo ironpdf" width="auto" height="14" loading="lazy"> </div> </div> <span class="footer__product-text"><strong class="d-none d-md-inline">-</strong> Crie, leia e edite PDFs. HTML para PDF em .NET.</span> </a> </li> <li class="footer__product"> <a href="https://ironsoftware.com/pt/csharp/word/" class="footer__product-link"> <div class="d-flex align-items-center"> <div class="footer__hash-icon-wrapper d-none d-md-inline-flex"> <img src="/img/footer/icon-hash.svg" alt="Icon Hash related to Links de produtos" width="27.95" height="24" loading="lazy"> </div> <div class="footer__product-icon-wrapper"> <img src="/img/footer/textlogo-iron_word.svg" alt="ironword_logo" width="auto" height="14" loading="lazy"> </div> </div> <span class="footer__product-text"><strong class="d-none d-md-inline">-</strong> Edite arquivos DOCX. Sem Office Interop.</span> </a> </li> <li class="footer__product"> <a href="https://ironsoftware.com/pt/csharp/excel/" class="footer__product-link"> <div class="d-flex align-items-center"> <div class="footer__hash-icon-wrapper d-none d-md-inline-flex"> <img src="/img/footer/icon-hash.svg" alt="Icon Hash related to Links de produtos" width="27.95" height="24" loading="lazy"> </div> <div class="footer__product-icon-wrapper"> <img src="/img/footer/textlogo-iron_xl.svg" alt="logotipo ironxl" width="auto" height="14" loading="lazy"> </div> </div> <span class="footer__product-text"><strong class="d-none d-md-inline">-</strong> Edite arquivos Excel e CSV. Sem Office Interop.</span> </a> </li> <li class="footer__product"> <a href="https://ironsoftware.com/pt/csharp/ppt/" class="footer__product-link"> <div class="d-flex align-items-center"> <div class="footer__hash-icon-wrapper d-none d-md-inline-flex"> <img src="/img/footer/icon-hash.svg" alt="Icon Hash related to Links de produtos" width="27.95" height="24" loading="lazy"> </div> <div class="footer__product-icon-wrapper"> <img src="/img/footer/textlogo-iron_ppt.svg" alt="ironppt_logo" width="auto" height="14" loading="lazy"> </div> </div> <span class="footer__product-text"><strong class="d-none d-md-inline">-</strong> Crie, leia e edite apresentações. Sem Office Interop.</span> </a> </li> <li class="footer__product"> <a href="https://ironsoftware.com/pt/csharp/ocr/" class="footer__product-link"> <div class="d-flex align-items-center"> <div class="footer__hash-icon-wrapper d-none d-md-inline-flex"> <img src="/img/footer/icon-hash.svg" alt="Icon Hash related to Links de produtos" width="27.95" height="24" loading="lazy"> </div> <div class="footer__product-icon-wrapper"> <img src="/img/footer/textlogo-iron_ocr.svg" alt="logotipo ironocr" width="auto" height="14" loading="lazy"> </div> </div> <span class="footer__product-text"><strong class="d-none d-md-inline">-</strong> OCR (extração de texto de imagens) em 125 idiomas.</span> </a> </li> <li class="footer__product"> <a href="https://ironsoftware.com/pt/csharp/barcode/" class="footer__product-link"> <div class="d-flex align-items-center"> <div class="footer__hash-icon-wrapper d-none d-md-inline-flex"> <img src="/img/footer/icon-hash.svg" alt="Icon Hash related to Links de produtos" width="27.95" height="24" loading="lazy"> </div> <div class="footer__product-icon-wrapper"> <img src="/img/footer/textlogo-iron_barcode.svg" alt="ironbarcode_logo" width="auto" height="14" loading="lazy"> </div> </div> <span class="footer__product-text"><strong class="d-none d-md-inline">-</strong> Ler e escrever códigos QR e códigos de barras.</span> </a> </li> <li class="footer__product"> <a href="https://ironsoftware.com/pt/csharp/qr/" class="footer__product-link"> <div class="d-flex align-items-center"> <div class="footer__hash-icon-wrapper d-none d-md-inline-flex"> <img src="/img/footer/icon-hash.svg" alt="Icon Hash related to Links de produtos" width="27.95" height="24" loading="lazy"> </div> <div class="footer__product-icon-wrapper"> <img src="/img/footer/textlogo-iron_qr.svg" alt="ironqr_logo" width="auto" height="14" loading="lazy"> </div> </div> <span class="footer__product-text"><strong class="d-none d-md-inline">-</strong> Ler e escrever códigos QR.</span> </a> </li> <li class="footer__product"> <a href="https://ironsoftware.com/pt/csharp/zip/" class="footer__product-link"> <div class="d-flex align-items-center"> <div class="footer__hash-icon-wrapper d-none d-md-inline-flex"> <img src="/img/footer/icon-hash.svg" alt="Icon Hash related to Links de produtos" width="27.95" height="24" loading="lazy"> </div> <div class="footer__product-icon-wrapper"> <img src="/img/footer/textlogo-iron_zip.svg" alt="logotipo ironzip" width="auto" height="14" loading="lazy"> </div> </div> <span class="footer__product-text"><strong class="d-none d-md-inline">-</strong> Compactar e descompactar arquivos.</span> </a> </li> <li class="footer__product"> <a href="https://ironsoftware.com/pt/csharp/print/" class="footer__product-link"> <div class="d-flex align-items-center"> <div class="footer__hash-icon-wrapper d-none d-md-inline-flex"> <img src="/img/footer/icon-hash.svg" alt="Icon Hash related to Links de produtos" width="27.95" height="24" loading="lazy"> </div> <div class="footer__product-icon-wrapper"> <img src="/img/footer/textlogo-iron_print.svg" alt="logotipo de IronPrint" width="auto" height="14" loading="lazy"> </div> </div> <span class="footer__product-text"><strong class="d-none d-md-inline">-</strong> Imprimir documentos em aplicações .NET.</span> </a> </li> <li class="footer__product"> <a href="https://ironsoftware.com/pt/csharp/webscraper/" class="footer__product-link"> <div class="d-flex align-items-center"> <div class="footer__hash-icon-wrapper d-none d-md-inline-flex"> <img src="/img/footer/icon-hash.svg" alt="Icon Hash related to Links de produtos" width="27.95" height="24" loading="lazy"> </div> <div class="footer__product-icon-wrapper"> <img src="/img/footer/textlogo-iron_webscraper.svg" alt="logotipo IronWebScraper" width="auto" height="14" loading="lazy"> </div> </div> <span class="footer__product-text"><strong class="d-none d-md-inline">-</strong> Extrair dados estruturados de sites.</span> </a> </li> </ul> </div> </div> </div> <nav class="footer__first-row-wrappe" role="navigation"> <div class="footer__first-row__first-column"> <div class="footer__first-row__logo"> <a href="#"> <img loading="lazy" src="/img/products/footer-top-logo-ironpdf-for-net.svg" alt="IronPDF for .NET" width="268" height="44"> </a> </div> <div class="footer__first-row__logo-description"> <p>Quando você precisa que seu PDF tenha a aparência de HTML, rapidamente.</p> </div> </div> <div class="footer__first-row__second-column"> <section class="bifrost"></section> <div class="footer__first-row__second-column__navigation"> <nav class="footer__first-row__navigation"> <p class="footer__first-row__navigation__title">Documentação</p> <ul class="footer__first-row__navigation__links-list"> <li> <a class="footer__first-row__navigation__link" href="/pt/examples/using-html-to-create-a-pdf/" > Exemplos de código </a> </li> <li> <a class="footer__first-row__navigation__link" href="/pt/how-to/create-new-pdfs/" > Tutoriais </a> </li> <li> <a class="footer__first-row__navigation__link" href="/pt/object-reference/api/" target="_blank" > Referência da API </a> </li> <li> <a class="footer__first-row__navigation__link" href="/pt/features/" > Características </a> </li> <li> <a class="footer__first-row__navigation__link" href="/pt/blog/" > Blogue </a> </li> <li> <a class="footer__first-row__navigation__link i18n__distrans" href="/assets/ironpdf-brochure.pdf" target="_blank" > Catálogo de Produtos </a> </li> <li> <a class="footer__first-row__navigation__link" data-bs-toggle="tooltip" data-bs-placement="right" title="Ajuda os LLMs e ferramentas como ChatGPT e Claude a entenderem melhor nossa documentação." href="/pt/llms.txt" target="_blank" > Índice IA (llms.txt) </a> </li> </ul> </nav> <nav class="footer__first-row__navigation"> <p class="footer__first-row__navigation__title">Tutoriais</p> <ul class="footer__first-row__navigation__links-list"> <li> <a class="footer__first-row__navigation__link" href="/pt/docs/" > Comece agora </a> </li> <li> <a class="footer__first-row__navigation__link" href="/pt/tutorials/html-to-pdf/" > HTML para PDF </a> </li> <li> <a class="footer__first-row__navigation__link" href="/pt/tutorials/csharp-edit-pdf-complete-tutorial/" > Edição de PDFs em C# </a> </li> <li> <a class="footer__first-row__navigation__link" href="/pt/how-to/pixel-perfect-html-to-pdf/" > Depurar com Chrome </a> </li> </ul> </nav> <nav class="footer__first-row__navigation"> <p class="footer__first-row__navigation__title">Alternativas VS</p> <ul class="footer__first-row__navigation__links-list"> <li> <a class="footer__first-row__navigation__link" href="/pt/competitors/aspose-vs-ironpdf/" > IronPDF vs Aspose </a> </li> <li> <a class="footer__first-row__navigation__link" href="/pt/competitors/syncfusion-vs-ironpdf/" > IronPDF vs Syncfusion </a> </li> <li> <a class="footer__first-row__navigation__link" href="/pt/competitors/itext-vs-ironpdf/" > IronPDF vs iText </a> </li> <li> <a class="footer__first-row__navigation__link" href="/pt/competitors/apryse-vs-ironpdf/" > IronPDF vs Apryse </a> </li> <li> <a class="footer__first-row__navigation__link" href="/pt/competitors/questpdf-vs-ironpdf/" > IronPDF vs QuestPDF </a> </li> </ul> </nav> <nav class="footer__first-row__navigation"> <p class="footer__first-row__navigation__title">Licenciamento</p> <ul class="footer__first-row__navigation__links-list"> <li> <a class="footer__first-row__navigation__link" href="/pt/licensing/" > Compre uma licença </a> </li> <li> <a class="footer__first-row__navigation__link" href="https://ironsoftware.com/pt/resellers/" target="_blank" > Encontre um revendedor </a> </li> <li> <a class="footer__first-row__navigation__link" href="/pt/licensing/upgrades/" > Atualizações de licença </a> </li> <li> <a class="footer__first-row__navigation__link" href="/pt/licensing/extensions/" > Renovação de licenças </a> </li> <li> <a class="footer__first-row__navigation__link" href="/pt/get-started/license-keys/" > Utilizando chaves de licença </a> </li> <li> <a class="footer__first-row__navigation__link" href="/pt/licensing/eula/" > EULA </a> </li> <li> <a class="footer__first-row__navigation__link" href="https://ironsoftware.com/pt/enterprise/" > Enterprise </a> </li> </ul> </nav> <nav class="footer__first-row__navigation"> <p class="footer__first-row__navigation__title">Experimente o IronPDF gratuitamente.</p> <ul class="footer__first-row__navigation__links-list"> <li> <a class="footer__first-row__navigation__link footer__first-row__navigation__link--highlight js-modal-open" href="https://www.nuget.org/packages/IronPdf/" target="_blank" data-modal-id="trial-license-after-download" > <i class="nuget-icon-pink"></i> Baixe no NuGet </a> </li> <li> <p class="footer__first-row__navigation__link ga-dll-installer footer-dropdown-menuitem download-library-dropdown dll-installer center-dropdown js-modal-open--downloading" data-modal-id="trial-license-after-download" data-url=" /packages/IronPdf.zip " data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-html="true" data-bs-title='<div class="library_download_dropdown_tooltip v2"><div class="library_download_dropdown_tooltip__menuitem" data-download-link="/packages/IronPdf.zip"><span class="library_download_dropdown_tooltip__menuitem_text"><i class="library_download_dropdown_tooltip__menuitem_fa-icon fab fa-microsoft"></i><span class="library_download_dropdown_tooltip_menuitem_text-label">Para Windows</span></span></div><div class="library_download_dropdown_tooltip__menuitem" data-download-link="/packages/IronPdf.MacOs.zip"><span class="library_download_dropdown_tooltip__menuitem_text"><i class="library_download_dropdown_tooltip__menuitem_fa-icon fab fa-apple"></i><span class="library_download_dropdown_tooltip_menuitem_text-label">Para macOS</span></span></div><div class="library_download_dropdown_tooltip__menuitem" data-download-link="/packages/IronPdf.Linux.zip"><span class="library_download_dropdown_tooltip__menuitem_text"><i class="library_download_dropdown_tooltip__menuitem_fa-icon fab fa-linux"></i><span class="library_download_dropdown_tooltip_menuitem_text-label">Para Linux</span></span></div></div>' data-bs-custom-class='dl-dropdown-tooltip' data-bs-trigger='manual'> <i class="fas fa-download"></i> Baixar DLL <i class="fas fa-caret-down"></i> </p> </li> <li> <p class="footer__first-row__navigation__link ga-windows-installer js-modal-open--downloading" data-modal-id="trial-license-after-download" data-url=" /packages/IronPdfInstaller.zip " > <i class="fab fa-microsoft"></i> Instalador do Windows </p> </li> <li> <a class="footer__first-row__navigation__link js-modal-open" href="#trial-license" data-modal-id="trial-license" > <i class="fas fa-key"></i> Teste gratuito </a> </li> </ul> </nav> </div> </div> </nav> <nav id="footer__breadcrumbs-navigation-menu"> <div class="container-fluid"> <div class="navigation-container"> <ol class="breadcrumb"> <li class="breadcrumb-item"><a href="/pt/" aria-label="Go to IronPDF">IronPDF</a></li><li class="breadcrumb-item"><a href="/pt/blog/" aria-label="Go to Blog do IronPDF">Blog do IronPDF</a></li><li class="breadcrumb-item"><a href="/pt/blog/using-ironpdf/" aria-label="Go to Usando o IronPDF">Usando o IronPDF</a></li><li class="breadcrumb-item active">Leia o cabeçalho e o rodapé do iTextSharp</li></ol> <a id="footer__topscroll-link" class="top-return-link" href="#top"> Voltar ao topo </a> </div> </div> </nav> <nav class="footer__additional-background-wrapper d-none" role="navigation"> <h2 class="visually-hidden" id="footer__global-navigation-menu-heading">Menu de navegação global</h2> <div class="footer__fourth-row-wrapper"> <div class="footer__fourth-row-wrapper__logo-block"> <h3 class="visually-hidden">Logotipo e endereço da empresa</h3> <a href="https://ironsoftware.com/pt/"> <img class="footer__fourth-row-wrapper__logo-icon" loading="lazy" src="/img/svgs/hero-logo__162x20.svg" alt="Iron Software" width="162" height="20"> </a> <div class="footer__fourth-row-wrapper__address text-center text-md-end" aria-labelledby="footer-main-links-heading"> <address> Chicago, IL 60601 EUA +1 (312) 500-3060 </address> </div> </div> <div class="footer__fourth-row-wrapper__contact-links-block"> <h3 class="visually-hidden" id="footer__main-navlinks">Links de navegação principais</h3> <ul class="footer__fourth-row-wrapper__links-list" aria-labelledby="footer_main-navlinks"> <li> <a class="footer__fourth-row-wrapper__link" href="https://ironsoftware.com/pt/about-us/" target="_blank"> Sobre nós </a> </li> <li> <a class="footer__fourth-row-wrapper__link" href="https://ironsoftware.com/pt/news/" target="_blank"> Notícias </a> </li> <li> <a class="footer__fourth-row-wrapper__link" href="https://ironsoftware.com/pt/customers/" target="_blank"> Clientes </a> </li> <li> <a class="footer__fourth-row-wrapper__link" href="https://ironsoftware.com/pt/careers/" target="_blank"> Carreiras </a> </li> <li> <a class="footer__fourth-row-wrapper__link" href="https://ironsoftware.com/pt/academy/" target="_blank"> Academia </a> </li> <li> <a class="footer__fourth-row-wrapper__link" href="https://ironsoftware.com/pt/live-streams/" target="_blank"> Webinários </a> </li> <li> <a class="footer__fourth-row-wrapper__link" href="https://hub.ironsoftware.com/pt/licenses-view/" target="_blank"> Login do Centro de Clientes </a> </li> <li> <a class="footer__fourth-row-wrapper__link" href="https://ironsoftware.com/pt/contact-us/" target="_blank"> Contate-nos </a> </li> <li class="d-none d-md-flex"> <div class="iron_lang-menu dropup" data-bs-target="#footerLangNameMenuDropdown"> <button type="button" class="dropdown-toggle" id="iron_lang-menu__language-name_dropdown__current-language" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Português </button> <ul id="footerLangNameMenuDropdown" class="dropdown-menu" aria-labelledby="footerLangNameMenuDropdown"> <li class="dropdown-item" role="menuitem"><a class="i18n__distrans" data-language-code="en" hreflang="en" href="/blog/using-ironpdf/read-header-footer-itextsharp/" >English</a></li> <li class="dropdown-item" role="menuitem"><a class="i18n__distrans" data-language-code="es" hreflang="es" href="/es/blog/using-ironpdf/read-header-footer-itextsharp/" >Español</a></li> <li class="dropdown-item" role="menuitem"><a class="i18n__distrans" data-language-code="de" hreflang="de" href="/de/blog/using-ironpdf/read-header-footer-itextsharp/" >Deutsch</a></li> <li class="dropdown-item" role="menuitem"><a class="i18n__distrans" data-language-code="fr" hreflang="fr" href="/fr/blog/using-ironpdf/read-header-footer-itextsharp/" >Français</a></li> <li class="dropdown-item" role="menuitem"><a class="i18n__distrans" data-language-code="ja" hreflang="ja" href="/ja/blog/using-ironpdf/read-header-footer-itextsharp/" >日本語</a></li> <li class="dropdown-item" role="menuitem"><a class="i18n__distrans" data-language-code="ko" hreflang="ko" href="/ko/blog/using-ironpdf/read-header-footer-itextsharp/" >한국어</a></li> <li class="dropdown-item" role="menuitem"><a class="i18n__distrans active-lang" data-language-code="pt" hreflang="pt" href="/pt/blog/using-ironpdf/read-header-footer-itextsharp/" >Português</a></li> <li class="dropdown-item" role="menuitem"><a class="i18n__distrans" data-language-code="pl" hreflang="pl" href="/pl/blog/using-ironpdf/read-header-footer-itextsharp/" >polski</a></li> <li class="dropdown-item" role="menuitem"><a class="i18n__distrans" data-language-code="tr" hreflang="tr" href="/tr/blog/using-ironpdf/read-header-footer-itextsharp/" >Türkçe</a></li> <li class="dropdown-item" role="menuitem"><a class="i18n__distrans" data-language-code="zh" hreflang="zh" href="/zh/blog/using-ironpdf/read-header-footer-itextsharp/" >简体中文</a></li> <li class="dropdown-item" role="menuitem"><a class="i18n__distrans" data-language-code="zh_TW" hreflang="zh-tw" data-language-alias="zh-hant" href="/zh-hant/blog/using-ironpdf/read-header-footer-itextsharp/" >繁體中文</a></li> </ul> </div> </li> </ul> </div> <div class="d-flex flex-column align-items-end"> <h3 class="visually-hidden" id="footer__main-social-links">Links para redes sociais</h3> <ul class="footer__fourth-row-wrapper__social-icons" aria-labelledby="footer__main-social-links"> <li><a class="footer__fourth-row-wrapper__social-icon" href="https://github.com/iron-software" title="Explore o repositório GitHub da Iron Software" target="_blank"><img loading="lazy" src="/img/footer-socials/github.svg" alt="Github related to Links para redes sociais" width='16' height='15.33'></a></li> <li><a class="footer__fourth-row-wrapper__social-icon" href="https://www.youtube.com/@ironsoftware" title="Veja vídeos da Iron Software no YouTube" target="_blank"><img loading="lazy" src="/img/footer-socials/youtube.svg" alt="Youtube related to Links para redes sociais" width='16' height='11'></a></li> <li><a class="footer__fourth-row-wrapper__social-icon" href="https://x.com/ironsoftwaredev" title="Siga a Iron Software no Twitter." target="_blank"><img loading="lazy" src="/img/footer-socials/twitter-x.svg" alt="Twitter X related to Links para redes sociais" width='16' height='13.44'></a></li> <li><a class="footer__fourth-row-wrapper__social-icon" href="https://www.facebook.com/teamironsoftware" title="Mantenha-se conectado com a Iron Software no Facebook." target="_blank"><img loading="lazy" src="/img/footer-socials/facebook.svg" alt="Facebook related to Links para redes sociais" width='16' height='16'></a></li> <li><a class="footer__fourth-row-wrapper__social-icon" href="https://www.linkedin.com/company/ironsoftware" title="Conecte-se com a Iron Software no LinkedIn" target="_blank"><img loading="lazy" src="/img/footer-socials/linkedin.svg" alt="Linkedin related to Links para redes sociais" width='16.34' height='16'></a></li> </ul> <a class="footer__fourth-row-wrapper__link" href="https://ironsoftware.com/pt/company/iron-slack-community/"> <img loading="lazy" src="/img/icons/slack-icon.svg" class="footer__fourth-row__slack-icon" alt="Slack Icon related to Links para redes sociais" width="14" height="14"> Junte-se ao Iron Slack</a> </div> </div> </div> </nav> <nav class="footer__fifth-row-wrapper d-none"> <p class="footer__fifth-row-wrapper__teamseas"> <a href="https://ironsoftware.com/pt/about-us/1-percent-for-the-planet/"> <img loading="lazy" src="/img/footer/logo-1-percent.svg" alt="Apoio ao Teamseas" height="40"> </a> </p> <div class="copyright__links d-flex align-items-center"> <h3 class="visually-hidden" id="footer__copyright-heading">Informações Legais</h3> <p class="footer__fifth-row-wrapper__copyright-text"> Copyright © Iron Software 2013-2026 </p> <ul class="footer__fifth-row-wrapper__links-list" aria-labelledby="footer__copyright-heading"> <li> <a class="footer__fifth-row-wrapper__link" href="https://ironsoftware.com/pt/company/terms/">Termos</a> </li> <li> <a class="footer__fifth-row-wrapper__link" href="https://ironsoftware.com/pt/company/privacy/">Privacidade</a> </li> <li> <a class="footer__fifth-row-wrapper__link" href="https://ironsoftware.com/pt/company/cookie/">Cookie</a> </li> </ul> </div> </nav> <!-- New Footer Navs --> <div class="site-footer__wrapper"> <nav class="site-footer" aria-label="Footer"> <div class="site-footer__links"> <a href="https://ironsoftware.com/pt/about-us/" target='_blank' class="site-footer__link"> Sobre nós </a> <a href="https://ironsoftware.com/pt/news/" target='_blank' class="site-footer__link"> Notícias </a> <a href="https://ironsoftware.com/pt/customers/" target='_blank' class="site-footer__link"> Clientes </a> <a href="https://ironsoftware.com/pt/careers/" target='_blank' class="site-footer__link"> Carreiras </a> <a href="https://ironsoftware.com/pt/academy/" target='_blank' class="site-footer__link"> Academia </a> <a href="https://ironsoftware.com/pt/live-streams/" target='_blank' class="site-footer__link"> Webinários </a> <a href="https://hub.ironsoftware.com/pt/licenses-view/" target='_blank' class="site-footer__link"> Login do Centro de Clientes </a> <a href="https://ironsoftware.com/pt/contact-us/" target='_blank' class="site-footer__link"> Contate-nos </a> </div> <div class="site-footer__bar"> <div class="site-footer__ratings"> <a class="site-footer__rating" href="https://ironsoftware.com/pt/awards-and-recognition/" aria-label="G2 Reviews - view awards and recognition"> <div class="site-footer__rating-logo"> <img class="img-fluid" src="/img/awards/g2-reviews.svg" alt="G2 Reviews" width="48" height="48" loading="lazy"> </div> <div class="site-footer__rating-content"> <div class="site-footer__rating-label"> <div class="site-footer__rating-star-meter" role="img" aria-label="Rated 4.9 out of 5 stars" style="--rating-percent: 98%;"> <span class="site-footer__rating-stars-base" aria-hidden="true">★★★★★</span> <span class="site-footer__rating-stars-fill" aria-hidden="true">★★★★★</span> </div> </div> <span class="site-footer__rating-score"><strong>4.9</strong> / 5</span> </div> </a> <a class="site-footer__rating" href="https://ironsoftware.com/pt/awards-and-recognition/" aria-label="Capterra Reviews - view awards and recognition"> <div class="site-footer__rating-logo"> <img class="img-fluid" src="/img/awards/capterra-reviews.svg" alt="Capterra Reviews" width="32" height="32" loading="lazy"> </div> <div class="site-footer__rating-content"> <div class="site-footer__rating-label"> <div class="site-footer__rating-star-meter" role="img" aria-label="Rated 5 out of 5 stars" style="--rating-percent: 100%;"> <span class="site-footer__rating-stars-base" aria-hidden="true">★★★★★</span> <span class="site-footer__rating-stars-fill" aria-hidden="true">★★★★★</span> </div> </div> <span class="site-footer__rating-score"><strong>5</strong> / 5</span> </div> </a> </div> <div class="site-footer__brand"> <div class="site-footer__brand-logo"> <img src="/img/svgs/hero-logo__162x20.svg" alt="Iron Software" width="162" height="20" loading="lazy"> </div> <span class="site-footer__address">Chicago, IL 60601 EUA +1 (312) 500-3060</span> </div> <div class="site-footer__contact"> <ul class="site-footer__social-items"> <li class="site-footer__social-item"> <a href="https://github.com/iron-software" class="site-footer__social-link" aria-label="GitHub" target='_blank' > <i class="fa-brands fa-github"></i> </a> </li> <li class="site-footer__social-item"> <a href="https://www.youtube.com/@ironsoftware" class="site-footer__social-link" aria-label="YouTube" target='_blank' > <i class="fa-brands fa-youtube"></i> </a> </li> <li class="site-footer__social-item"> <a href="https://x.com/ironsoftwaredev" class="site-footer__social-link" aria-label="X" target='_blank' > <i class="fa-brands fa-x-twitter"></i> </a> </li> <li class="site-footer__social-item"> <a href="https://www.facebook.com/teamironsoftware" class="site-footer__social-link" aria-label="Facebook" target='_blank' > <i class="fa-brands fa-square-facebook"></i> </a> </li> <li class="site-footer__social-item"> <a href="https://www.linkedin.com/company/ironsoftware" class="site-footer__social-link" aria-label="LinkedIn" target='_blank' > <i class="fa-brands fa-linkedin-in"></i> </a> </li> </ul> <a href="https://ironsoftware.com/pt/company/iron-slack-community/" class="site-footer__cta" arial-label="Join Iron Slack" > <div class="site-footer__cta-logo"> <img src="/img/icons/slack-icon.svg" alt="Slack Icon related to Adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo" width="16" height="16" loading="lazy"> </div> <span class="site-footer__cta-text">Junte-se ao Iron Slack</span> </a> </div> </div> </nav> </div> <div class="site-copyright__wrapper"> <nav class="site-copyright" aria-label="Copyright & legal"> <div class="site-copyright__partner-logos"> <div class="site-copyright__partner-logo"> <img class="site-copyright__partner-logo-image" src="/img/footer/partner-logo_pdfa--hover.svg" alt="Membro da Associação PDF" width="46" height="28" loading="lazy"> </div> <div class="site-copyright__partner-logo"> <img class="site-copyright__partner-logo-image" src="/img/footer/partner-logo_microsoft--hover.svg" alt="Parceiro da Microsoft" width="92" height="28" loading="lazy"> </div> <div class="site-copyright__partner-logo"> <img class="site-copyright__partner-logo-image" src="/img/footer/partner-logo_aws--hover.svg" alt="Rede de Parceiros da AWS" width="87" height="28" loading="lazy"> </div> </div> <div class="site-copyright__meta"> <span class="site-copyright__text">Copyright © Iron Software 2013-2026</span> <div class="site-copyright__legal"> <a href="https://ironsoftware.com/pt/company/terms/" class="site-copyright__legal-link">Termos</a> <a href="https://ironsoftware.com/pt/company/privacy/" class="site-copyright__legal-link">Privacidade</a> <a href="https://ironsoftware.com/pt/company/cookie/" class="site-copyright__legal-link">Cookie</a> </div> </div> <div class="site-copyright__donation"> <img src="/img/footer/badge-one_percent.png" alt="One Perent for the Planet" width="230" height="32" loading="lazy"> </div> </nav> </div> </footer> <style> #ironSupportWidgetButtonContainer { display: none; position: fixed; bottom: 16px; right: 16px; width: 60px; height: 60px; z-index: 10500; #ironSupportWidgetButton { font: normal 900 24px/1 var(--ff-gotham); color: #fff; background: url('/img/widgets/livechat/icon_messages.svg') #2c96d5; background-repeat: no-repeat; background-position: center; background-size: 32px auto; width: 60px; height: 60px; border-radius: 50%; cursor: pointer; user-select: none; transition: transform 0.1s ease-in-out; border: none; display: flex; justify-content: center; align-items: center; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 4px, rgba(0, 0, 0, 0.2) 0px 2px 12px; &:hover { box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 6px, rgba(0, 0, 0, 0.2) 0px 4px 16px; transform: scale(1.1); } } /* control button icon if widget open (active) */ &:has(~#ironSupportWidgetContainer.active) { #ironSupportWidgetButton { background: url('/img/widgets/livechat/icon_x.svg') #2c96d5; background-repeat: no-repeat; background-position: center; background-size: 26px auto; } } } #ironSupportWidgetContainer { /* only display via vwo, on test process */ position: fixed; bottom: 92px; right: 16px; width: 416px; height: 700px; padding: 0; display: none; z-index: 10501; &.active { display: block; } .ironSupportWidgetBody { overflow: hidden; background-color: #fff; border: solid 0px #e7eef0; border-radius: 16px; display: flex; flex-direction: column; height: 100%; padding: 0; margin: 0; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 4px, rgba(0, 0, 0, 0.2) 0px 2px 12px; .ironSupportWidgetHeader { .ironSupportWidgetTitle { background-color: #2a95d5; display: flex; align-items: center; column-gap: 16px; padding: 16px 24px; .supportLogo { width: 48px; height: 48px; overflow: hidden; display: flex; justify-content: center; align-items: center; background-color: #aaa; border: solid 2px #fff; border-radius: 50%; } .dotSupportStatus { position: absolute; bottom: 0px; right: 0px; background-color: #444; border: solid 2px #fff; width: 11px; height: 11px; border-radius: 50%; &.green { background-color: #02bda5; } &.red { background-color: red; } } h2.title { margin: 0; padding: 0; font: normal 700 18px/1.6 var(--ff-gotham); color: #fff; } .subTitle { margin: 0; padding: 0; font: normal 400 12px/1.4 var(--ff-gotham); color: #fff; } } .ironSupportWidgetButtons { display: flex; column-gap: 2px; padding: 8px 24px 0; margin: 0; background-color: #fff; overflow: hidden; align-items: center; justify-content: center; cursor: pointer; background-color: #2a95d5; .iron_widget_button { flex: 1 0 calc(100%/3); display: flex; align-items: center; justify-content: center; padding: 12px 0; font: normal 700 14px/1.2 var(--ff-gotham); cursor: pointer; color: #fff; user-select: none; border-top: solid 3px #2a95d5; background-color: #5fafdf; &:hover { color: #181818; background-color: #d9e5e9; } &.active { color: #181818; border-top: solid 3px #e01a59; background-color: #fff; i { color: #2a95d5; } } i { margin-right: 8px; width: 18px; height: 18px; color: inherit; display: flex; align-items: center; justify-content: center; pointer-events: none; } } } } &>.ironSupportWidgetTab { flex: 1 1 auto; background-color: #fff; padding: 0; margin: 0; } } /* hschat start */ #hubspotConversationsInlineContainer { height: 100%; overflow: hidden; #hubspotConversationsInlinePlaceholder { /* hubspot chat use height in (px) to render its container, can't be a relative value hide the chat header by moving up the container 72px */ --offset_chat_header: 72px; margin-top: calc(-1 * var(--offset_chat_header)); height: 100%; max-height: calc(100% + var(--offset_chat_header)); z-index: 0; /* below is gen by hubspot */ #hubspot-conversations-inline-parent { height: calc(100% + var(--offset_chat_header)); &>iframe { width: 100%; height: 100%; } } } } /* hschat end */ /* hsform start */ .ironSupportWidgetFormPlaceholder { padding: 24px; height: 100%; form.hs-form { width: 100%; display: flex; flex-direction: column; row-gap: 24px; height: 100%; .hs-input { height: unset; } .hs-button { margin: 0; height: unset; max-width: unset; } .hs-form-field:first-child { margin: 0; } .hs-form-field { margin: 0; } p { margin: 0; } select.hs-input, input[type="tel"], input[name="lastname"], input[name="phone"], input[name="firstname"], input[name="email"] { width: 100%; border-radius: 6px; border: solid 1px #e7eef0; padding: 8px 16px; font: normal 400 14px/1.2 var(--ff-gotham); color: #7e7e7e; background-color: #fafafb; } div.hs-form-field:has(ul.hs-error-msgs) { ul.hs-error-msgs { display: none; } input[name="email"] { border: solid 1px #e01a59; } } input[type="submit"] { background-color: #fff; color: #2a95d5; border: solid 1px #d9e5e9; display: flex; justify-content: center; align-items: center; border-radius: 64px; padding: 8px 0; min-width: 128px; font: normal 700 14px/1.6 var(--ff-gotham); user-select: none; transition: all 0.1s ease-in-out; &:hover { color: #e01a59; box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 6px, rgba(0, 0, 0, 0.2) 0px 4px 16px; } } div.hs-submit { margin-top: auto; align-self: end; } div.hs-form-field>label { font: normal 700 14px/1.2 var(--ff-gotham); color: #525252; margin-bottom: 12px; display: block; } textarea[name="TICKET.content"] { font: normal 400 14px/1.4 var(--ff-gotham); color: #7e7e7e; background-color: #fafafb; border: solid 1px #d9e5e9; padding: 12px 16px; width: 100%; border-radius: 6px; min-height: 84px; &:focus { border: 1px solid #2a95d5; outline: 2px solid #aad5ee; } } input[name="phone"] { font: normal 400 14px/1.4 var(--ff-gotham); color: #7e7e7e; background-color: #fafafb; border: solid 1px #d9e5e9; padding: 12px 16px; width: 100%; border-radius: 6px; &:focus { border: 1px solid #2a95d5; outline: 2px solid #aad5ee; } } input[name="email"] { font: normal 400 14px/1.4 var(--ff-gotham); color: #7e7e7e; background-color: #fafafb; border: solid 1px #d9e5e9; padding: 12px 16px; width: 100%; border-radius: 6px; &:focus { border: 1px solid #2a95d5; outline: 2px solid #aad5ee; } } div.input:has(>input[type="file"]) { font: normal 400 14px/1.4 var(--ff-gotham); color: #7e7e7e; position: relative; display: block; cursor: pointer; line-height: 1.5; border: .075rem solid #d9e5e9; border-radius: 6px; user-select: none; cursor: pointer; min-height: 44px; background-color: #fafafb; &:after { font: normal 400 14px/1.4 var(--ff-gotham); position: absolute; z-index: 0; display: flex; align-items: center; top: 0; bottom: 0; left: 0; width: 100%; padding: 12px 16px; content: "Selecione o arquivo..."; cursor: pointer; } &:before { font: normal 400 14px/1.4 var(--ff-gotham); color: #7e7e7e; position: absolute; z-index: 1; display: flex; justify-content: center; align-items: center; content: "Navegar"; top: 0; bottom: 0; right: 0; width: fit-content; padding: 12px 16px; border-radius: 0 6px 6px 0; cursor: pointer; background-color: #d9e5e9; } &:hover { border: 1px solid #2a95d5; outline: 2px solid #aad5ee; } &:hover:before { background-color: #5fafdf; color: #fff; } input[type="file"] { margin: 0; filter: alpha(opacity=0); opacity: 0; padding: 0; cursor: pointer; position: absolute; z-index: 2; height: 100%; width: 100%; } } ul[role="checkbox"] { font: normal 400 14px/1.4 var(--ff-gotham); color: #7e7e7e; padding: 0; margin: 0; list-style: none; &>li>label { display: inline-flex; align-items: center; column-gap: 8px; } input[type="radio"] { width: unset; accent-color: #e01a59; height: unset; &:hover, &:checked, &:checked:hover { color: #e01a59; accent-color: none; } } } } } /* hsform end */ } @media screen and (max-width: 575px) { body:has(#ironSupportWidgetContainer.active) { overflow: hidden; } #ironSupportWidgetButtonContainer:has(~#ironSupportWidgetContainer.active) { left: unset; bottom: unset; top: 16px; right: 16px; width: 48px; height: 48px; z-index: 10502; #ironSupportWidgetButton { width: 48px; height: 48px; border: solid 1px #fff; } } #ironSupportWidgetContainer { right: 0; bottom: 0; width: 100%; height: 100%; .ironSupportWidgetBody { border-radius: 0px; } } } </style> <!-- Iron Support Widget Button --> <div id="ironSupportWidgetButtonContainer"> <div id="ironSupportWidgetButton" onclick="toggleIronSupportWidget()"></div> </div> <!-- Iron Support Widget Body --> <div id="ironSupportWidgetContainer" class=""> <div class="ironSupportWidgetBody"> <div class="ironSupportWidgetHeader"> <div class="ironSupportWidgetTitle"> <div style="position:relative;"> <div class="dotSupportStatus green"></div> <div class="supportLogo"> <img src="/img/support-team/support_widget.png" width="48" height="48" alt="Support Widget related to Adicionar cabeçalho e rodapé em PDF usando iTextSharp e IronPDF em C# com exemplo" loading="lazy"> </div> </div> <div> <h2 id="ironSupportWidgetHeaderTitle" class="title">Equipe de suporte de ferro</h2> <div id="ironSupportWidgetHeaderSubTitle" class="subTitle">Estamos online 24 horas por dia, 5 dias por semana.</div> </div> </div> <div class="ironSupportWidgetButtons"> <div class="iron_widget_button active" data-iron-widget-tab="ironSupportWidgetTab1" data-iron-widget-subtitle="Estamos online 24 horas por dia, 5 dias por semana." onclick="ironSupportWidgetTabChange(event);"><i class="fa-solid fa-messages-question"></i>Bater papo</div> <div class="iron_widget_button" data-iron-widget-tab="ironSupportWidgetTab2" data-iron-widget-subtitle="Receba as respostas diretamente no seu e-mail em até 24 horas." onclick="ironSupportWidgetTabChange(event);"><i class="fa-solid fa-envelope"></i>E-mail</div> <div class="iron_widget_button" data-iron-widget-tab="ironSupportWidgetTab3" data-iron-widget-subtitle="Prefere conversar sobre isso? Ligaremos para você em até 24 horas." onclick="ironSupportWidgetTabChange(event);"><i class="fa-solid fa-phone"></i>Liga para mim</div> </div> </div> <div id="ironSupportWidgetTab1" class="ironSupportWidgetTab"> <div id="hubspotConversationsInlineContainer"> <div id="hubspotConversationsInlinePlaceholder"><!-- placeholder --></div> </div> </div> <div id="ironSupportWidgetTab2" class="ironSupportWidgetTab" style="display:none;"> <div class="ironSupportWidgetFormPlaceholder"><!-- placeholder --></div> </div> <div id="ironSupportWidgetTab3" class="ironSupportWidgetTab" style="display:none;"> <div class="ironSupportWidgetFormPlaceholder"><!-- placeholder --></div> </div> </div> </div> <!-- # uncomment for test or want chat appear sooner, on website it delay by core web vital # chat will not appear until the trcking script (below) loaded --> <script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/22630553.js"></script> <script> /* pre-register window.ironSupportWidget */ if (typeof window.ironSupportWidget === 'undefined') { window.ironSupportWidget = {}; window.ironSupportWidget.isHsFormLoaded = false; } // hubspot chat place holder if (typeof window.hsConversationsSettings === 'undefined') { window.hsConversationsSettings = {}; } // window.hsConversationsSettings.inlineEmbedSelector = '#hubspotConversationsInlinePlaceholder'; function loadHsFormInSupportWidget() { const supportWidgetFormOptionA = { portalId: "22630553", formId: "8d0b0bf2-6aea-4c76-959c-cb2f9183f7c5", region: "na1", target: "#ironSupportWidgetContainer #ironSupportWidgetTab2 .ironSupportWidgetFormPlaceholder", onFormSubmitted: function ($form, data) { window._vis_opt_queue = window._vis_opt_queue || []; window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(232);}); } } const supportWidgetFormOptionB = { portalId: "22630553", formId: "c8f2b8df-0228-4331-b207-9c6c9910764c", region: "na1", target: "#ironSupportWidgetContainer #ironSupportWidgetTab3 .ironSupportWidgetFormPlaceholder", onFormSubmitted: function ($form, data) { window._vis_opt_queue = window._vis_opt_queue || []; window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(232);}); } }; dynamicLoadHsForms_inSupportWidget(supportWidgetFormOptionA); dynamicLoadHsForms_inSupportWidget(supportWidgetFormOptionB); } function ironSupportWidgetTabChange(e) { const target = e.target; const targetWidgetTab = target.getAttribute('data-iron-widget-tab'); const textSubtitle = target.getAttribute('data-iron-widget-subtitle'); if (!targetWidgetTab) return; // Save current tab state window.ironSupportWidget.lastTab = targetWidgetTab; window.ironSupportWidget.subTitle = textSubtitle; // Remove 'active' class from all buttons document.querySelectorAll('.iron_widget_button').forEach(button => { button.classList.remove('active'); }); // Add 'active' class to clicked button target.classList.add('active'); // Hide/Show tab document.querySelectorAll('.ironSupportWidgetTab').forEach(tab => { tab.style.display = 'none'; }); const targetTab = document.getElementById(targetWidgetTab); if (targetTab) { targetTab.style.display = 'block'; } // Update subtitle in header const subtitleEl = document.getElementById('ironSupportWidgetHeaderSubTitle'); if (subtitleEl) { subtitleEl.textContent = textSubtitle || ''; } } function toggleIronSupportWidget(action = null) { const widgetContainer = document.getElementById('ironSupportWidgetContainer'); function openWidget() { window.ironSupportWidget.isOpen = true; widgetContainer.classList.add('active'); if (typeof window.ironSupportWidget.isHsFormLoaded !== true) { loadHsFormInSupportWidget(); window.ironSupportWidget.isHsFormLoaded = true; } } function closeWidget() { window.ironSupportWidget.isOpen = false; widgetContainer.classList.remove('active'); } if (action === 'open') { openWidget(); } else if (action === 'close') { closeWidget() } else { if (window.getComputedStyle(widgetContainer).display !== 'none') { closeWidget() } else { openWidget(); } } } // load hubspot form dynamically function dynamicLoadHsForms_inSupportWidget(formOption, target_override = null) { function waitForHsptReady() { var interval = setInterval(function() { if (typeof hbspt !== "undefined") { clearInterval(interval); var option = formOption; if (target_override !== null) { option.target = target_override; } hbspt.forms.create(option); } }, 10); } if (typeof hbspt === "undefined") { var script = document.createElement("script"); script.type = "text/javascript"; script.src = "//js.hsforms.net/forms/embed/v2.js"; document.getElementsByTagName("head")[0].appendChild(script); script.onload = function() { waitForHsptReady(); }; } else { waitForHsptReady(); } } </script> <!-- Start Commonly Loaded Scripts --> <script src="/front/js/iron.loaders.js?v=1776616414" ></script><script src="/front/js/iron.helpers.js?v=1776616414" ></script><script src="/front/js/global.js?v=1776616414" ></script><script src="/front/js/bootstrap-loader/bootstrap-autoloader.min.js?v=1776616414" type="module" async="1"></script><script src="/front/js/page.js?v=1776616414" ></script><script src="/front/js/product.js?v=1776616414" ></script><!-- customJSFiles, Start --> <script src="/front/js/blog.js?v=1776616414" ></script> <script src="/front/js/blog-post.js?v=1776616414" ></script> <script src="/front/js/competitors.js?v=1776616414" ></script> <!-- customJSFiles, End --> <!-- Clarity Code Start --> <script type="text/javascript"> if (!window.deviceDetails.mobileCheck && window.deviceDetails.isDesktopViewport) { (function(c,l,a,r,i,t,y){c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i+"?ref=gtm2";y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);})(window,document,"clarity","script","cximmak38b"); } </script><!-- Clarity Code End --> <!-- AC Code Start --> <script> document.queueDeferredUserIntentAction(function() { importScript("tracking-code/activecampaign.js", debug()); document.fireCustomEvent("thirdPartyScriptLoaded", {scriptName: "activecampaign"}, debug()); }); </script> <!-- AC Code End --> <!-- Impact Sale Tracker Start --> <script> document.queueDeferredUserIntentAction(function() { importScript(["tracking-code/impactsale.js"], debug()).then(function() { setTimeout(function() { importScript(["tracking-code/impactsale-id.js"], debug()); document.fireCustomEvent("thirdPartyScriptLoaded", {scriptName: "impactsale"}, debug()); }, 150); }); }); </script> <!-- Impact Sale Tracker End --> <!-- End Commonly Loaded Scripts --> <!-- Start Setup Helper Functions --> <script> /** * Configures the Algolia Search feature using set-up data that is presumed to originate from an Iron Product's common.json file. * * @param {String} searchData the JSON string data (usually taken from the $common_json['search'] property key) * @param {String} indexName the Algolia Index that should be used (usually taken from the $common_json['search']['name] property key */ function setupAlgoliaSearch(searchData, indexName) { if (typeof 'aa' != 'undefined' && window.dataLayer) { window.searchData = JSON.parse(searchData); window.searchClient = algoliasearch(window.searchData.applicationId, window.searchData.apiKey); window.searchIndex = window.searchClient.initIndex(indexName); aa('init', { appId: window.searchData.applicationId, apiKey: window.searchData.apiKey, useCookie: true }); aa('getUserToken', null, (err, newUserToken) => { if (err) { console.error(err); return; } window.algoliaUserToken = newUserToken; }); let userToken = window.algoliaUserToken; aa('onUserTokenChange', (userToken) => { window.dataLayer.push({ algoliaUserToken: userToken, }); }, { immediate: true }); } else { logMsg("error", 'Algolia failed setup. The required object definitions do not exist!'); } } </script><!-- End Setup Helper Functions --> <!-- Start Algolia Insights Client --> <script> document.addEventListener("DOMContentLoaded", function() { document.queueDeferredUserIntentAction(function() { importScript(['tracking-code/algolia.js', 'algoliasearch-lite.umd.js']).then(function(status) { const algoliaSetup = function() { setupAlgoliaSearch('{"applicationId":"4S8YCFXKT5","apiKey":"ec878b51c06a7d5fbb7aab95991ab432","indexName":"ironpdf","inputPlaceholder":"Pesquise a API, exemplos de c\u00f3digo e tutoriais.","searchText":"Procurar","boostedResult":"Este ser\u00e1 o artigo mais \u00fatil.","searchShortCut":["Ctrl","K"],"categories":[{"key":"Best match","title":"Melhor combina\u00e7\u00e3o","iconClass":null,"color":null},{"key":"Code Examples","title":"Exemplos de c\u00f3digo","iconClass":"fas fa-code","color":"#2A95D5"},{"key":"Products","title":"Produtos","iconClass":"fas fa-bookmark","color":"#E01A59"},{"key":"Get Started","title":"Comece agora","iconClass":"fas fa-rocket","color":"#2A95D5"},{"key":"Tutorials","title":"Tutoriais","iconClass":"fas fa-graduation-cap","color":"#FDA509"},{"key":"How-Tos","title":"Tutoriais","iconClass":"fa-regular fa-book","color":"#63C1A0"},{"key":"Languages","title":"L\u00ednguas","iconClass":"fas fa-globe-americas","color":"#2A95D5"},{"key":"Licensing","title":"Licenciamento","iconClass":"fas fa-shopping-cart","color":"#E01A59"},{"key":"API Reference","title":"Refer\u00eancia da API","iconClass":"fas fa-bookmark","color":"#89D3DF"},{"key":"Features","title":"Caracter\u00edsticas","iconClass":"fas fa-bookmark","color":"#63C1A0"},{"key":"Support","title":"Suporte","iconClass":"fas fa-info-circle","color":"#2A95D5"},{"key":"Blog","title":"Blogue","iconClass":"fa-regular fa-file","color":"#15aabf"},{"key":"Troubleshooting","title":"Solu\u00e7\u00e3o de problemas","iconClass":"fas fa-wrench","color":"#15aabf"},{"key":"Product Updates","title":"Atualiza\u00e7\u00f5es de produtos","iconClass":"fa-solid fa-rotate","color":"#146ebe","class":"bottom_separator"}],"previewEnabled":false,"categorySortingEnabled":false,"breadcrubmsEnabled":true,"searchResultLimit":10,"breadcrumbs":[{"title":"IronPDF","url":"/"},{"title":"Licenciamento","url":"/licensing/"},{"title":"Documentos","url":"/docs/"},{"title":"Exemplos de c\u00f3digo","url":"/examples/using-html-to-create-a-pdf/"},{"title":"Tutoriais","url":"/tutorials/html-to-pdf/"},{"title":"Tutoriais","url":"how-to/create-new-pdfs/"},{"title":"Refer\u00eancia da API","url":"/object-reference/api/"},{"title":"Suporte","url":"https://ironsoftware.com/contact-us/"},{"title":"IronOCR","url":"https://ironsoftware.com/csharp/ocr/"},{"title":"IronBarcode","url":"https://ironsoftware.com/csharp/barcode/"},{"title":"IronXL","url":"https://ironsoftware.com/csharp/excel/"},{"title":"IronWebscraper","url":"https://ironsoftware.com/csharp/webscraper/"},{"title":"Iron Software","url":"https://ironsoftware.com/"},{"title":"Produtos","url":"https://ironsoftware.com/"}],"noResults":{"message":"Nenhum resultado encontrado para <strong>\u201c{query}\u201d</strong> .","icon":"/img/svgs/search-no-results.svg","alt":"\u00cdcone de mensagem"},"error":{"message":"Algo deu errado. Digite novamente.","icon":"/img/svgs/search-no-results.svg","alt":"\u00cdcone de mensagem"}}', "ironpdf__pt"); document.fireCustomEvent("thirdPartyScriptLoaded", {scriptName: "algolia"}); }; const algoliaReady = function() { return typeof aa != 'undefined' && typeof algoliasearch != 'undefined' && window.dataLayer; }; if (algoliaReady()) { algoliaSetup(); } else { const aaTimer = setInterval(function() { if (algoliaReady()) { algoliaSetup(); clearInterval(aaTimer); } }, 500); } }); }); }); </script> <!-- End Algolia Insights Client --> <script src="https://iron-ai-assistant-frontend-152f73438a0d.herokuapp.com/widget/ironpdf-assistant.js" data-server-url="https://iron-ai-assistant-frontend-152f73438a0d.herokuapp.com" data-hide-button="true" data-trigger-selector="#ai-chat-assistant" data-min-height="80%" data-margin-top="120px" data-vertical-position="top" defer ></script> </body> </html>