forum-informatico
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Ajude a Asast
Patrocinadores
Últimos assuntos
» Artigo ethereum
Como imprimir ficheiro e controlar impressão? EmptyTer Set 24, 2019 1:16 pm por jpmartins

» Artigo Bitcoin
Como imprimir ficheiro e controlar impressão? EmptyTer Set 24, 2019 1:13 pm por jpmartins

» Novo site para desportistas / New site for athletes
Como imprimir ficheiro e controlar impressão? EmptyTer Dez 04, 2018 8:19 am por Admin

» Check used port with the command line
Como imprimir ficheiro e controlar impressão? EmptyTer Dez 04, 2018 8:10 am por Admin

» Check the port where mariaDB is running
Como imprimir ficheiro e controlar impressão? EmptySeg Dez 03, 2018 4:59 am por Admin

» Check the linux version
Como imprimir ficheiro e controlar impressão? EmptySeg Dez 03, 2018 3:12 am por Admin

» Granting rights to a database for a user
Como imprimir ficheiro e controlar impressão? EmptyQui Nov 29, 2018 2:04 am por Admin

» Create new user
Como imprimir ficheiro e controlar impressão? EmptyQui Nov 29, 2018 2:01 am por Admin

» Change level of password security level
Como imprimir ficheiro e controlar impressão? EmptyQui Nov 29, 2018 1:59 am por Admin

AdSense
Contributo

Como imprimir ficheiro e controlar impressão?

2 participantes

Ir para baixo

Como imprimir ficheiro e controlar impressão? Empty Como imprimir ficheiro e controlar impressão?

Mensagem  pj Qui Nov 13, 2008 3:23 am

Olá

Estou a escrever um programa no qual preciso de imprimir um ficheiro PDF e ser capaz de dizer ao utilisador se o ficheiro foi ou não bem imprimido.

Como posso fazer isso em Java?

Obrigado.

pj

Mensagens : 36
Data de inscrição : 28/01/2008

Ir para o topo Ir para baixo

Como imprimir ficheiro e controlar impressão? Empty Re: Como imprimir ficheiro e controlar impressão?

Mensagem  Admin Ter Nov 18, 2008 2:33 am

Com Java Print API, é possível imprimir um ficheiro e controlar a sua impressão.

Aqui fica um exemplo simples:

Código:


...
try {
  PrintService defaultPS = PrintServiceLookup.lookupDefaultPrintService();
  DocPrintJob dPJ = defaultPS.createPrintJob();
  fis = new FileInputStream(sFilename);
  Doc doc = new SimpleDoc(fis, DocFlavor.INPUT_STREAM.AUTOSENSE, null);

  // Listener para controlar mudancas de estado do job de impressao
  PrintJobManagment pjm = new PrintJobManagment(dPJ);

  dPJ.print(doc, null);

} catch(Exception e) {
  e.printStackTrace();
}

...

E agora o codigo do Listener:

Código:


public class PrintJobManagment {

   int iResult = 0;
   
   PrintJobManagment(DocPrintJob job) {
        job.addPrintJobListener(new PrintJobAdapter() {
           
          public void printDataTransferCompleted(PrintJobEvent pje) {
                // The print data has been transferred to the print service
           System.out.println("DATA_TRANSFERT_COMPLETED");
          }
           
          public void printJobCanceled(PrintJobEvent pje) {
           // The print job was cancelled
            System.out.println("CANCELED");
           setStatus(1);
          }
          public void printJobCompleted(PrintJobEvent pje) {
               // The print job was completed
               System.out.println("COMPLETED");
               setStatus(2);
          }
          public void printJobFailed(PrintJobEvent pje) {
               // The print job has failed
               System.out.println("FAILED");
               setStatus(3);
          }
          public void printJobNoMoreEvents(PrintJobEvent pje) {
             // No more events will be delivered from this
                //    print service for this print job.
                // This event is fired in cases where the print service
                //    is not able to determine when the job completes.
               //System.out.println("NO_MORE_EVENTS");
               setStatus(4);
          }
           
          public void printJobRequiresAttention(PrintJobEvent pje) {
                // The print service requires some attention to repair
                //    some problem.
               // Example: running out of paper would cause this event
               //   to be fired.
               System.out.println("REQUIRES_ATTENTION");
               setStatus(5);
            }
           
            void setStatus(int iStatus) {
               synchronized (PrintJobManagment.this) {
                  iResult = iStatus;
                  PrintJobManagment.this.notify();
               }
            }
           
        });
   }
   
   public synchronized int waitForDone() {
        try {
           // If no event were executed or if only the data transfert event were
           //   launched executed or if the canceled job event were launched there
           //   is nothing to be done.
           while (iResult==0)
                  wait();
           
        } catch (InterruptedException e) {
        }
        return iResult;
    }

Admin
Admin
Admin

Mensagens : 607
Data de inscrição : 21/01/2008
Idade : 46

https://forum-informatico.forumeiros.com

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos