magari.. ! non va, ne
ne \r\n ne \n.
Incredibile !..
Sono in locale con Easy php, ma a video con
funziona e in stampa su carta che non funge !
magari.. ! non va, ne
ne \r\n ne \n.
Incredibile !..
Sono in locale con Easy php, ma a video con
funziona e in stampa su carta che non funge !
Penso di aver trovato la soluzione qui:
http://php.net/manual/en/function.printer-draw-text.php
Metti il
in un ciclo che stampi un rigo per volta, incrementando di volta in volta l'ultimo parametro: posizione y del rigo.Codice PHP:printer_draw_text($stampante,$ordine_stampa, 10, 10);
Intanto gtrazie per il tuo interessamento !
l'havevo notata anch'io questa possibilità ma la riga
printer_draw_text($stampante,$ordine_stampa, 10, 10);
è fuori dal ciclo che crea la variabile ordine stampa.
Se inserisco all'interno del ciclo la funzione di stampa compresa della riga da te menunzionata mi stampa ovviamente una pagina per ogni riga di tabella.
O forse non ho afferrato bene il concetto. Va fatto un ciclo nel ciclo ? O mamma !
Una cosa del tipo:
Poi potresti mettere un controllo sul numero di righe per iniziare una nuova pagina dopo un tot righe, se serve.Codice PHP:///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);
$sql = "SELECT * FROM ordine";
$result = mysql_query($sql);
$ordine_stampa="";
while($row = mysql_fetch_assoc($result)) {
$y=10;
$id_piatto=$row['id_piatto']; $codice_piatto=$row['codice_piatto']; $quantita=$row['quantita']; $prezzo=$row['prezzo']; $timestamp=$row['timestamp'];
//$ordine_stampa= "Id piatto $id_piatto / Codice piatto $codice_piatto / Quantità $quantita / Prezzo $prezzo / Timestamp $timestamp ";
printer_draw_text($stampante,$ordine_stampa, 10, $y);
$y+=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;
Nada de nada, non si muove di una virgola, sempre stampata su una riga sola che tra l'altro va anche fuori margine del foglio a 4
Il problema non è che stampa tutti i cicli uno sopra l'altro per n volte, ma che li stampa sulla stessa riga andando avanti verso destra, quindi anche andando ad agire sulla posizione della riga con $y non si risolve nulla.
Ho risolto con questo script in VB
Sarà sicuramente utile ad altri.
codice:<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>