2017-09-21 4 views
0

J'ai une situation qui ont besoin d'imprimer la facture de l'ordre dans le compteur de trésorerie et de la zone d'emballage (entrepôt).comment définir l'imprimante cible dans PrinterJob dans JavaFX

Techniquement, comment imprimer javafx.print.PrinterJob en disant nom de l'imprimante.

1) print Exemple

public static void PrintSample() { 
    Label lbl = new Label("This is sample \n\n\n\n\n\nprint"); 
    PrinterJob job = PrinterJob.createPrinterJob(); 
    if (job != null ) { 

     boolean success = job.printPage(lbl); 
     if (success) { 
      job.endJob(); 
     } 
    } 
} 

2) Obtenir la liste des imprimantes

public static void GetListOfPrinters() { 
    PrintService[] printServices = PrintServiceLookup.lookupPrintServices(null, null); 
    System.out.println("Number of print services: " + printServices.length); 

    for (PrintService printer : printServices) { 
     System.out.println("Printer: " + printer.getName()); 
    } 

} 

Répondre

1

La méthode 'createPrinterJob' sans-args crée un travail d'impression pour l'imprimante par défaut. Vous pouvez utiliser l'autre version de la méthode 'createPrinterJob (Printer printer)' pour créer un travail d'imprimante pour l'imprimante spécifiée. d'abord obtenir instance d'imprimante comme ci-dessous:

Printer myPrinter; 
ObservableSet<Printer> printers = Printer.getAllPrinters(); 
for(Printer printer : printers){ 
    if(printer.getName().matches("spefic printer name")){ 
     myPrinter = printer; 
    } 
} 

Créez maintenant un travail d'impression pour 'myprinter' comme ceci:

PrinterJob job = PrinterJob.createPrinterJob(myPrinter); 
0

PrinterJob emploi = PrinterJob.createPrinterJob (myprinter); cette ligne ne fonctionne pas donnez l'erreur La méthode createPrinterJob (imprimante) est indéfinie pour le type PrinterJob

+2

https://docs.oracle.com/javase/8/javafx/api/javafx/print/PrinterJob.html Il semble que la méthode existe. Peut-être que vous n'avez pas importé la classe correctement. Si vous avez des doutes, s'il vous plaît ajouter un commentaire. Votre texte n'est pas une réponse à cette question. – RubioRic