SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
18.03.2025

Imprimindo uma Seção em um Div por ID: Resolvendo Erros com Botões

Resposta Rápida

Para imprimir uma seção específica do seu site usando JavaScript, é recomendável utilizar o seguinte código:

function printSection(sectionId) {
  var sectionContent = document.getElementById(sectionId).innerHTML;
  var popupWin = window.open('', '_blank', 'width=600,height=600');

  popupWin.document.open();
  popupWin.document.write('<html><body onload="window.print()">' + sectionContent + '</body></html>');
  popupWin.document.close();
}

Para ativar a função de impressão, chame printSection('idDaSecaoParaImprimir'), onde ID do elemento representa o identificador da seção que você deseja imprimir. Isso abrirá uma nova janela, após a qual a caixa de diálogo de impressão aparecerá automaticamente.

Modo Avançado: Impressão com Todos os Detalhes

Vamos considerar algumas opções adicionais que podem enriquecer a funcionalidade básica com recursos úteis.

Formatando a Versão de Impressão com Queries de Mídia CSS

Para garantir que a versão impressa corresponda ao estilo do seu site e tenha uma aparência organizada, utilize @media print para definir as diretrizes de impressão:

@media print {
  body * {
    visibility: hidden;
  }
  #idDaSecaoParaImprimir, #idDaSecaoParaImprimir * {
    visibility: visible;
  }
  #idDaSecaoParaImprimir {
    position: absolute;
    left: 0;
    top: 0;
  }
}

Simplificando o Processo de Impressão com jQuery

Se seu projeto é construído com jQuery, o código da função de impressão pode ser significativamente simplificado com esta biblioteca:

$('#printButton').click(function() {
  var content = $('#idDaSecaoParaImprimir').html();
  var win = window.open('', 'printwindow');

  win.document.write('<html><head><title>Imprimir</title></head><body>' + content + '</body></html>');
  win.document.close();
  win.print();
});

Conteúdo Dinâmico e Compatibilidade do Navegador

Certifique-se de que a função de impressão seja compatível com todos os navegadores populares e funcione corretamente com conteúdo dinâmico.

Visualização

Imagine um cenário onde seu site apresenta uma galeria de quatro pinturas:

[Pintura 1, Pintura 2, Pintura 3, Pintura 4]

Sua tarefa é imprimir apenas Pintura 2:

🖨️: [       , Pintura 2,        ,         ]

Assim, o folheto final terá uma aparência esteticamente agradável e se concentrará exclusivamente na pintura selecionada:

✨ [       , 🎨 Pintura 2 🎨,        ,         ] ✨

Dessa forma, os usuários do seu site poderão imprimir exatamente o que precisam.

Noções Básicas de Impressão

Acesso Total ao Botão de Impressão

O botão de impressão deve ser facilmente acessível aos usuários. Por exemplo:

<button onclick="printSection('idDaSecaoParaImprimir')">Imprimir Seção</button>

Trabalhando com Estruturas Compostas

Se a estrutura do seu site for bastante complexa, forneça aos usuários a capacidade de escolher uma parte específica do conteúdo para imprimir.

Trabalhando com iFrames

Mesmo que o conteúdo seja carregado por meio de um iframe, ele pode ser impresso da seguinte forma:

function printIframeSection(iframeId, sectionId) {
  var iframe = document.getElementById(iframeId);
  var content = iframe.contentWindow.document.getElementById(sectionId).innerHTML;
  var popupWin = window.open('', '_blank', 'width=600,height=600');
  popupWin.document.write('<html><body onload="window.print()">' + content + '</body></html>');

  popupWin.document.close();
}

Recursos Úteis

  1. Método Window.print() - Web API | MDN — Informações sobre como chamar a janela de impressão usando JavaScript.
  2. JavaScript - Imprimindo o Conteúdo de um Div - Stack Overflow — Respostas da comunidade a perguntas sobre maneiras de imprimir seções específicas de páginas da web.
  3. Modificando o Conteúdo do Documento — Um guia detalhado sobre como modificar documentos para impressão posterior.
  4. Design CSS: Preparando para Impressão – A List Apart — Técnicas avançadas de CSS para criar uma versão de impressão de uma página da web.
  5. web.dev — Um recurso abrangente que reúne materiais sobre todos os tópicos de desenvolvimento web, incluindo recursos de impressão.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!