package com
.str
.str
.util
;
import org
.apache
.pdfbox
.pdmodel
.PDDocument
;
import org
.apache
.pdfbox
.printing
.PDFPageable
;
import org
.apache
.pdfbox
.printing
.PDFPrintable
;
import org
.apache
.pdfbox
.printing
.Scaling
;
import javax
.print
.DocFlavor
;
import javax
.print
.PrintService
;
import javax
.print
.PrintServiceLookup
;
import javax
.print
.attribute
.HashPrintRequestAttributeSet
;
import java
.awt
.print
.*
;
import java
.io
.File
;
import java
.io
.FileInputStream
;
import java
.io
.InputStream
;
import java
.net
.URL
;
public class PrintTest {
public static void printFile(String fileUrl
, PrintService printService
, String jobName
) throws Exception
{
File url
= new File(fileUrl
);
PDDocument document
= PDDocument
.load(url
);
PrinterJob job
= PrinterJob
.getPrinterJob();
job
.setPageable(new PDFPageable(document
));
job
.setPrintService(printService
);
job
.print();
}
public static PrintService
specifyPrinter(String printerName
) {
DocFlavor psInFormat
= DocFlavor
.INPUT_STREAM
.AUTOSENSE
;
HashPrintRequestAttributeSet pras
= new HashPrintRequestAttributeSet();
PrintService printService
[] = PrintServiceLookup
.lookupPrintServices(psInFormat
, pras
);
PrintService myPrinter
= null
;
for (PrintService printService2
: printService
) {
String svcName
= printService2
.toString();
if (svcName
.contains(printerName
)) {
myPrinter
= printService2
;
break;
}
}
if (myPrinter
== null
) {
myPrinter
= PrintServiceLookup
.lookupDefaultPrintService();
}
return myPrinter
;
}
}
main函数调用:
public static void main(String
[] args
) {
try {
PrintTest
.printFile("D:\\AAA.PDF",PrintTest
.specifyPrinter("aaa"),"222");
}catch (Exception e
){
System
.out
.println(e
.getMessage());
}
}