Salve, ho sviluppato un programma per stampare le etichette con una stampante Zebra.
Nel mio programma seleziono il nome della stampante da usare e l'etichetta che voglio stampare (dalla quale estraggo il codice zpl).
Successivamente invio i dati alla stampante utilizzando la classe RawPrinterHelper che ho trovato in internet.
i comandi vengono inviati correttamente alla stampa, tuttavia la stampante mi stampa un'etichetta vuota,.
Quale potrebbe essere il problema?
Questo è il codice che ho scritto:
public partial class Form1 : Form
{
public string testo = "";
public string PrintName {
get { return cmbstampante.Text; }
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string stampanti;
for (int i = 0; i < PrinterSettings.InstalledPrinters.Count; i++)
{
stampanti = PrinterSettings.InstalledPrinters[i];
cmbstampante.Items.Add(stampanti);
}
}
private void btnfile_Click(object sender, EventArgs e)
{
string sorgente;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
sorgente = openFileDialog1.FileName;
}
else {
return;
}
System.IO.File.Copy(sorgente, "etichetta.txt", true);
txtfile.Text = sorgente;
}
private void btnstampa_Click(object sender, EventArgs e)
{
string nomestampante="";
//string testo = "";
Boolean trovato=false;
int cont = 1;
if (txtfile.Text == "" || cmbstampante.Text == "")
{
MessageBox.Show("Compilare tutti i campi");
}
else {
nomestampante = cmbstampante.Text;
testo = System.IO.File.ReadAllText("etichetta.txt");
MessageBox.Show(testo);
//RawPrinterHelper.SendStringToPrinter(nomestampante , testo);
do
{
if (testo.Substring(cont, 8) == "<codice>")
{
trovato = true;
}
else
{
cont += 1;
}
}
while (trovato == false && cont < testo.Length - 7);
if (trovato == true)
{
frmvariabili f2 = new frmvariabili();
f2.prova = PrintName;
f2.ShowDialog();
}
else
{
//MessageBox.Show("Errore");
RawPrinterHelper.SendStringToPrinter(nomestampante , testo);
}
}
}
}