Autore Topic: stampare etichette  (Letto 7347 volte)

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
stampare etichette
« il: 01 Dicembre 2010, 23:08:53 »
ciao
devo creare un form per stampare etichette con codice sia alfanumerico che a barre.

1) devo acquistare le stampanti, e qui mi servirebbe un consiglio su quale prendere, vista la difficoltà dei driver su linux.

2) come lancio la stampa da gambas

3) come faccio da gambas ad indirizzare la stampa sulla stampante per etichette e non su quella di default?

il tutto deve girare su ubuntu 10.10

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: stampare etichette
« Risposta #1 il: 02 Dicembre 2010, 10:23:14 »
Per impostare la stampante per la tua applicazione devi agire sull'oggetto statico Printer.

Puoi farlo in due modi:
1) farlo impostare all'utente, e magari salvarlo in un file di configurazione
2) modificare a programma la configurazione di Printer, ma per questo ovviamente devi conoscere tutti i parametri da inserire

Riguardo alla stampa, l'invio è uguale per uttto, ma riguardo ai codici a barre devi affidarti alla doc della stampante in questione.

Per la stampante, moltissimi anni fà avevo fatto un progetto con il Clipper, ma non ricordo che tipo era, e comunque oggi ce ne sono svariate altre, e forse anche più semplici da gestire...

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: stampare etichette
« Risposta #2 il: 02 Dicembre 2010, 10:45:15 »
Noi in ditta usiamo le stampanti per etichette Zebra. Si collegano via seriale ed usano un particolare linguaggio che si chiama, se non ricordo male, ZTL.

La gestione del codice a barre viene gestita direttamente dalla stampante.

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: stampare etichette
« Risposta #3 il: 02 Dicembre 2010, 10:47:06 »
Cmq la stampa con Gambas (almeno con G2) è un po' ostica.
Io ho risolto facendo preparare il documento da stampare a Gambas ma facendolo poi inviare in stampa tramite il comando "lpr" con il quale puoi anche impostare una stampante differente da quella di default.

Se cerchi nelle vecchie discussioni, trovi qualcosa.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline perseo

  • Maestro Gambero
  • ****
  • Post: 264
    • Mostra profilo
Re: stampare etichette
« Risposta #4 il: 02 Dicembre 2010, 11:26:41 »
Il thread interessa tantissimo anche me...

Ti riporto la mia personalissima esperienza per la creazione di etichette (nel mio vecchio gestionale in VB, quindi Winzoz), che sto cercando di adattare anche in Gambas.

In ufficio (ancora ambiente Winzoz, spero non per molto ancora) usiamo la stampante normale, e dei fogli A4 standard con numero fisso di etichette, tipo questi...

Quando stampiamo le nuove etichette, per non sprecare le etichette dei fogli già utilizzati, creai una configurazione del foglio di stampa attraverso la quale inserivo il numero progressivo di etichetta da cui ricominciare la stampa. In questo modo non sprechiamo nessuna etichetta.

In gambas credo che la ragionerò memorizzando tale numero progressivo in una variabile del gb.setting, in cui inserirò il numero progressivo successivo all'ultima etichetta stampata. Fatto questo poi rimane solo (si fa per dire) di creare il/i foglio/i con tutte le etichette da stampare...
Per il momento sono ancora indaffarato con la struttura di base, ma appena comincerò la creazione dei report di stampa ti aggiorno sull'evoluzione.

Per il codice a barre e per la stampa in genere sono anch'io in attesa di risposte.  :)

PS. è sicuramente da valutare il consiglio di milio, di lasciar fare tutto ad un'apposita stampante per le etichette. E' da valutare il costo della stampante, di consumo, e delle etichette.

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: stampare etichette
« Risposta #5 il: 02 Dicembre 2010, 13:22:04 »
Citazione
3) come faccio da gambas ad indirizzare la stampa sulla stampante per etichette e non su quella di default?
Per impostare la stampante io ho usato (circa adesso non ricordo)questo codice che trovi in questa discussione, adesso non ho gambas sottomano :evil:
http://www.gambas-it.org/smf/index.php?topic=944.0

Offline perseo

  • Maestro Gambero
  • ****
  • Post: 264
    • Mostra profilo
