il codice:
$cmd_print = $stampaFile.' -p "'.$stampante.'" '.$copie_text.$fronteretro_text.' "'.$spoolDir.$nomeFile .'" ';
$res = system("start /B ". $cmd_print, $output);
(all'interno di un ciclo sui file scelti)
dove:
$stampafile è c:\...\pdfp.exe (apre acroread32.exe per la stampa PDF)
$stampante è \\\\server\\stampante1
$copie_text è pieno se han scelto + copie con -c #copie
$fronteretro_text è pieno se han scelto fronte/retro con -d #nfronteretro
$spoolDir.$nomefile è c:\\...\\...\\file#ennesimo.pdf
ma la stessa cosa succede anche senza pdfp.exe, lanciando un vb compilato che carica Acroread32 passando il file come paarametro.
questo è un esempio, ho un'altra pagina che lancia un exec('copy con file.txt \\server\stampante1 ') che da lo stesso problema.
non credo c'entri il lancio del comando, anche perchè ho già cambiato tutti i tipi (exec, shellexec, system, popen...).
so che se sbagli riga di comando rimane in attesa, ma ho già verificato che la riga di comando sia corretta provandola direttamente da cmd.
ho già provato popen e pclose, ma sì non blocca la pagina (mentre system da l'output e attende l'esito), però poi magari stampa 4 pdf su 20 scelti.
ora invece guardo le proc* che non ho mai visto.
intanto grazie.
ciao!

Rispondi quotando