Autore Topic: stampare etichette  (Letto 7348 volte)

Offline perseo

  • Maestro Gambero
  • ****
  • Post: 264
    • Mostra profilo
Re: stampare etichette
« Risposta #30 il: 08 Dicembre 2010, 02:12:17 »
Dex... il Code39 lo legge perfettamente!
Il problema è che per i miei ID (di 8 numeri) il Code39 genera un codice a barre troppo lungo per le dimensioni delle mie etichette.

Invece il code.i25, per l'utilizzo che ne faccio, è perfetto. Puoi inserire codici numerici di massimo 8 caratteri (e quindi mi casca a pennello).
Come hai giustamente evidenziato con le lettere va in errore.



Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: stampare etichette
« Risposta #31 il: 09 Dicembre 2010, 10:49:24 »
Riguardo alla "mano" ben venga tutto l'aiuto possibile.

Se avete suggerimenti su PdfWriter, o modifiche e aggiustamenti sul codice, ben venga veramente!

Al massimo che posso fare, è controllare che le modifiche non vadano ad impattare negativamente con il resto della libreria, ma a parte questo le posso inserire nei sorgenti ufficiali che distribuisco su sourceforge.net.

Inoltre, se gradito, fatemi avere i nomi di chi aiuta nel progetto, così da inserirlo nel ChangeLog...

P.S.: la libreria FPDF originale è un bel progetto. il mio è stato solo un contributo di traduzione,,,

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: stampare etichette
« Risposta #32 il: 11 Dicembre 2010, 10:51:43 »
Ce l'ho fatta! Ho risolto sul formato code.i25!  :ok:

Ho confrontato il codice a barre generato sull'esempio in php nel sito fpdf.org... e quello generato da Gambas... Li ho stampati e confrontati... quello di gambas è l'esatto negativo di quello in php, infatti il mio lettore laser quest'ultimo lo riconosceva, mentre il codice a barre generato da gambas no.

Nella figura ho usato il numero "12345678" in .i25. Il codice a barre superiore è generato in php, quello sotto era quello di gambas.

Quindi sono andato a vedere il codice della classe PdfWriter, e nonostante io non conosca il php mi pare che MD abbia fatta la traduzione esatta, ma tant'è che se cambiate la riga 2854 della classe PdfWriter da così:

Codice: gambas [Seleziona]
If (bar Mod 2 = 0) Then Me.Rect(xpos, ypos, lineWidth, height, "F")


a così:
Codice: gambas [Seleziona]
If (bar Mod 2 <> 0) Then Me.Rect(xpos, ypos, lineWidth, height, "F")


Il codice a barre generato è perfetto e non mi da più problemi di riconoscimento.

Credo che il codice di programmazione per generare EAN13 abbia problemi simili, perché anche in lì confrontando le stampe ci sono delle leggere discordanze tra le barre (quelle in mezzo).

PS. non è tardi... di più!!! E domattina sveglia alle 7... Però vado a dormire soddisfatto. Ce l'abbiamo fatta!  ;)

Oggi stavo facendo dei controlli sulla tua analisi, ma mi sono imbattuto in parecchi problemi, relativamente all'individuazione del codice da te segnalato.
Tenendo presente che, al momento, la versione ufficiale è la 0.0.4, che puoi trovare su sourceforge.net, le righe a cui fai riferimento non corrispondono affatto.

Comunque, analizzando il metodo i25() ho notato che la stampa avviene perfettamente uguale a quella php, senza alcuna modifica.

Come, però, detto nel mio post precedente, spero tu abbia lavorato con la versione ufficiale, altrimenti facciamo notte a capirci qualcosa, a meno che non mi indichi esattamente quale metodo/funzione hai analizzato.
« Ultima modifica: 11 Dicembre 2010, 10:55:57 da md9327 »

Offline perseo

  • Maestro Gambero
  • ****
  • Post: 264
    • Mostra profilo
Re: stampare etichette
« Risposta #33 il: 11 Dicembre 2010, 17:35:52 »
Per scrupolo ho utilizzato sia la tua versione (quella in gambas2) sia quella riadattata dal duo Golia(Elia  ;D ) / milio (in gambas3).
La tua versione, la 0.0.4, l'avevo scaricata dai repo ufficiali di sourceforge, mentre l'altra, quella di g3 l'ho presa qui sul sito (nel post su PDF Writer di Golia).

Stesse identiche incongruenze. Però posso riscaricarli di nuovo e riprovare. Non vorrei aver sollevato un polverone per nulla...
Anzi, per evitare qualsiasi fonte di errore perché non alleghi la tua versione (sia di g2, che di g3 se la hai)? :)

[edit]
Intanto ho scaricato di nuovo la tua versione 0.0.4 e funziona perfettamente!

Sto cercando di capire cosa è successo... Perché, quella che avevo io non andava.
[/edit]

[edit2]
Anche la versione di g3 di Golia/milio... funziona perfettamente.

A questo punto mi chiedo cosa sia potuto succedere... Voglio approfondire e mi scuso per l'allarmismo suscitato!  :-[
[/edit2]

[edit3]
MD, ho ricontrollato ancora una volta...

Ho fatto anche un confronto dei testi con MELD, ed i cambiamenti tra quelli scaricati dai repo ed il codice che ho usato io sono proprio quelli del segno <> anziché l' =... Ho verificato anche un confronto con il codice di Golia/milio.

Poi sono tornato nella pagina php... dove c'è lo script di esempio. Ed ho rivisto il codice generato dalla versione ufficiale 0.0.4 appena scaricata... e (relativamente al codice i25) uno è il negativo dell'altro.
Infatti stampando i codici a barre i25 generati dalla tua versione e da quella di Golia/milio... il lettore non li rileva.
Mentre se stampo quello in php o quello con la mia modifica (che sono i negativi degli altri due) allora il lettore li legge.
Puoi allegare il pdf con il codice generato i25 sulla stringa "12345678" (che trovi a pag.20 del test) della tua versione? A me restituisce l'esatto negativo di quello generato in php...  :-\
[/edit3]

PS. prima ho scritto funziona perfettamente senza essere riandato a vedere il codice generato in php... Quando ho messo le immagini di confronto ho invertiti i disegni, il codice del php è quello sotto, mentre quello in gambas_vostra_versione è quello superiore (scusa ma erano le 2:30 di notte...  :-[ ). Quindi in realtà quello corretto è quello sotto.

Per capirci... questo è il link del php codice generato in php:
http://www.fpdf.org/en/script/ex67.pdf

(preso da sito ufficiale: http://www.fpdf.org/ )

PPS. perdonami tutti questi giri di parole e frasi, ma non riesco a spiegarmi meglio, E' davvero un difficile... :)
« Ultima modifica: 11 Dicembre 2010, 19:06:36 da perseo »