Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Claudio Neto

[Resolvido] Impressão de relatório

Recommended Posts

Criei esse relatorio para ser impresso.

 

Mas estou com alguns problemas.

 

Primeiro: que ele não imprime tudo. Se estiver maior do que uma página, ele corta onde couber numa folha e fica por ali;

Segundo: ele imprime uma folha em branco após a primeira, não sei porque;

 

E fora os problemas, gostaria de saber se tem como colocar o cabeçalho em todas as páginas.

 

Apesar dessa pagina estar em html puro, ele é dinâmica, e está em ASP. Caso a melhor solução seja usando ASP, peço que transfiram para lá.

 

Obrigado desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Claudio, não sei se vou ajudar mas vou tentar...

 

Talvez o problema seja quanto ao tamanho do documento e configuração de impressão.

 

Para definir o que vai ser impresso, tente utilizar uma folha de estilo somente para impressão definindo quais elementos serão impressos (no caso o cabeçalho e corpo do documento), após criar sua folha de estilo, faça a chamada a mesma na sua página dinâmica, ex:

<link href="seu.css" rel="stylesheet" type="text/css" media="print" />

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Public, obrigado, procurei sobre o media print.

 

Coloquei-o no código. A única diferença que deu é que parou de imprimir uma página em branco no final, mas a primeira continua saindo cortada e o resto não sai e não achei nada falando sobre repetição de cabeçalho.

 

Você tem mais detalhes sobre isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

para todos os testes utilizei a impressora virtual XPS, nativa do Windows 7

 

Opera, 2 páginas

 

IE e Chrome exibem milimetradamente o mesmo documento, em 3 páginas

 

Firefox corta o documento e imprime apenas a primeira

 

 

sugestão, fazer um CSS relacionado à mídia "print" e tentar definir

fieldset { min-height: 100%; }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Evandro, fiz os testes no IE e Opera, realmente nesses sai correto.

 

No firefox, colocando o que disse ele corta a primeira página imprime a segunda igual, ou seja, não funcionou, rs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo, este relatório ja é a 'versão para impressão' ?

 

apesar de parecer, os dados não se encaixam em uma tabela, acho que não seria a forma mais correta de exibi-los, enfim

 

vamos tentar aqui, remova a folha de estilos de impressão para evitar conflitos e adicione o seguinte javascript

window.onload = function(){
    var altura = document.getElementsByTagName('fieldset')[0].offsetHeight;
    var qualidade = 300; //dpi
    var novaAltura = (altura / qualidade) * 2.54; // polegadas -> cm
    document.getElementsByTagName('fieldset')[0].style.height = novaAltura;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nada feito Evandro, o resultado continua sendo o mesmo, apenas a primeira.

 

Sim, esta é a forma como a impressão deverá sair. Como assim não encaixam em uma tabela?

Você diz que ficaria melhor se fizesse linha x coluna padrão? Algumas informaçoes não caberiam...

 

Ah, uma dúvida. O que é e o que faz o fieldset?

Compartilhar este post


Link para o post
Compartilhar em outros sites

fieldset é um 'set de campos'

 

é melhor (e acho que unicamente) utilizado em formulários, quando você precisa envolver um conjunto de campos que fazem parte do mesmo 'assunto'

 

<h1>Cadastro</h1>
<form action="" bla bla bla>
<fieldset>
    <legend>Dados pessoais</legend>
    <label>Nome <input ... /></label>
    <label>Sexo <input ... /></label>
</fieldset>

<fieldset>
    <legend>Formação acadêmica</legend>
    <label>Escolaridade <input ... /></label>
</fieldset>

<fieldset>
    <legend>Informações profissionais</legend>
    <label>Empresa em que trabalha <input ... /></label>
</fieldset>
</form>

digo que não se encaixam em tabelas, porque pelo menos pra mim, a concepção que eu tenho de tabelas é, a descrição de cada item acima, no cabeçalho, e os dados seguidos linearmente alinhados com cada descrição.

 

No seu caso, são fichas de prospecções, que podem ser formatados em <div> e <p>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah tah, entendi o q quis dizer.a

Eu tinha feito um outro formulário em div, mas ai conforme os tamanhos dos textos alteravam, estava dando diferença no layout, e me enchi e coloquei tabela. Nesse nem arrisquei, rs.

 

Bom, mas de qq forma não solucionamos né. Quem irá usar é só uma pessoa, vou pedi que utilize o IE enquanto não resolver.

 

Puxa, acho que é a primeira vez que tenho problema com o firefox e não com outros navegadores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caramba, que coisa estranha. Tenta assim no CSS:

 

html, body{ height: 100%; }
html body center{ min-height: 100%; }

Já pensou na possibilidade de gerar um HTML mais limpo e semântico?

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nada feito Thiago.

 

Então, mas é complicado, preciso de todas essas informações que estão aparecendo.

E mesmo assim, você acha que isso influencia pro fato de cortar a página?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Influencia sim, mas o que está me intrigando é, no caso de precisar imprimir um formulário, se existir um fieldset muito extenso a página será cortada no FF

Compartilhar este post


Link para o post
Compartilhar em outros sites

Evandro, eu retirei o fieldset para testar. Sem ele o ff imprime tudo. O que pode estar causando isso?

 

Ah, e quanto ao meu pedido do começo, de repetir o cabaçalho em todas as páginas. Isso é possível via CSS? Se sim, o que devo usar?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O cabeçalho seria??? o título do documento?

 

 

https://bugzilla.mozilla.org/show_bug.cgi?id=471015

 

mais um ponto pro Opera *-*

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Claudio, se for o cabeçalho do relatório onde contém a imagem, basta para que ele se repita em todas as páginas de impressão corrigir a construção da sua tabela incluindo o "head" na mesma e se desejar até um "foot" (rodapé), veja um exemplo de como seria a estrutura da tabela (claro que é só um ex. baseado no seu html), ex:

 

<table border="0" align="left" cellspacing="4" height="680px">
  <thead>
	<tr>
	  <th colspan="2" rowspan="2" align="left"><img src="images/LOGO.png" /></th>
	  <th colspan="2" align="right">Relatório de prospecções de <b>Fulana da Silva</b></th>
	</tr>
  </thead>
  <tfoot>
	<tr>
	  <td colspan="2" rowspan="2" align="left">Infos rodapé</td>
	  <td colspan="2" align="right">+ infos rodapé</td>
	</tr>
  </tfoot>
  <tbody>
  
  e aqui o corpo da tabela (dados tabulados)
  
  </tbody>
</table>

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.