Due soluzioni, ma entrambe aprono l'acrobat.
scarichi il package
https://jdic.dev.java.net/
jdic che offre alcune interessanti funzionalità, e te ne esci così:
https://jdic.dev.java.net/nonav/docu...top.html#print(java.io.File)
Oppure implementi qualcosa del genere:
Dove magari in fase di installazione/configurazione dell'applicazione fai andare a pescare il percorso ad Acrobat all'utente.codice:public static void printPDF(String pFile, String pPrinter) { final String PATH_ADOBE_READER = "D:/Programmi/Adobe/Acrobat Reader 7.0/Reader/AcroRd32.exe"; final String ADOBE_READER_PRINT_COMMAND = "/p /h"; final String SLASH = "/"; final String QUOTE = "\""; final String SPACE = " "; // Command to be executed String lCommand = "\"" + PATH_ADOBE_READER +"\" /h /p \"" + pFile + "\" \"" + pPrinter + "\""; /*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; } } }
Ciao.

Rispondi quotando