Configurando impressão no seu documento html

Recentemente tive reclamações de usuários em um sistema que entregamos em produção relacionado a impressão de documentos a partir do browser. O problema era que uma página em branco ou com pouco texto estava apresentando duas página para impressão o que estava gerando desperdício de folhas porque no rodapé da página vem informações como a url impressa.

Eu não conhecia nada relacionado que pudesse ajudar a configurar a página, então, partir para o mais óbivio que era ocultar / exibir elementos ao clicar em imprimir. Além de ser uma solução ruim não funcionou 100% e foi aí que batendo cabeça aqui e ali encontrei a media query @print.

Tá mas o que esse cara faz? Com essa media query você pode configurar o que quer ocultar / exibir no momento da impressão. No meu caso a página possuia uma barra com algumas opções que não deveria sair na impressão e o body da página estava com height: 100%.

Para usar esse cara é bem fácil basta você adicionar a media query @print e adicionar ou remover os elementos da tela de acordo com a sua necessidade, então, para resolver meu problema bastou adicionar um height: 95% e setar um display none na barra que não deveria aparecer na impressão. Simples assim!

Veja um exemplo abaixo:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<html>
<head>
<style>
@media print {
#menu {
display: none !important;
}
body {
height: 95%;
}
}
</style>
</head>
<body>
<div id="menu">
<ul>
<li>Item 1</li>
<li>Item 2</li>
</div>
<div class="content">
Aqui é o conteúdo que queremos imprimir
</div>
</body>
</html>
<html> <head> <style> @media print { #menu { display: none !important; } body { height: 95%; } } </style> </head> <body> <div id="menu"> <ul> <li>Item 1</li> <li>Item 2</li> </div> <div class="content"> Aqui é o conteúdo que queremos imprimir </div> </body> </html>
<html>
<head>
<style>
   @media print { 
     #menu {
         display: none !important;
     }

     body {
         height: 95%;
     }
   }
</style>
</head>
<body>
  <div id="menu">
    <ul>
     <li>Item 1</li>
     <li>Item 2</li>
  </div>
  <div class="content">
    Aqui é o conteúdo que queremos imprimir
  </div>
</body>
</html>

Como podem ver no momento da impressão a div id “menu” será oculta e o body da página será ajustado para 95%. Essa é uma forma simples e prática de você configurar o conteúdo de impressão da sua página.

Tags: