Aumentar tamnho da área imprimível MediaPrintableArea  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
andrepestana
JavaEvangelist
[Avatar]

Membro desde: 23/03/2004 09:57:28
Mensagens: 380
Offline

Olá, pessoal!

Estou com um problema: estou imprimindo num formulário contínuo tipo FOLIO (8.5"x13") e funciona corretamente. Porém o que não consigo fazer funcionar corretamente é o tamanho da página e área imprimível. Se "seto" o tamanho da página como FOLIO, não consigo usar toda a página para imprimir(não consigo imprimir no finalzinho da página, não chega a zero ou perto disso) pq mesmo "setando" a área imprimível do tamanho da página, a área imprimível não passa de um limite. Se eu aumento o tamanho da página, aí sim consigo aumentar a área imprimível e fazer imprimir na região que gostaria mas aí a segunda página vai imprimir errado porque a primeira página estourou o tamanho dela (com certeza não é o modo correto).

Eu gostaria de saber senão dá pra criar um tipo de página personalizado onde poderia "setar" o tamanho da área imprimível que eu quisesse sem ter de aumentar o tamanho da página (8.5"x13").

O código que estou utilizando para imprimir é este:



Agradeço desde já!

Pestana

Pestana
http://andrepestana.wordpress.com/
[Email] [MSN]
Luca
Moderador
[Avatar]

Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline

Olá

Esta é uma pergunta interessante porque toca no raro assunto impressão com Java que é uma área onde a Sun só faz merda. Desde as versões iniciais do Java o modo de imprimir já mudou várias vezes e ainda continua ruim, confuso e mal documentado.

Suspeito que seu problema seja que as margens não estão zeradas e estão roubando espaço da impressão.

Para mexer na área a imprimir há desde o j2sdk1.3 as classes Paper e PageFormat que permitem definir as margens e o tamanho da área a ser impressa no papel.

Abaixo mostro um exemplo um pouco diferente do seu em que eu zero as margens com paper.setImageableArea(0.0, 0.0, width, height);. Só sei definir isto usando um Book :



Veja JavaWorld Printing in Java 1-5, Java Print Service API User Guide (Alpha Draft 0.1) e tudo o mais que vc conseguir achar sobre impressão em Java (que é muito pouco).

[]s
Luca

This message was edited 4 times. Last update was at 14/02/2005 11:32:19


Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."


CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/
[Email] [WWW]
andrepestana
JavaEvangelist
[Avatar]

Membro desde: 23/03/2004 09:57:28
Mensagens: 380
Offline

Luca,

Muito obrigado!

Conseguí zerar as margens e verifiquei que o tamanho imprimível agora é o mesmo que o tamanho da página.

Só uma coisa: depois que a primeira página é impressa, a impressora desce mais 1 polegada e a próxima página começa daí...Estranho pq conferí o tamanho. Tanto que se coloco 12 polegadas como tamanho do papel, nem chega a imprimir tudo.

A única coisa diferente do se código é que já mando pra impressora sem diálogo com o usuário:

ao invés de:



faço:



A seguir, como ficou meu código:




Por que será que pula mais uma polegada?

Se alguém souber como fazer a impressora voltar, também ajudaria(sei que não é o correto mas ajuda).

Obrigado novamente!

Pestana

Pestana
http://andrepestana.wordpress.com/
[Email] [MSN]
Luca
Moderador
[Avatar]

Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline

Olá

Talvez a impressora não esteja entendendo direito o seu tamanho de papel FOLIO 8.5" x 13". É possível fazer testes fora do Java? Quando você abre um documento em um programa qualquer e vai em Configurar Página aparece este tamanho para esta impressora?

[]s
Luca

Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."


CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/
[Email] [WWW]
andrepestana
JavaEvangelist
[Avatar]

Membro desde: 23/03/2004 09:57:28
Mensagens: 380
Offline

Não aparece....e agora?

[]´s

Pestana

Pestana
http://andrepestana.wordpress.com/
[Email] [MSN]
Luca
Moderador
[Avatar]

Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline

Olá

O fato da impressora não mostrar o tamanho pode não ser problema. Há classes e métodos na API de impressão que permitem que vc veja as margens e o tamanho da área a ser impressa. Exemplo de conferência das margens:



Verifique também com um log as coordenadas (em pontos) onde vc está mandando imprimir. Pode ser que alguma linha (em branco) esteja sendo impressa uma polegada depois do fim da página.

[]s
Luca

Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."


CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/
[Email] [WWW]
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team