Autore Topic: Etichette - Label  (Letto 1928 volte)

Offline GiorgioBlu

  • Abituale
  • ****
  • Post: 861
  • Sesso: Maschio
  • Utente dal: 23/06/2004 Susegana - TV - Italy
    • Mostra profilo
Etichette - Label
« il: 16 Dic 2005, 13:08:50 »
Sempre per aumentare le risorse utili a VirtueMart, vi segnalo questo script utile per generare le etichette da applicare hai colli da spedire.

http://forum.html.it/forum/showthread.php?threadid=445992

Anche in questo caso se qualche anima pia decide di rielaborare il cod. e creare un moduletto x VM, glie ne saremo tutti MOLTO grati! ;) ;D

Ciao!




Posto anche il codice per evitare che in futuro il link segnalato in precedenza non funzioni.

Codice: [Seleziona]
<?php

/ ****************************************
***************************
# STAMPARE BUSTE ED ETICHETTE SINGOLE
#
# Autore: Piero Maccario - Asti
# Alias:  piero.mac ON html.it-php forum
#
# Data: 03/05/2003 - Test version only. Per forum html.it-php
#
# Utilizzo: Permette di stampare buste, oppure etichette singole
#             in qualsiasi formato utilizzando esclusivamente
#            uno script PHP prelevando i dati da una tabella mysql.
#           Lo script aggiorna il record stampato per evitare
#           stampe doppie. Ottimizzato per le reti INTRANET.
#           Posizionare nel db la flag "stampato SI/NO" su "NO"  
#           sui record da usare prima di iniziare la stampa.
#
# Build up: PHP 4.3.1 - Mysql 4.0.12
#
# Compatibilita' OS: Windows 98/ME/XP/2000 - Apache any version.
#
# Richiede: extension=php_printer.dll (file ini.php)
#
 
****************************************
***************************/

# Nell'esempio che segue il posizionamento dei dati e' valido per buste
# in formato 12 x 18 con stampa del foglio verticale e con un logo .bmp sul
# lato sx alto. Inserire la busta dal lato largo con la faccia in basso.
# Per altri formati variate le cooordinate x,y delle rispettive variabili

$logo_x 120;         # posizione x di un logo
$logo_y 120;         # posizione y di un logo
$logo "Logo007.bmp"# nome del file in formato .bmp
$text_x 1100;        # posizionamento di colonna. In pixel.
$text_y 900;         # posizionamento prima riga.
$font_h 60;          # altezza del font (sempre pixel)
$font_w 22;          # larghezza del font
$font_c "Arial";     # nome del font

# connessione al db - preleviamo i nostri dati e contiamoli
$server "localhost";
$user "root";
$pwd "";
$datab "agenda";
$tabella "soci";
$link mysql_connect ($server$user$pwd) or die ("Mysql dice: " mysql_error() . mysql_errno());
$db mysql_select_db ($datab$link) or die ("Mysql dice: " mysql_error());
$action "select * from $tabella where stampato = 'NO'";
$query mysql_query ($action$link);
$num mysql_num_rows($query);
echo 
"<p><h5>Stamperemo n. $num buste con i seguenti nominativi:</h5></p>";
$n_busta 1;

# apriamo un thread di lavoro con la stampante. lo facciamo prima del while
$handle=printer_open();

# creazione del font - cfr. il manuale per le molte opzioni e compatibilita'
# <a href="http://www.zend.com/manual/ref.printer.php" target="_blank">http://www.zend.com/manual/ref.printer.php</a> oppure
# <a href="http://forum.html.it/forum/showthread.php?s=&threadid=348674" target="_blank">http://forum.html.it/forum/showthre...threadid=348674</a>
# nota: il font deve essere selezionato all'interno del documento di stampa

$font printer_create_font("$font_c"$font_h$font_wPRINTER_FW_NORMALfalsefalsefalse0);

