Ir para o conteúdo do rodapé
FERRAMENTAS DE PDF

Como imprimir um arquivo PDF em JavaScript

1.0 Introdução

O formato de documento portátil (PDF) foi desenvolvido pela Adobe com o objetivo de compartilhar documentos com texto e gráficos. É necessário um programa adicional para abrir um documento PDF online. Os arquivos PDF são muito importantes para informações críticas na sociedade atual. Muitas empresas criam documentos e faturas usando arquivos PDF. Para atender às necessidades dos clientes, os desenvolvedores produzem documentos em PDF. Graças às bibliotecas modernas, criar PDFs nunca foi tão fácil.

Para selecionar a biblioteca ideal para um projeto que utiliza esse tipo de biblioteca, devemos ponderar diversos fatores, incluindo as capacidades de compilação, leitura e conversão.
Neste tutorial, vamos explorar diversas bibliotecas JavaScript para gerar PDFs. Analisaremos a biblioteca JS e cenários de aplicação do mundo real, com foco em três pontos principais:

  • A configuração em execução
  • Os módulos que facilitam a digitação e a personalização de fontes
  • Facilidade de uso

Após ler este artigo, você poderá selecionar a biblioteca de PDF ideal para sua aplicação JavaScript . Por fim, também abordaremos o IronPDF, uma biblioteca de PDF útil e eficaz.

2.0 Bibliotecas

Considere o cenário em que desejamos que o cliente possa baixar e imprimir uma cópia da nossa fatura. Precisamos que essa fatura seja impressa com precisão e de forma adequada. Aqui, vamos analisar mais detalhadamente algumas das muitas bibliotecas disponíveis para converter esta fatura do formato de arquivo HTML para PDF.

2.1 Código JavaScript puro

Normalmente, para imprimir o conteúdo de um arquivo PDF, fazemos o download para o nosso computador, abrimos o arquivo e selecionamos a opção de impressão. O JavaScript, por outro lado, facilita a impressão de um arquivo PDF diretamente de uma página da web. Tudo o que você precisa é de um iframe em seu site ou a capacidade de criar um dinamicamente, adicionar o documento e imprimi-lo. Vou demonstrar como usar JavaScript para imprimir um arquivo PDF. Uma página da web dentro de outra página da web é exibida usando um iframe. Para que a página da web seja exibida, o iframe precisa saber sua origem.

<!DOCTYPE html>
<html>
<head>
    <title>JavaScript Print PDF</title>
</head>
<body>

    <iframe 
        src="Demo.pdf" id="myFrame" 
        frameborder="0" style="border:0;" 
        width="300" height="300">
    </iframe>
    <p>

        <input type="button" id="bt" onclick="printPdf()" value="Print PDF" />
    </p>

    <script>
        // JavaScript function to print the PDF inside the iframe
        let printPdf = () => {
            // Access the iframe
            let objFra = document.getElementById('myFrame');
            // Focus the iframe's window
            objFra.contentWindow.focus();
            // Trigger the print dialog
            objFra.contentWindow.print();
        }
    </script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
    <title>JavaScript Print PDF</title>
</head>
<body>

    <iframe 
        src="Demo.pdf" id="myFrame" 
        frameborder="0" style="border:0;" 
        width="300" height="300">
    </iframe>
    <p>

        <input type="button" id="bt" onclick="printPdf()" value="Print PDF" />
    </p>

    <script>
        // JavaScript function to print the PDF inside the iframe
        let printPdf = () => {
            // Access the iframe
            let objFra = document.getElementById('myFrame');
            // Focus the iframe's window
            objFra.contentWindow.focus();
            // Trigger the print dialog
            objFra.contentWindow.print();
        }
    </script>
</body>
</html>
HTML

Para imprimir um PDF, o conteúdo do documento pode ser exibido usando um iframe e, em seguida, impresso usando JavaScript. Em ambas as situações, é necessário um iframe. No exemplo acima, há um iframe com uma fonte (o PDF). Existe também um elemento de entrada do tipo botão.

A propriedade onclick do botão invocará o método printPdf.

Como imprimir um arquivo PDF em JavaScript: Figura 1 - Impressão

2.2 Print.js

O Print.js foi criado principalmente para nos permitir imprimir arquivos PDF diretamente de nossos aplicativos, sem precisar sair da página, importá-los e imprimi-los pela interface do usuário ou usar elementos incorporados. Esta opção destina-se a circunstâncias especiais em que os usuários precisam apenas imprimir os arquivos PDF e não precisam abri-los ou baixá-los.

Quando os usuários solicitam a impressão de relatórios gerados no servidor, por exemplo, isso pode ser útil. Esses relatórios serão devolvidos a você em formato de documentos PDF. Esses arquivos podem ser impressos sem precisar serem abertos. Em nossos aplicativos, o Print.js oferece uma maneira prática de imprimir esses arquivos.

<!DOCTYPE html>
<html>
<head>
    <title>Print.js Example</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js"></script>
    <script src="https://printjs-4de6.kxcdn.com/print.min.js"></script>
    <link href="https://printjs-4de6.kxcdn.com/print.min.css" rel="stylesheet">   
</head>
<body>

    <div id="print-area" class="print-main">
        <table>
            <tr>
                <th>Name</th>
                <th>Age</th>
            </tr>
            <tr>
                <td>AAA</td>
                <td>25</td>
            </tr>
            <tr>
                <td>BBB</td>
                <td>24</td>
            </tr>
        </table>
    </div>

    <button id="btnPrint">Print</button>

    <script>
        $(document).ready(function(){
            // When the print button is clicked
            $("#btnPrint").on("click", function(){
                // Use Print.js to print the content of #print-area
                printJS({
                    printable: 'print-area',
                    type: 'html'
                });
            });
        });
    </script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
    <title>Print.js Example</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js"></script>
    <script src="https://printjs-4de6.kxcdn.com/print.min.js"></script>
    <link href="https://printjs-4de6.kxcdn.com/print.min.css" rel="stylesheet">   
</head>
<body>

    <div id="print-area" class="print-main">
        <table>
            <tr>
                <th>Name</th>
                <th>Age</th>
            </tr>
            <tr>
                <td>AAA</td>
                <td>25</td>
            </tr>
            <tr>
                <td>BBB</td>
                <td>24</td>
            </tr>
        </table>
    </div>

    <button id="btnPrint">Print</button>

    <script>
        $(document).ready(function(){
            // When the print button is clicked
            $("#btnPrint").on("click", function(){
                // Use Print.js to print the content of #print-area
                printJS({
                    printable: 'print-area',
                    type: 'html'
                });
            });
        });
    </script>
</body>
</html>
HTML

O código acima pode ser usado para imprimir arquivos PDF diretamente do site. Ele mostra que a impressão exibirá todas as strings HTML presentes dentro do elemento HTML com o ID "print-area".

Como imprimir um arquivo PDF em JavaScript: Figura 2 - Imprimindo essas strings

2.3 IronPDF - A Biblioteca PDF for Node.js

IronPDF é uma biblioteca PDF completa for Node.js que se destaca pela precisão, facilidade de uso e velocidade. Oferece uma vasta gama de funcionalidades para gerar, editar e formatar PDFs diretamente a partir de HTML, URLs e imagens em React. Com suporte para diversas plataformas, incluindo Windows, MacOS, Linux, Docker e plataformas em nuvem como Azure e AWS, o IronPDF garante compatibilidade entre plataformas. Sua API intuitiva permite que os desenvolvedores integrem rapidamente a geração e manipulação de PDFs em seus projetos Node.js

Principais funcionalidades do IronPDF for Node.js:

Geração versátil de PDFs: Com o IronPDF, os desenvolvedores podem gerar PDFs a partir de diversas fontes, incluindo HTML, CSS, JavaScript, imagens e outros tipos de arquivo. Essa flexibilidade permite a criação de documentos PDF dinâmicos e visualmente atraentes, adaptados a requisitos específicos.

  • Personalização avançada de documentos: o IronPDF permite que os desenvolvedores aprimorem documentos PDF com recursos como cabeçalhos, rodapés, anexos, assinaturas digitais, marcas d'água e marcadores. Isso permite a criação de PDFs de nível profissional com conteúdo rico e elementos interativos.
  • Recursos de segurança: O IronPDF oferece recursos de segurança robustos para proteger PDFs contra acesso não autorizado. Os desenvolvedores podem implementar medidas de segurança como senhas, assinaturas digitais, metadados e outras configurações de segurança para proteger informações confidenciais contidas em documentos PDF.
  • Desempenho otimizado: O IronPDF foi projetado para oferecer desempenho ideal, apresentando suporte completo a multithreading e operações assíncronas. Isso garante a geração eficiente de PDFs, tornando-os adequados para aplicações de missão crítica onde o desempenho é fundamental.
  • Conjunto abrangente de recursos: Com mais de 50 recursos para criar, formatar e editar documentos PDF, o IronPDF oferece uma solução completa para todas as tarefas relacionadas a PDFs. Desde a geração básica de documentos até a personalização e segurança avançadas, o IronPDF oferece uma ampla gama de recursos para atender às necessidades dos desenvolvedores.

