VB.NET : stampa su epson lpt1 senza driver

giovedì 12 luglio 2012 - 21.33
Tag Elenco Tags  VB.NET  |  .NET 2.0  |  .NET 3.0  |  Windows XP  |  Visual Studio 2008  |  SQL Server 2008 R2

MasterX Profilo | Newbie

salve, ho dal cliente una epson tm 220 ; dovrei mandare in stampa alcune righe
ho sentito di comandi escape, ma girando su internet non ci ho capito tanto. come fareste voi a stampare senza driver?

grazie

Vinsent Profilo | Senior Member

Io ho esperienza su stampanti ZPL(zebra programming language) compatibili, le utilizzo con il driver stampanti "generic/text only" e qualche riga di codice usando "PrintDocument".
Con lo ZPL i comandi e il testo sono una cosa sola infatti basta scrivere il codice su un file txt e stamparlo...quindi in VB per stampare dati "raw" faccio così:
Imports System.Drawing.Printing Public Class Form1 Dim stampante As String Private Sub Form1_Load() Handles MyBase.Load 'ottiene le stampanti For i As Integer = 0 To PrinterSettings.InstalledPrinters.Count - 1 ComboBox1.Items.Add(PrinterSettings.InstalledPrinters.Item(i)) Next TextBox1.Text = _ "stampa di prova" & vbCrLf & _ "riga 1" & vbCrLf & _ "riga 2" End Sub Private Sub Button1_Click() Handles Button1.Click 'imposto la stampante PrintDocument1.PrinterSettings.PrinterName = ComboBox1.SelectedItem 'chiamo l' evento per la stampa PrintDocument1.Print() End Sub Private Sub PrintDocument1_PrintPage(sender As System.Object, _ e As System.Drawing.Printing.PrintPageEventArgs) _ Handles PrintDocument1.PrintPage 'e.Graphics.DrawString(testo, font, colore, posizione) e.Graphics.DrawString(TextBox1.Text, SystemFonts.DefaultFont, Brushes.Black, 0, 0) End Sub End Class
Il codice sopra lo trovi nel progetto che ho allegato in questa discussione:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=35320
puoi iniziare a provare con il progetto per vedere se riesci a stampare qualcosa...
Per la tua epson ho fatto una ricerca per curiosità mia e per capire cosa sono i "comandi escape"...vengono chiamati ESC/P, da quello che ho inteso dovresti inviare il tasto "esc" + "comando" quindi la stringa da inviare alla stampante sarebbe ad esempio:
'chr(27) = tasto esc Dim a As String = Chr(27) & "comando"
Sempre che inviare i comandi escape con il codice sopra funzioni...non ho idea se puoi integrare direttamente i comandi escape nella stringa da stampare o se bisogna inviarli separatamente...devi fare delle prove...al limite si può provare con un metodo compatibile con il VB6.
Link trovati durante la mia ricerca che penso possano esserti utili:
http://en.wikipedia.org/wiki/ESC/P
http://www.posguys.com/download/TM-U220/TMU220_TRG_RevD.pdf
http://www.bigresource.com/VB-Printig-Epson-printer-ESC-P-Lv0W4QYXse.html
http://msdn.microsoft.com/en-us/library/aa771694(v=bts.10).aspx
Le 400 pagine sull' ESC/P del manuale linkato su wikipedia devi ciucciartele tu......io non ho ancora "consumato" le 400 dello ZPL...
Spero che quanto sopra ti sia utile.




Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5