Italian stampare immagine con ESC/POS

mario53

Member
Licensed User
da un po' di tempo che cerco di stampare delle immagini su una stampante termica (esc/pos) ne ho a disposizione di tre marche.
unbenannt-jpg.53390

bixolom 350
epson
Riesco a collegarmi perfettamente con tutte via USB riesco a stampare ogni forma di testo. Quando provo a stampare immagini con i vari esempi che trovo su questo forum, stampo solo stringhe incomprensibili.
qualcuno ha avuto problemi simili, o esempi da postare
grazie
 

mario53

Member
Licensed User
Sub PrintReceipt
DateTime.DateFormat = "dd-MMM-yyyy"
DateTime.TimeFormat = "HH:mm:ss"

Dim imagem As Bitmap, x As Int, y As Int
imagem = LoadBitmap(File.DirAssets, "testebmp3.bmp")

Dim out As OutputStream
out.InitializeToBytesArray(0)
out.WriteBytes(Array As Byte(0x1D),0,1) 'GS
out.WriteBytes(Array As Byte(0x2A),0,1) '*
out.WriteBytes(Array As Byte(imagem.Width/8),0,1)
out.WriteBytes(Array As Byte(imagem.Height),0,1)

Dim bits As String
Dim p() As Int
p = getPixels(imagem, 0, imagem.Width, 0, 0, imagem.Width, imagem.Height)
For x = 0 To p.Length-1
If p(x) = -1 Then bits = bits & "0" Else bits = bits & "1"
If bits.Length = 8 Then
out.WriteBytes(Array As Byte(RetBytePOS(bits)),0,1)
bits = ""
End If
Next
astreams1.Write(Array As Byte(0x1D, 0x2A, 0, 0))
astreams1.Write(out.ToBytesArray)
astreams1.Write(Array As Byte(0x1D, Asc("/"), 0))
End Sub
 

mario53

Member
Licensed User
questa e' la sub della stringa di stampa
in stampa vedo tutte seguenze con caratteri senza senso
dov'e' l'errore?
grazie
 

Star-Dust

Expert
Licensed User
Longtime User
Sul forum troverai una libreria per stampare pos via usb.
 

mario53

Member
Licensed User
grazie Star-Dust per il link(questa libreria sembra molto semplice) ma con queste istruzioni non riesco a collegarmi alla stampante ricevo questo errore:
java.lang.exception: java.lang.arrayindexoutboundsexception: lenght=8;index=8 a questa istruzione:
Dim vid As Int
Dim pid As Int
vId= 0xFE6
pId=0x811E
pt.connectusb2(vid,pid) 'HERE IS YOU DEVICE VendorID AND productID"

mentre con il metodo usb-serial riesco (solo per testi) a collegarmi:https://www.b4x.com/android/forum/threads/astreams-write-to-print.82429/

qualche idea?
 

Star-Dust

Expert
Licensed User
Longtime User
Hai chiesto allo sviluppatore della libreria?
 

mario53

Member
Licensed User
no
se non sbaglio lo sviluppatore e' hears (non so se e' italiano)
io ho esteso il problema nel forum internazionale
e' sufficiente?
 

Star-Dust

Expert
Licensed User
Longtime User
no
se non sbaglio lo sviluppatore e' hears (non so se e' italiano)
io ho esteso il problema nel forum internazionale
e' sufficiente?
Potrebbe essere sufficiente, in ogni caso puoi scrivere nel thread della libreria e lo sviluppatore/trice ti risponderà
 

sirjo66

Well-Known Member
Licensed User
Longtime User
ma perchè prima usi l'oggetto out mentre poi usi l'oggetto astreams1 ??
 

luciano deri

Active Member
Licensed User
Longtime User
Non credo sia la strada migliore, rischi di dover fare codici specifici per modelli di stampanti diverse. Zebra pubblica applicazioni diverse per i vari modelli di stampanti, figurati cambiando marchio.
La maggior parte delle stampanti riescono a stampare una immagine, potresti preparare l'immagine dello scontrino e salvarlo in un file png, e più facilmente stampare l'immagine con una unica istruzione piuttosto che passare tutte righe. Alcune Stampanti mettono a disposizione delle buone app, potresti accedere alla stampante ed avviare la stampa tramite la app del produttore, in questo modo amplifichi la compatibilità della tua app.
La qualità della stampa risultante non è necessariamente peggiore di quella che otterresti passando le righe di caratteri.
 

mario53

Member
Licensed User
non e' un problema di qualita' ne di codici, ma mi sembra assurdo che si trovano decine di metodi per stampare un'immagine li ho provati piu' o meno tutti e nessun metodo riesce a stampare. e' diventato una questione di didattica forse sbaglio ma qualcuno ci sara' riuscito. come gia' detto io ho 3/4 stampanti e con nessuna riesco a stampare.
chiedo lumi:(:(o_O
 
Top