Aqui está um exemplo de como gerar e salvar um documento PDF a partir de um arquivo HTML , uma string HTML e uma URL , preservando a formatação para impressão:

import { PdfDocument } from "@ironsoftware/ironpdf";

// An async function to demonstrate how to generate PDF documents
(async () => {
    // Create a PDF from a URL
    const pdfFromUrl = await PdfDocument.fromUrl("https://getbootstrap.com/");
    // Save it to a file
    await pdfFromUrl.saveAs("website.pdf");

    // Create a PDF from a local HTML file
    const pdfFromHtmlFile = await PdfDocument.fromHtml("design.html");
    // Save it to a file
    await pdfFromHtmlFile.saveAs("markup.pdf");

    // Create a PDF from an HTML string
    const pdfFromHtmlString = await PdfDocument.fromHtml("<p>Hello World</p>");
    // Save it to a file
    await pdfFromHtmlString.saveAs("markup_with_assets.pdf");
})();
import { PdfDocument } from "@ironsoftware/ironpdf";

// An async function to demonstrate how to generate PDF documents
(async () => {
    // Create a PDF from a URL
    const pdfFromUrl = await PdfDocument.fromUrl("https://getbootstrap.com/");
    // Save it to a file
    await pdfFromUrl.saveAs("website.pdf");

    // Create a PDF from a local HTML file
    const pdfFromHtmlFile = await PdfDocument.fromHtml("design.html");
    // Save it to a file
    await pdfFromHtmlFile.saveAs("markup.pdf");

    // Create a PDF from an HTML string
    const pdfFromHtmlString = await PdfDocument.fromHtml("<p>Hello World</p>");
    // Save it to a file
    await pdfFromHtmlString.saveAs("markup_with_assets.pdf");
})();
JAVASCRIPT

Para mais exemplos de código sobre tarefas relacionadas a PDF, visite esta página de exemplos de código do IronPDF for Node.js

Como imprimir um arquivo PDF em JavaScript: Figura 3 - IronPDF

3.0 Conclusão

O usuário pode ver o código JavaScript acima, mas ele pode ser usado indevidamente por terceiros. É possível utilizar o código-fonte desta forma. Além disso, não é difícil adicionar código ao site que coloque em risco a segurança dos dados enviados por meio dele. A biblioteca JavaScript mencionada é visualizada de forma diferente por navegadores diferentes. Portanto, o código deve ser executado em diversos sistemas antes de ser lançado. Como algumas funcionalidades novas não são suportadas por navegadores mais antigos, também precisamos analisar a compatibilidade desses navegadores com outros navegadores. As bibliotecas mencionadas acima podem gerar arquivos PDF. O usuário também deve ter alguma familiaridade com o script com o qual está trabalhando.

Com o processo de integração simples do IronPDF para frameworks e bibliotecas desenvolvidas em JavaScript, a excelente documentação do IronPDF for Node.js e exemplos de código, além do suporte técnico ágil, os desenvolvedores podem começar a usar o programa rapidamente, tornando-o uma das principais opções para gerar e imprimir PDFs de nível profissional em aplicações relacionadas ao Node.js

O IronPDF oferece um período de teste gratuito for Node.js , para que você possa experimentar todas as suas funcionalidades antes de tomar uma decisão informada. Também está disponível para outras linguagens como C# .NET , Java e Python . Visite o site da IronPDF para obter mais detalhes. Faça o download do IronPDF for Node.js na página de download do IronPDF for Node.js

Darrius Serrant
Engenheiro de Software Full Stack (WebOps)

Darrius Serrant é bacharel em Ciência da Computação pela Universidade de Miami e trabalha como Engenheiro de Marketing WebOps Full Stack na Iron Software. Atraído por programação desde jovem, ele via a computação como algo misterioso e acessível ao mesmo tempo, tornando-a o meio ...

Leia mais

Equipe de suporte de ferro

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