0
爲什麼下面的代碼在每次運行時都要求選擇打印機?當我運行下面的代碼時,我試圖一次執行無聲打印。無法執行無聲打印:java
有沒有辦法如何設置打印機只有一次?
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.io.IOException;
import java.net.URL;
import java.util.Arrays;
import javax.print.DocFlavor;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Sides;
import org.apache.pdfbox.pdmodel.PDDocument;
public class PdfBoxPrint {
public static PrintService choosePrinter() {
PrinterJob printJob = PrinterJob.getPrinterJob();
if(printJob.printDialog()) {
return printJob.getPrintService();
}
else {
return null;
}
}
public static void main(String[] args) throws IOException, PrinterException {
DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PAGEABLE;
PrintRequestAttributeSet patts = new HashPrintRequestAttributeSet();
patts.add(Sides.DUPLEX);
PrintService[] ps = PrintServiceLookup.lookupPrintServices(flavor, patts);
if (ps.length == 0) {
throw new IllegalStateException("No Printer found");
}
System.out.println("Available printers: " + Arrays.asList(ps));//Prints default: "Available printers: [Win32 Printer : Fax]"
// Locate the default print service for this environment.
PrintService myService = PrintServiceLookup.lookupDefaultPrintService();
// Create and return a PrintJob capable of handling data from
// any of the supported document flavors.
System.out.println("Default Printer: "+myService.getName());
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintService(choosePrinter());
URL myURL = new URL("[SOME LINK TO A PDF]");
PDDocument pdf=PDDocument.load(myURL);
pdf.silentPrint(job);
}
}
如果你在windows上嘗試通過'Devices&Printers'設置默認打印機 – 2014-10-27 06:55:08
@JavaBond不知道,該怎麼做? - 任何建議 – 2014-10-27 07:05:18
對於Windows 7:轉到開始 - >設備和打印機。在這裏選擇打印機,右鍵點擊並從菜單 – 2014-10-27 07:09:14