Non ricevendo risposta, ho provato ad arrangiarmi alla meglio.
Sotto Linux/Mac Os ho risolto con le API Java visto che il sistema Cups gestisce tranquillmanete PDF/PS.
Su Windows naturalmente ci sono problemi perché grazie ai driver proprietari la mia stampante non è in grado di gestire nessun file... Stendiamo un velo pietoso...
L'unica soluzione trovata, seppur poco elegante, è quella di appoggiarmi ad un programma terzo come ghostscript/ghostview e la classe Runtime con il seguente codice:
Codice PHP:
System.out.println("Sistema Windows");
String[] comando = {
Modello12.psprint,
psfile.getAbsolutePath()
};
Runtime run = Runtime.getRuntime();
try {
Process proc = run.exec(comando);
InputStream stderr = proc.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<ERROR>");
while ( (line = br.readLine()) != null)
System.out.println(line);
System.out.println("</ERROR>");
int exitVal = 0;
try {
exitVal = proc.waitFor();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Process exitValue: " + exitVal);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Modello12.psprint è una stringa che contiene il path di psprint.exe, il programma che stampa direttamente un file .ps che viene dato come argomento.
L'inghippo è che l'applicazione manda il comando correttamente ma la stampa non inizia se non quando si chiude il programma e non riesco a capire il perché...
Praticamente controllando lo spool di stampa il documento rimane in attesa accodato finché non si esce dal programma principale.
Qualche suggerimento?
Grazie
Matteo