/*****************************************************************************************************************************
* 使用 /t 参数打印PDF文件 * * @param File 需要打印的文件,比如 C:\MYFILE.PDF * @param Printer 打印机名字,比如 \\MYSERVER\MYPRINTER ****************************************************************************************************************************/ public static void printPDF(String pFile, String pPrinter) { final String PATH_ADOBE_READER = "C:\\Program Files\\Adobe\\Acrobat 7.0\\Reader\\AcroRd32.exe"; final String ADOBE_READER_PRINT_COMMAND = "/t"; final String SLASH = "/"; final String QUOTE = "\""; final String SPACE = " "; // Command to be executed String lCommand = QUOTE + PATH_ADOBE_READER + QUOTE + SPACE + ADOBE_READER_PRINT_COMMAND + SPACE + QUOTE + pFile + QUOTE + SPACE + QUOTE + pPrinter + QUOTE; System.out.println("[printPDF] Command to be executed : " + lCommand); Process lAdobeBackGroundProcess = null; Process lAdobeProcess = null; try { // Must create a background Adobe Reader process (don't ask why, just do it;-) lAdobeBackGroundProcess = Runtime.getRuntime().exec(PATH_ADOBE_READER); // Execute the Adobe Reader command "/t" (print and terminate) lAdobeProcess = Runtime.getRuntime().exec(lCommand); // Wait for Adobe Reader to complete int exitVal = lAdobeProcess.waitFor(); if (exitVal != 0) { throw new Exception("[printPDF] Adobe Reader process exitVal : " + exitVal); } } catch (Exception e) { System.err.println("[printPDF] Error printing PDF : " + pFile); e.printStackTrace(); } finally { if (lAdobeBackGroundProcess != null) { lAdobeBackGroundProcess.destroy(); lAdobeBackGroundProcess = null; } } } |
JAVA 调用ACRORD32 打印PDF
最新推荐文章于 2024-08-21 16:00:56 发布