A capo in un'array dentro ad un ciclo

alexgentili

Utente Attivo
15 Lug 2010
39
0
0
Ciao a tutti, ormai sono troppe ore stò cedendo. Spiego il mio problema:

Devo interrogare il db, estrarre dei risultati, metterli in un'array, stamparli a video e stamparli su carta attraverso una printer locale.
Il php gira in locale con Easyphp e mysq. Il problema sorge quando devo andare a capo finito il primo ciclo, finito il secondo, e così via.
A video l'acapo funziona con il classico <br> oppure con \r\n ma in stampa su carta mi stampa sempre una riga dritta con tutto l'array.
Posto il codice:


PHP:
$sql = "SELECT * FROM ordine"; 
$result = mysql_query($sql); 

$ordine_stampa="";

for($x=0; $x<$row = mysql_fetch_assoc($result); $x++){

$id_piatto=$row['id_piatto']; $codice_piatto=$row['codice_piatto']; $quantita=$row['quantita']; $prezzo=$row['prezzo']; $timestamp=$row['timestamp'];
$sp="<br>";

//$ordine_stampa.= "Id piatto $id_piatto / Codice piatto $codice_piatto /  Quantità $quantita / Prezzo $prezzo / Timestamp $timestamp <br />n "; 
$ordine_stampa.= $id_piatto.$codice_piatto.$quantita.$prezzo.$timestamp.$sp; 

///INIZIO CODICE PEE L'INVIO ALLA PRITER LOCALE

$stampante=printer_open("Samsung SCX-4725 Series PCL 6"); // Apro la connessione 
printer_start_doc($stampante,"Titolo del Documento"); // Inizio documento 
printer_start_page($stampante); //Inizio pagina 1 

//$font=printer_create_font("Arial", 148, 76, PRINTER_FW_MEDIUM, false, false,false, -50); 
//printer_select_font($font); 
printer_draw_text($stampante,$ordine_stampa, 10, 10); // Ecco chescriviamo!!! 
//printer_delete_font($font); 

printer_end_page($stampante); // Fine pagina 1 
//printer_start_page($stampante); //Inizio pagina 2 

//printer_draw_bmp($stampante, "c:\immagine.bmp", 10, 10); //Ecco la nostraimmagine!!! 

//printer_end_page($stampante); // Fine pagina 2 
printer_end_doc($stampante); // Fine documento 
printer_close($stampante); // Chiudo la connessione





echo $ordine_stampa;

Grazie a chi volesse suggerirmi dove sbaglio.
 
Niente da fare, neanche così vado a capo in stampa. NOn ne vengo davero a capo.

Ho risolto con questo script in vb

<script language='VBScript'>
Sub Print()
OLECMDID_PRINT = 6
OLECMDEXECOPT_DONTPROMPTUSER = 2
OLECMDEXECOPT_PROMPTUSER = 1
call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1)
End Sub
document.write "<object ID='WB' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>"
</script>

<script type="text/javascript">
window.onload=function(){self.print();}
</script>
 
ciao
se non ti è di peso dai la soluzione completa in quanto può interessare anche altri utenti (anche me perchè non mi è mai capitato di usare quelle istruzioni php). tra l'altro: si deve modificare il php.ini? e se si dove?
grazie
 
ciao
se non ti è di peso dai la soluzione completa in quanto può interessare anche altri utenti (anche me perchè non mi è mai capitato di usare quelle istruzioni php). tra l'altro: si deve modificare il php.ini? e se si dove?
grazie

Nessuna modifica al php.ini, basta eseguire lo script sopra citato in vb e la pagina va in stampa sulla pritner di defoult.
invece va modificato il livello di sicurazza del "intranet" abbassando il livello di protezione e dando l'eseguibilità degli script activeX in modo che quando il comando vbscript per la stampa fa il suo lavoro, ie non blocchi l'eseguibilità. Miracconmando solo sulle impostazioni INTRANET non INTERNET
C'è poi un altro problema di avviso, nel senso che ogni volta che la stampa parte, ie avvisa che è stato eseguito uno script potenzialmente dannoso, problema superato anche qua con questo batch.
Creare un file di testo, incollare quanto segue e salvare con .bat

@echo off
echo ------------------------------------------------------------------
echo --- ---
echo --- VUOI DISABILITARE IL CONTROLLO DELLA SICUREZZA DI I.E. ? ---
echo --- ---
echo ------------------------------------------------------------------
pause
reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Security" /v DisableSecuritySettingsCheck /t reg_dword /d 1 /f

.
Ora invece stò proseguendo la battaglia, perchè pare che alla fine della stampa, la pagina html non accetti nessun tipo di comando di redirect ad altra pagina, ne php ne html ne Java.
Vado avanti con i test.
 
Risolto anche il problema del redirect con un semplice

<meta http-equiv="refresh" content="1;URL=pagina.php">

saluti e grazie a tutti.
 

Discussioni simili