Impressão de PDF

2 respostas
srsinistro

Fala Galera…

Estou com um problema e gostaria muito da ajuda de vcs.

Com esta classe abaixo consigo imprimir PNG e um TXT porem nao consigo imprimir um arquvivo PDF.

Para um PNG troco a linha

DocFlavor fl = DocFlavor.INPUT_STREAM.PNG;

e para um TXT troco a linha

DocFlavor fl = DocFlavor.INPUT_STREAM.AUTOSENSE;

porem se trocar para

DocFlavor fl = DocFlavor.INPUT_STREAM.PDF;

dah a seguinte mensagem de erro
sun.print.PrintJobFlavorException: invalid flavor

at sun.print.Win32PrintJob.print(Unknown Source)

at com.pciims.teste.TesteImpressao2.main(TesteImpressao2.java:59)

Vai o codigo ai:

import java.io.BufferedInputStream;

import java.io.ByteArrayInputStream;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.InputStream;
import javax.print.Doc;

import javax.print.DocFlavor;

import javax.print.DocPrintJob;

import javax.print.PrintException;

import javax.print.PrintService;

import javax.print.PrintServiceLookup;

import javax.print.SimpleDoc;
public class TesteImpressao2 {

PrintService ps;

DocPrintJob dpj;
public static void main(String a[]) throws FileNotFoundException {
	TesteImpressao2 imprime = new TesteImpressao2();
	//String teste = "\\\\pci-03\\Epson FX-2180";
	String teste = "\\\\pci-server\\hp LaserJet 1000 DOS";
	//String teste = "\\\\pci-server\\hp LaserJet 1000";
	
	//DocFlavor df = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
    DocFlavor df = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
    PrintService[] pss =  PrintServiceLookup.lookupPrintServices(df,null);
    for(int i=0; i<pss.length; i++){
        imprime.ps = pss[i];
        System.out.println(imprime.ps.getName());
        if(imprime.ps.getName().compareTo(teste) == 0){
	        imprime.dpj = imprime.ps.createPrintJob();
	    }	        
    }	    	    

    InputStream stream = new BufferedInputStream(new FileInputStream("C:/arq.pdf"));
    //DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
    DocFlavor fl = DocFlavor.INPUT_STREAM.PDF;
    
    Doc doc = new SimpleDoc(stream, fl, null);
    
    try {
        imprime.dpj.print(doc, null);
    } catch (PrintException e) {
        e.printStackTrace();
    }
}

}

2 Respostas

M

PQ vc não usa o JASPERREPORT?

srsinistro

Oi… desculpa… nao conheco o JASPER… porem nao sei se ele pode fazer o que eu preciso… Vou precisar controlar as bandejas de uma impressora a lazer, pq alguns formularios saem em papel especial e outros em papel normal…
Como eu vi que javax.print tem uma opção para escolher as bandejas que desejo imprimir…

ALGUEM PODE ME AJUDAR… PELO AMOR DE DEUS… rs…

Criado 24 de junho de 2005
Ultima resposta 24 de jun. de 2005
Respostas 2
Participantes 2