Re: stampare etichette
« Risposta #6 il: 02 Dicembre 2010, 14:51:40 »
Comunque, se usi la classe Printer di gambas (io l'ho provato per la versione 3) esiste il metodo Configure... che apre la form_Dialog classica delle stampanti, da cui puoi scegliere o settare una delle stampanti installate nel PC. Come ti dicevo mi sono interessato solo sommariamente, ma credo tu possa impostarne a priori anche una predefinita (ma su questo non ci giurerei).

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re: stampare etichette
« Risposta #7 il: 02 Dicembre 2010, 16:57:58 »
Ciao, anche nella ditta in cui lavoro io utilizziamo le stampanti zebra.
Come già detto da Milio, le stampanti hanno un linguaggio tutto loro per la stampa, infatti sul pc vanno installate come generic text only e poi gli invi una stampa con delle stringhe
generate ad hoc, sarà poi la stampante a fare il resto.
Il post linkato da Golia è una mia vecchia richiesta e funziona benissimo per recuperare le stampanti installate e quella predefinita.
Cmq nel tuo caso, se sai già il nome della stampante a cui devi inviare la stampa, pui utilizzare da shell il comando lpr -P nome_stampante.
Ciao.

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: stampare etichette
« Risposta #8 il: 02 Dicembre 2010, 21:48:31 »
grazie a tutti per le risposte

interessanti le zebra, mi metto a cercare in rete.

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: stampare etichette
« Risposta #9 il: 02 Dicembre 2010, 22:07:12 »
@perseo:
ehm... qui siamo sulla sezione G2  ;)

Cmq il dialog di G2 sulle vecchie versioni non funzionava per cui tu potevi scegliere certi dati con cui, poi, configurare l'oggetto Printer. Però, Gambas, di ciò non teneva conto... ad esempio il numero di pagine o la stampante...  :-\
Quindi io usavo il dialogo solo per recuperare il nome della stampante scelta dall'utente che poi davo in pasto a "lpr" tramite terminale.

Visita il mio sito personale: http://www.leonardomiliani.com

Offline perseo

  • Maestro Gambero
  • ****
  • Post: 264
    • Mostra profilo
Re: stampare etichette
« Risposta #10 il: 02 Dicembre 2010, 22:35:26 »
Hai ragione Leo,
questa è la sezione dedicata alla G2. Hai fatto bene ad avvisarmi.  :-[

Per i metodi di stampa spero che possiate darmi qualche buon consiglio anche nei post della sezione G3. :)
« Ultima modifica: 02 Dicembre 2010, 22:37:59 da perseo »

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: stampare etichette
« Risposta #11 il: 02 Dicembre 2010, 22:36:16 »
@ Md e Golia

che voi sappiate Pdfwriter accetta solo questi formati?
Citazione
SELECT CASE Lower(form)
  CASE "a3"
    $fwPt = 841.89
    $fhPt = 1190.55
  CASE "a4"
    $fwPt = 595.28
    $fhPt = 841.89
  CASE "a5"
    $fwPt = 420.94
    $fhPt = 595.28
  CASE "letter"
    $fwPt = 612
    $fhPt = 792
  CASE "legal"
    $fwPt = 612
    $fhPt = 1008
  DEFAULT
    Error.Raise("Unknown page format: " & form)
  END SELECT

volendo inserirne uno personalizzato?

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: stampare etichette
« Risposta #12 il: 02 Dicembre 2010, 22:56:33 »
Forse dico una grande fesseria, ma penso che basta che aggiungi il formato che serve a te, aggiungendo un CASE proprio nel codice che hai incollato con le misure che ti servono.
Prova!

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: stampare etichette
« Risposta #13 il: 02 Dicembre 2010, 23:05:29 »
gia fatto e funziona

Citazione
SELECT CASE Lower(form)
  CASE "a3"
    $fwPt = 841.89
    $fhPt = 1190.55
  CASE "a4"
    $fwPt = 595.28
    $fhPt = 841.89
  CASE "a5"
    $fwPt = 420.94
    $fhPt = 595.28
  CASE "letter"
    $fwPt = 612
    $fhPt = 792
  CASE "legal"
    $fwPt = 612
    $fhPt = 1008
  CASE "pers"
    $fwPt = 226.8 '8 cm
    $fhPt = 141.75  '5 cm
  DEFAULT
    Error.Raise("Unknown page format: " & form)
  END SELECT

in pratica si può inserire qualsiasi formato o etichetta
Pdfwriter ha dell'incredibile  :o

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: stampare etichette
« Risposta #14 il: 02 Dicembre 2010, 23:28:56 »
Bene  :2birre: PdfWriter è andato a segno ancora  :2birre: