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:
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
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
Prova a ridurre i font, e/o a calcolarti la posizione della riga successiva.
Scusate ragazzi,
io ho un problema con il riconoscimento del Barcode (EAN13) di PDFWriter...
Lo stampo (anche in BEST Quality) ma non ne vuol sapere di riconoscerlo.
Stessa stampante, sempre EAN13, stesso numero di codice... generato e stampato con BarCode0.0.7 me lo riconosce.
Ho confrontato i due disegni creati per lo stesso numero, 8711577011208, sia da PdfWriter che da BarCode0.0.7, e mi sembra che siano quasi simili... con la differenza che quello di PDFWriter disegna in mezzo alcune righe differenti da quell'altro.
PS. ho stampati i BarCode del programma Test di PdfWriter (gli esempi che ha fatti MD) ed il barcode-reader non riconosce neppure quelli... ???
If (bar Mod 2 = 0) Then Me.Rect(xpos, ypos, lineWidth, height, "F")If (bar Mod 2 <> 0) Then Me.Rect(xpos, ypos, lineWidth, height, "F")PRIVATE SUB DrawBarcode($code AS String, $x AS Float, $y AS Float, $h AS Float, $w AS Float)
DIM i, j AS Integer = 0
DIM l AS Boolean = FALSE
$code = $code & "!" ' <--- è finita la stringa
FOR i = 1 TO (Len($code) - 1)
IF (Mid($code, i, 1) = "1") THEN
IF (Mid($code, i + 1, 1) = "!") OR (Mid($code, i + 1, 1) = "0") THEN
'stampa il rettangolo
ME.Rect($x + (i - 1 - j) * $w, $y, $w + j * $w, $h, "F")
'PRINT i, Mid($code, i, 1), "Stampa " & j
ELSE
INC j
'PRINT i, Mid($code, i, 1), "Incrementa j"
ENDIF
ELSE
j = 0
'PRINT i, Mid($code, i, 1), "Si sposta"
ENDIF
NEXT
ENDMD...
dagli una controllata. Questa dovrebbe essere la SUB che raggruppa i rettangoli contigui neri, per generare un barcode più omogeneo.Codice: gambas [Seleziona]PRIVATE SUB DrawBarcode($code AS String, $x AS Float, $y AS Float, $h AS Float, $w AS Float)
DIM i, j AS Integer = 0
DIM l AS Boolean = FALSE
$code = $code & "!" ' <--- è finita la stringa
FOR i = 1 TO (Len($code) - 1)
IF (Mid($code, i, 1) = "1") THEN
IF (Mid($code, i + 1, 1) = "!") OR (Mid($code, i + 1, 1) = "0") THEN
'stampa il rettangolo
ME.Rect($x + (i - 1 - j) * $w, $y, $w + j * $w, $h, "F")
'PRINT i, Mid($code, i, 1), "Stampa " & j
ELSE
INC j
'PRINT i, Mid($code, i, 1), "Incrementa j"
ENDIF
ELSE
j = 0
'PRINT i, Mid($code, i, 1), "Si sposta"
ENDIF
NEXT
END
Il codice è sempre ancora sbagliato... però intanto abbiamo migliorato la parte a stampa... ;D
Nella parte superiore il codice generato con l'aggiunta di questa SUB, sotto senza la SUB...
PS. PdfWriter è fantastico!
Ho deciso però di non utilizzare troppo le "cell", ma di disegnarmi direttamente ogni elemento di ogni report alla volta (attraverso i cicli... chiaramente). Sarà una soluzione meno sbrigativa, ma almeno ho il pieno controllo di ogni tassello. Poi, appena sono pronti, metto alcuni allegati. grazie ancora per il lavorone di trascrizione! :)
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.
(http://img213.imageshack.us/img213/6899/i25.png)
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! ;)