Estou usando o Twitter-Bootstrap e preciso imprimir a página da maneira que parece no navegador. Consigo imprimir muito bem outras páginas feitas com o Twitter-Bootstrap, mas não consigo imprimir minha página que usa apenas o Twitter-Bootstrap. Estou faltando uma etiqueta em algum lugar?
Página oficial da TB quando impressa:
Minha página quando impressa:
Qual é a aparência da minha página:
printing
twitter-bootstrap
Jay Q.
fonte
fonte
Respostas:
Certifique-se de ter uma folha de estilo atribuída para impressão.
Pode ser uma folha de estilo separada:
ou um que você compartilha para todos os dispositivos:
Em seguida, você pode escrever seus estilos para impressoras nas folhas de estilo separadas ou na compartilhada usando consultas de mídia:
fonte
media="screen"
, o que não será visto por uma impressora. Você pode alternar paramedia="all"
ou simplesmente removermedia
como a resposta acima sugere.Atualização do Bootstrap 3.2: (versão atual)
A versão estável atual do Bootstrap é 3.2.0 .
Com a versão 3.2 de impressão visível obsoleta, você deve usar o seguinte:
Atualização do Bootstrap 3:
As aulas de impressão estão agora em documentos: http://getbootstrap.com/css/#responsive-utilities-print
Versão do Bootstrap 2.3.1:
Depois de adicionar o arquivo bootstrap.css ao seu HTML,
encontre as partes que você não deseja imprimir e adicione a
hidden-print
classe às tags. Como o arquivo css inclui isso:fonte
body
invisível para tudo ( ).hidden-print
, mas quero substituir um elemento específico a ser mostrado?Substitua todos
col-md-
porcol-xs-
por exemplo: substituir cada
col-md-6
paracol-xs-6
.Foi o que funcionou para me livrar desse problema. Você pode ver o que precisa substituir.
fonte
div
abaixo da anterior. Essa resposta me deu uma dica, eu adicioneicol-xs-*
antes de cada umacol-md-*
e isso corrigiu o problema. AVISO LEGAL: Eu não testei a adição de um contêiner, pois<div class="row"></div>
também pode ter resolvido o problema (parece óbvio).Há uma seção de
@media print
código no arquivo css (Bootstrap 3.3.1 [UPDATE:] a 3.3.5), que retira praticamente todo o estilo, para que você obtenha impressões razoáveis, mesmo quando está funcionando.Por enquanto, tive que recorrer à remoção da
@media print
seção bootstrap.css - da qual realmente não estou feliz, mas meus usuários querem capturas diretas de tela, então isso terá que ser feito por enquanto. Se alguém souber como suprimi-lo sem alterações nos arquivos de inicialização, eu ficaria muito interessado.Aqui está o bloco de código 'ofensivo', que começa na linha 192:
fonte
A melhor opção que encontrei foi http://html2canvas.hertzen.com/
http://jsfiddle.net/nurbsurf/1235emen/
fonte
Caso alguém esteja procurando uma solução para o Bootstrap v2.XX aqui. Estou deixando a solução que estava usando. Isso não foi totalmente testado em todos os navegadores, mas pode ser um bom começo.
1) verifique se o atributo media de
bootstrap-responsive.css
éscreen
.2) crie um
print.css
e verifique se o atributo mediaprint
3) por dentro
print.css
, adicione a "largura" do seu site em html e corpo4.) reproduzir as classes de consulta de mídia necessárias
print.css
porque estavam dentrobootstrap-responsive.css
e nós a desativamos ao imprimir.Aqui está a versão completa do
print.css
:fonte
2 coisas FYI -
fonte
Para fazer com que a visualização de impressão pareça um tablet ou uma área de trabalho, inclua a inicialização como .less, não como .css e, em seguida, você pode sobrescrever as classes responsivas da inicialização no final do arquivo bootstrap_variables, por exemplo:
Não se preocupe em colocar essas variáveis no final do arquivo. O LESS suporta carregamento lento de variáveis para que elas sejam aplicadas.
fonte
Se você deseja manter as colunas impressas em A4 (com cerca de 540px), é uma boa ideia
Você pode usá-lo assim:
<div class="col-sm-4 col-print-A4-4">
fonte