package com.merge.rui; import java.io.File; 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; import javax.print.attribute.DocAttributeSet; import javax.print.attribute.HashAttributeSet; import javax.print.attribute.HashDocAttributeSet; import javax.print.attribute.HashPrintRequestAttributeSet; import javax.print.attribute.PrintRequestAttributeSet; import javax.print.attribute.standard.JobName; import javax.print.attribute.standard.MediaSizeName; import org.apache.pdfbox.PrintPDF; public class PrintPdf { public static void main(String[] args) { // System.out.println("Value:"+test()); // 打印pdf的一个方法,首先安装下PDFCreator软件 try { // printFile("C:\\Users\\rui\\Desktop\\test\\"); // printBOXFileName("C:\\Users\\rui\\Desktop\\test\\8.17.pdf"); // printBOXFiles("C:\\Users\\rui\\Desktop\\test\\"); printFileName("C:\\Users\\rui\\Desktop\\test\\8.17.pdf"); } catch (Exception e) { System.out.println("打印文件异常:" + e.getMessage()); e.printStackTrace(); } } /** * BoX方法打印,按路径 * @param pathFile * @throws Exception */ public static void printBOXFiles(String pathFile) throws Exception{ File file = new File(pathFile); File[] fies = file.listFiles(); for (int x = 0; x < fies.length; x++) { if (fies[x].isDirectory()){ printBOXFiles(fies[x].getPath()); } else{ if (fies[x].getName().endsWith(".pdf")) { String filepath = pathFile + File.separator + fies[x].getName(); PrintPDF.main(new String[]{"-silentPrint",filepath}); System.out.println("打印file " + fies[x].getName()); } } } } /** * BOX方法打印,按文件名 */ public static void printBOXFileName(String FileName) throws Exception { PrintPDF.main(new String[]{"-silentPrint",FileName}); } /** * 系统打印,按文件名 * @param FileName * @throws Exception */ public static void printFileName(String FileName) throws Exception { File pdfFile = new File(FileName); // 构建打印请求属性集 PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); pras.add(new JobName(FileName.substring(FileName.lastIndexOf("\\")+1,FileName.length() ), null)); pras.add(MediaSizeName.ISO_A4); // 设置打印格式,因为未确定文件类型,这里选择AUTOSENSE // DocFlavor flavor = DocFlavor.INPUT_STREAM.PDF;//pdf打印 DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;//自动 // DocFlavor flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT;//ps打印 // 查找所有的可用打印服务 HashAttributeSet has = new HashAttributeSet(); // has.add(new PrinterName("Officejet J5500 series", null)); // 添加打印机名称 PrintService[] printService = PrintServiceLookup .lookupPrintServices(flavor, has); // if (printService[0] != null) { if (printService.length > 0) { DocPrintJob pj = printService[1].createPrintJob();// 创建打印任务 try { FileInputStream fis = new FileInputStream(pdfFile);// 构造待打印的文件流 DocAttributeSet das=new HashDocAttributeSet(); // Doc doc = new SimpleDoc(fis, flavor, null);// 建立打印文件格式 Doc doc = new SimpleDoc(fis, flavor, das);// 建立打印文件格式 pj.print(doc, pras);// 进行文件的打印 } catch (FileNotFoundException fe) { } catch (PrintException e) { } } // if (printService[1] != null) { // //获得打印服务的文档打印作业 // DocPrintJob job = printService[1].createPrintJob(); // 创建打印任务 // // DocAttributeSet das=new HashDocAttributeSet(); // // InputStream fis = new FileInputStream(pdfFile); // 构造待打印的文件流 // Doc doc = new SimpleDoc(fis, flavor, das); // 建立打印文件格式 // job.print(doc, pras); // 进行文件的打印 // } } /** * 系统打印,按路径 * @param path * @throws Exception */ public static void printFile(String path) throws Exception { File file = new File(path); File[] fies = file.listFiles(); for (int x = 0; x < fies.length; x++) { if (fies[x].isDirectory()){ printFile(fies[x].getPath()); } else{ String fileExt = fies[x].getName().substring( fies[x].getName().indexOf(".") + 1, fies[x].getName().length()); if ("pdf".equalsIgnoreCase(fileExt)) { System.out.println("打印file " + fies[x].getName()); String filepath = path + File.separator + fies[x].getName(); File pdfFile = new File(filepath); // 构建打印请求属性集 PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); pras.add(new JobName(fies[x].getName(), null)); HashAttributeSet has = new HashAttributeSet(); // has.add(new PrinterName("Officejet J5500 series", null)); // 添加打印机名称 // 设置打印格式,因为未确定文件类型,这里选择AUTOSENSE DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; // 查找所有的可用打印服务 PrintService printService[] = PrintServiceLookup .lookupPrintServices(flavor, has); if (printService[1] != null) { //获得打印服务的文档打印作业 DocPrintJob job = printService[1].createPrintJob(); // 创建打印任务 DocAttributeSet das=new HashDocAttributeSet(); InputStream fis = new FileInputStream(pdfFile); // 构造待打印的文件流 Doc doc = new SimpleDoc(fis, flavor, das); // 建立打印文件格式 job.print(doc, pras); // 进行文件的打印 } } } } } }

gshnlj LV15
2022年8月24日
2252536772 LV21
2022年2月18日
thornton2011 LV2
2021年9月2日
aihui523 LV34
2021年3月23日
wupujian LV17
2020年12月30日
18321000850 LV14
2020年6月24日
EdgarLi LV14
2020年5月16日
kkalpha LV5
2020年3月20日
qq371348836 LV7
2020年3月12日
xuyongff LV24
2019年11月4日