Problema no numero de cópias via Java

8 respostas
D

Olá a tds,

Estou tentado imprimir um documento pela javax.print, só que qdo eu defino o numero de copias ele ñ encontra nenhuma impressora ,mas se eu não defino que quero copias
ele encontra as minhas impressoras normalmente e imprime;

que suporta isso, alguém sabe como solucionar isso ??

Segui o fonte…

static public void main(String args[]) throws Exception {
		FileInputStream arq = null;
		arq = new FileInputStream("teste.txt");

		DocFlavor formatoDoc = DocFlavor.INPUT_STREAM.AUTOSENSE;
		Doc documento = new SimpleDoc(arq, formatoDoc, null);
		PrintRequestAttributeSet configuracoes = new HashPrintRequestAttributeSet();

		// *** Configura a quantidade de cópias ***
		configuracoes.add(new Copies(5));

		// *** Configura dupla página ***
		PrintService[] servicos = PrintServiceLookup.lookupPrintServices(formatoDoc, configuracoes);
		if (servicos.length > 0) {// Retorna vazio
			DocPrintJob job = servicos[0].createPrintJob();
			job.print(documento, configuracoes);

		}

	}

8 Respostas

shenn

Po mano, estou com o mesmo problema…

Alguém sabe como resolver?!

douglaskd

tente assim:

PrintService[] servicos = PrintServiceLookup.lookupPrintServices(formatoDoc, new HashPrintRequestAttributeSet()); // mude apenas esse parâmetro

o resto deixe como esta…

D

Então Douglas fiz o que vc disse , ele até imprime mas apenas uma ao copia ao invés do numero que estou passando.

Engraçado que ñ joga nenhum erro…

douglaskd

dfnfilipe:
Então Douglas fiz o que vc disse , ele até imprime mas apenas uma ao copia ao invés do numero que estou passando.

Engraçado que ñ joga nenhum erro…

mesmo deixando assim:

job.print(documento, configuracoes);

D

douglaskd:
dfnfilipe:
Então Douglas fiz o que vc disse , ele até imprime mas apenas uma ao copia ao invés do numero que estou passando.

Engraçado que ñ joga nenhum erro…

mesmo deixando assim:

job.print(documento, configuracoes);

Sim , só adicionei o parametro como vc disse ::

static public void main(String args[]) throws Exception {
		FileInputStream arq = null;
		arq = new FileInputStream("teste.txt");
		if (arq == null) {
		}

		DocFlavor formatoDoc = DocFlavor.INPUT_STREAM.AUTOSENSE;
		Doc documento = new SimpleDoc(arq, formatoDoc, null);
		PrintRequestAttributeSet configuracoes = new HashPrintRequestAttributeSet();
		// *** Configura a quantidade de cópias ***
		configuracoes.add(new Copies(3));
		// *** Configura o tamanho do papel ***
		//configuracoes.add(MediaSize.getMediaSizeForName(MediaSizeName.ISO_A4));
		// *** Configura dupla página ***
		//configuracoes.add(Sides.DUPLEX);
		PrintService[] servicos = PrintServiceLookup.lookupPrintServices(formatoDoc, new HashPrintRequestAttributeSet());
		if (servicos.length > 0) {
			DocPrintJob job = servicos[0].createPrintJob();
			job.print(documento, configuracoes);

		}

	}
douglaskd

tente usar assim somente para teste:

PrintService servico = PrintServiceLookup.lookupDefaultPrintService(); DocPrintJob job = servico.createPrintJob(); job.print(documento, configuracoes);

D

Testei o msm fonte em outra maquina e nem chama a impressora , mas ñ joga erro nem nada

Debugando da pra ver que ele encontra a impressora mas quando mando imprimir , não acontece nada !!!

Alguem sabe um outra forma de trabalhar com a impressora ?

D

para teste os docflavor da minha impressora aparece estes

image/gif
image/gif
image/gif
image/jpeg
image/jpeg
image/jpeg
image/png
image/png
image/png
application/x-java-jvm-local-objectref
application/x-java-jvm-local-objectref
application/octet-stream
application/octet-stream
application/octet-stream
Criado 13 de dezembro de 2012
Ultima resposta 13 de dez. de 2012
Respostas 8
Participantes 3