# ciclo di stampa - Estraggo le variabili dall'array per maggior chiarezza.
# Dal contenuto dell'array si puo' vedere come e' composta la tabella "soci".
while ($result mysql_fetch_array ($query))
 {
   
$id  $result["socio_id"];        # campo INT(4) UNSIGNED NOT NULL AUTO INCREMENT
   
$tit $result["titolo"];          # VARCHAR(10)
   
$cog $result["cognome"];         # VARCHAR(20)
   
$nom $result["nome"];            # VARCHAR(20)   
   
$ind $result["indirizzo"];       # VARCHAR(30)
   
$cap $result["cap"];             # INT(5)
   
$cit $result["citta"];           # VARCHAR(30)
   
$sta $result["stampato"];        # CHAR(2) DEFAULT 'NO'

# finalmente si stampa. Si consiglia di non aprire/chiudere il documento fuori dal while
# Si sono avuti problemi su alcuni PC, problemi non approfonditi visto che si risolvevano
# aprendo e chiudendo ogni volta un documento diverso all'interno del ciclo while.

printer_start_doc($handle,'Stampa Buste');                       # inizio documento
printer_start_page($handle);                                     # inizio pagina
printer_select_font($handle$font);                             # seleziono il font creato
printer_draw_bmp($handle"$logo"$logo_x$logo_y);            # stampo il logo .bmp
printer_draw_text($handle,$tit"$text_x$text_y);            # I riga
printer_draw_text($handle,$nom $cog"$text_x$text_y+80);    # II abbassata di 80 pixel
printer_draw_text($handle,$ind"$text_x$text_y+160);        # perche' 60 pixel del font
printer_draw_text($handle,$cap - $cit"$text_x$text_y+240); # piu' 20 pixel di spazio, ecc.
printer_end_page($handle);                                       # Fine pagina espelle la busta
printer_end_doc($handle);                                        # Fine documento

# vediamo su monitor cosa stiamo stampando a scopo di feedback  
echo "<p><h5>Busta n. $n_busta - Stampo: $tit $cog $nom - $ind - $cap $cit</h5></P>";            

# Aggiorniamo il record con l'indicazione di stampato=SI. Questo permette di riprendere
# la stampa evitando di stampare doppioni. Ovvio che prima di iniziare a stampare sara'
# necessario fare un UPDATE di tutti i record posizionando a NO la flag 'stampato'.
# O solo dei record che si vogliono stampare.Ovvio... ma non scontato che ci si ricordi...

$action1 "UPDATE $tabella SET stampato = 'SI' WHERE socio_id = $id";
$query1 mysql_query ($action1$link);
$num1 mysql_affected_rows();    # diamo una controllatina alle gomme...
if ($num1 == 1) {                 # tutto ok
echo "<p><h5>Il record di $nom $cog e' stato aggiornato</h5></p>";
$n_busta $n_busta +1;           # incrementiamo il num. delle buste stampate
}
else {                            
# acc.. qualcosa e' andato storto
echo "<p><h5>Il record di $nom $cog non e' stato aggiornato.</h5></p>";
echo 
"<p><h5>La stampa in corso viene interrotta.</h5></p>";
printer_abort($handle);           # abortiamo lo spool di stampa
printer_close($handle);           # chiudiamo la sessione
exit();                           # ed usciamo dal programma
}
}

# chiudiamo tutte le connessioni
# ciao ciao
printer_close($handle);      
mysql_free_result($query);
mysql_close($link);
?>

Offline jk4nik

  • Instancabile
  • ******
  • Post: 6517
  • Sesso: Maschio
    • Mostra profilo
Re: Etichette - Label
« Risposta #1 il: 16 Dic 2005, 14:14:32 »
mi associo alla richiesta di giorgio, infatti lo avevo chiesto anch'io tempo fa se eesisteva qualcosa del genere per vm.

ciao
jk

p.s. e per le fatture nessuno ha qualcosa?

Sta per essere approvata la nuova nomenclatura per le taglie dei reggiseni: essi saranno d'ora in poi descritti con le lettere dell'alfabeto ABCDEF: A - Apprezzabile B - Buona C - Cannonata D - Discreta E - Esagerata F - Falsa

 

Host

Torna su