(resolvido) abrir imagem, escrever string e regravar imagem no hd, girar imagem e imprimir  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
maior_abandonado
JWizard
[Avatar]

Membro desde: 03/09/2007 11:30:08
Mensagens: 2694
Localização: sp
Offline

<editado>o problema descrito ai abaixo eu ja consegui resolver, mais tenho outra duvida descrita no proximo post</editado>

pessoal... eu to fazendo um programa aqui pra imprimir cheques...coisa pequena...

esta tudo pronto, exceto a parte de imprimir mesmo... coisa que eu manjo muito pouco por sinal...

o meu código para imprimir seria algo assim:



ok... com uma folha A4 comum eu consigo imprimir numa boa, com uma folha de cheque que tem 7,5 cm se não me engano, a folha para no toner e acaba nao imprimindo... (aki é tudo impressora a laser, não tenho uma matricial disponivel)

colocando o cheque de pé, em impressoras aonde da pra ajusta quanto vai ter de lado a folha, pro tamanho do cheque assim, a impressora até imprime, mais para isso eu teria que gira a imagem do meu objeto graphics tb, acredito que em 90 graus... é ai q eu to quebrando a cabeça...

googlando eu nao consegui resolver isso, o maximo que eu consegui foi da o cast do meu graphics conseguido do printjob em um graphics2d e usa o metodo rotate, mais depois como inseri-lo dentro do graphics anterior ou passa-lo para o printjob?

eu não encontrei um setGraphics em printjob, passa um para o outro atribuindo com o = mecheria com a referencia e não com o objeto em si...

alguém ai tem algum norte?

This message was edited 5 times. Last update was at 09/02/2009 15:56:21


espero ter ajudado...

falando nisso, caso seu problema tenha sido resolvido, edite o seu primeiro post e coloque um [RESOLVIDO] no titulo do tópico.
maior_abandonado
JWizard
[Avatar]

Membro desde: 03/09/2007 11:30:08
Mensagens: 2694
Localização: sp
Offline

bom... eu consegui resolver em relação a girar a imagem...dando uma pesquisada no forum eu encontrei o que fazer, criei um bufferedImage, dei um createGraphics(), chamei o rotate no graphics2D retornado e escrevi o bufferedImage no graphics retornado pelo printJog, atravéz do metodo drawImage (eu ja tinha visto esse metodo drawImage antes mais demorei pra perceber que o elemento Image a ser escrito poderia ser um bufferedImage...ja que ele é um filho de Image... sim eu fui burro nisso...rs)

minha duvida agora é outra...

eu tenho a intenção ler uma imagem em disco, escrever uma string nela e mandar para a impressora, o seguinte código esta lendo o arquivo, eu dei o drawString e mandei salvar em disco primeiro pra teste, para ver o resultado, como esta o arquivo... mais a string nao esta sendo escrita, a imagem original esta sendo salva sem modificações feitas... alguém saberia me dizer o por que, como resolver?


para tal estou tentando usar o seguinte código:

This message was edited 2 times. Last update was at 09/02/2009 09:42:15


espero ter ajudado...

falando nisso, caso seu problema tenha sido resolvido, edite o seu primeiro post e coloque um [RESOLVIDO] no titulo do tópico.
victorwss
JWizard
[Avatar]

Membro desde: 18/12/2007 14:46:00
Mensagens: 2409
Localização: São Paulo - SP
Offline

Não lembro direito, mas se não me engano há um método getGraphics ao invés de createGraphics. Tenta isso.

Victor Williams Stafusa da Silva

Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Doutorando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68% // SCBCD 5 - 31/05/2010 - PASS - 95%
Próximos: SCJD (encalhado com o projeto), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.

Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.

Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.


É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model).


Se você escreve "concerteza", "concerteza" você andou matando aulas de português.
[MSN]
maior_abandonado
JWizard
[Avatar]

Membro desde: 03/09/2007 11:30:08
Mensagens: 2694
Localização: sp
Offline

eu ja tentei... o getGraphics retorna um objeto graphics, pai de graphics2D, é de la que vem o metodo usado, o drawString, dito cujo não esta surtindo efeito...

espero ter ajudado...

falando nisso, caso seu problema tenha sido resolvido, edite o seu primeiro post e coloque um [RESOLVIDO] no titulo do tópico.
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20567
Localização: Curitiba/PR
Online

Antes do write faça:

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
maior_abandonado
JWizard
[Avatar]

Membro desde: 03/09/2007 11:30:08
Mensagens: 2694
Localização: sp
Offline

bom... muito fulo da vida em relatar aqui o motivo de por que não estava aparecendo a string escrita...

antes de tudo agradeço ao victorwss por ter respondido...

bom...o problema é que eu estava tentando escrever numa parte sem nada da imagem... numa parte da cor do fundo, ou seja... branca...

ao criar o BufferedImage, a cor usada como background é preta, não sei se por que preto é a ausencia de cor... sendo assim a cor usada para as linhas, quadrados, letras que se desenha é... branca... ao se pegar o objeto graphics...


bom...resumindo eu sem saber estava escrevendo usando uma letra branca... no fundo branco...

depois de uma tarde inteira perdida, com uma bestera dessas...

eu vo, toma um café e da uma relaxada... eu mereço

espero ter ajudado...

falando nisso, caso seu problema tenha sido resolvido, edite o seu primeiro post e coloque um [RESOLVIDO] no titulo do tópico.
maior_abandonado
JWizard
[Avatar]

Membro desde: 03/09/2007 11:30:08
Mensagens: 2694
Localização: sp
Offline

vlw vini... ao que parece não era isso... mais obrigado assim mesmo...

espero ter ajudado...

falando nisso, caso seu problema tenha sido resolvido, edite o seu primeiro post e coloque um [RESOLVIDO] no titulo do tópico.
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20567
Localização: Curitiba/PR
Online

Esse era meu próximo chute. Eu ia falar para você verificar se a cor do texto não era igual a cor da imagem (já perdi uma tarde nisso também) e para ver se a imagem que você estava abrindo era realmente a mesma que a que vc estava gravando (outra tarde).

Em todo caso, algumas dicas:
1. Não se dá dispose em objetos gráficos obtidos através do getGraphics(). Você faz isso sempre que usar a palavra "create";
2. create é mesmo preferível ao getGraphics();

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
maior_abandonado
JWizard
[Avatar]

Membro desde: 03/09/2007 11:30:08
Mensagens: 2694
Localização: sp
Offline

vlw ai as dicas obrigado mesmo, mais não intendi a primeira

não se da dispose em um graphics mais sim se eu tiver usando graphics2d, o que é preferivel? por que não?

This message was edited 1 time. Last update was at 09/02/2009 15:55:27


espero ter ajudado...

falando nisso, caso seu problema tenha sido resolvido, edite o seu primeiro post e coloque um [RESOLVIDO] no titulo do tópico.
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20567
Localização: Curitiba/PR
Online

É simples. Se vc usa um get, ou recebe um Graphics (ou Graphics2D) por parâmetro, significa que o java está te "emprestando" um contexto gráfico.
Nesse caso, faça a cópia com create() e depois apague essa cópia com dispose().

Agora, não dê dispose nesse Graphics que ele te emprestou... pq aí, quem vai ficar sem o objeto para desenhar é ele!!

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
maior_abandonado
JWizard
[Avatar]

Membro desde: 03/09/2007 11:30:08
Mensagens: 2694
Localização: sp
Offline

vlw denovo as dicas...

espero ter ajudado...

falando nisso, caso seu problema tenha sido resolvido, edite o seu primeiro post e coloque um [RESOLVIDO] no titulo do tópico.
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team