Imprimir una imagen a impresora termicas.

02/06/2009 - 18:04 por Slow Nieto | Informe spam
Buenos dias a todos,

Estoy tratando de mandar imprimir una imagen (Logo) a una impresora termica.
Revisando documentacion en internet existen dos maneras:
La primera: Es mandar y grabar el logo en la impresora termica, lo que
implica es debes de tener un cable DB9 para cada impresora para cada tipo de
conexion (DB9 - RJ45, DB9 - DB9).
La segunda: Existe una opcion de mandar imprimir con una funcion llamada
IMAGEBYTEARRAY(),

Tienen alguna idea de estos dos conceptos.

De antemano gracias a todos.

Preguntas similare

Leer las respuestas

#1 Hector Astocaza
19/06/2009 - 20:25 | Informe spam
creo que tengo lo que quieres en otro foro habia un ejemplo como
imprimir ticket en C# me baje el codigo fuente ejemplo Clase para
imprimir tickets, C# .NET donde puede insertar imagen el datalle no
encuentro el codigo q me baje por que donde me lo baje ya borraron el
post pero si tengo la libreria ticket e baje dos cosas :

1- proyector codigo fuente C# tikect
2.-libreria ticket.dll
y guarda la pagina de como se usa la libreria osea el manual y tb esa
misma pagiuna q me baje lo traduceron la clase a vb.net dejame buscar
mis archivo del codigo fuente ticket y lo subo en un setvidor para
compartirlo a esta en c# VS2008
Respuesta Responder a este mensaje
#2 Hector Astocaza
19/06/2009 - 20:36 | Informe spam
jejeja lo encontre en el cache de google felizmente ahora si gusta
hagan esto haber entre a gogle y busquen :

ticket C# en la primer resultado que te da google aparece esto enlace
web:

www.foromsn.com/index.php?Ver...Id...,(ojo dale click pero donde dice
EN CACHE ) por q el post hasido borrado pero google aun lo tiene es su
servidor guardo una copia... suerte ahi esta todo revisa la pagina y
aparece enlace del codigo fuente y la libreria compilada puede usar
cualquiera de los pq en esa pagina te dice como usarla espero que les
sea muy util

Ousing System;
using System.Drawing;
using System.Drawing.Printing;
using System.Collections;

namespace BarControls
{
public class Ticket
{
ArrayList headerLines = new ArrayList();
ArrayList subHeaderLines = new ArrayList();
ArrayList items = new ArrayList();
ArrayList totales = new ArrayList();
ArrayList footerLines = new ArrayList();
private Image headerImage = null;

int count = 0;

int maxChar = 35;
int maxCharDescription = 20;

int imageHeight = 0;

float leftMargin = 0;
float topMargin = 3;

string fontName = "Lucida Console";
int fontSize = 9;

Font printFont = null;
SolidBrush myBrush = new SolidBrush(Color.Black);

Graphics gfx = null;

string line = null;

public Ticket()
{

}

public Image HeaderImage
{
get { return headerImage; }
set { if (headerImage != value) headerImage = value; }
}

public int MaxChar
{
get { return maxChar; }
set { if (value != maxChar) maxChar = value; }
}

public int MaxCharDescription
{
get { return maxCharDescription; }
set { if (value != maxCharDescription) maxCharDescription
= value; }
}

public int FontSize
{
get { return fontSize; }
set { if (value != fontSize) fontSize = value; }
}

public string FontName
{
get { return fontName; }
set { if (value != fontName) fontName = value; }
}

public void AddHeaderLine(string line)
{
headerLines.Add(line);
}

public void AddSubHeaderLine(string line)
{
subHeaderLines.Add(line);
}

public void AddItem(string cantidad,string item, string price)
{
OrderItem newItem = new OrderItem('?');
items.Add(newItem.GenerateItem(cantidad,item, price));
}

public void AddTotal(string name,string price)
{
OrderTotal newTotal = new OrderTotal('?');
totales.Add(newTotal.GenerateTotal(name, price));
}

public void AddFooterLine(string line)
{
footerLines.Add(line);
}

private string AlignRightText(int lenght)
{
string espacios = "";
int spaces = maxChar - lenght;
for (int x = 0; x < spaces; x++)
espacios += " ";
return espacios;
}

private string DottedLine()
{
string dotted = "";
for (int x = 0; x < maxChar; x++)
dotted += "=";
return dotted;
}

public bool PrinterExists(string impresora)
{
foreach (String strPrinter in
PrinterSettings.InstalledPrinters)
{
if (impresora == strPrinter)
return true;
}
return false;
}

public void PrintTicket(string impresora)
{
printFont = new Font(fontName, fontSize,
FontStyle.Regular);
PrintDocument pr = new PrintDocument();
pr.PrinterSettings.PrinterName = impresora;
pr.PrintPage += new PrintPageEventHandler(pr_PrintPage);
pr.Print();
}

private void pr_PrintPage(object sender,
System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.PageUnit = GraphicsUnit.Millimeter;
gfx = e.Graphics;

DrawImage();
DrawHeader();
DrawSubHeader();
DrawItems();
DrawTotales();
DrawFooter();

if (headerImage != null)
{
HeaderImage.Dispose();
headerImage.Dispose();
}
}

private float YPosition()
{
return topMargin + (count * printFont.GetHeight(gfx) +
imageHeight);
}

private void DrawImage()
{
if (headerImage != null)
{
try
{
gfx.DrawImage(headerImage, new Point((int)
leftMargin, (int)YPosition()));
double height = ((double)headerImage.Height / 58)
* 15;
imageHeight = (int)Math.Round(height) + 3;
}
catch (Exception)
{
}
}
}

private void DrawHeader()
{
foreach(string header in headerLines)
{
if (header.Length > maxChar)
{
int currentChar = 0;
int headerLenght = header.Length;

while (headerLenght > maxChar)
{
line = header.Substring(currentChar, maxChar);
gfx.DrawString(line, printFont, myBrush,
leftMargin,YPosition(), new StringFormat());

count++;
currentChar += maxChar;
headerLenght -= maxChar;
}
line = header;
gfx.DrawString(line.Substring(currentChar,
line.Length - currentChar), printFont, myBrush, leftMargin,YPosition
(), new StringFormat());
count++;
}
else
{
line = header;
gfx.DrawString(line, printFont, myBrush,
leftMargin, YPosition(), new StringFormat());

count++;
}
}
DrawEspacio();
}

private void DrawSubHeader()
{
foreach (string subHeader in subHeaderLines)
{
if (subHeader.Length > maxChar)
{
int currentChar = 0;
int subHeaderLenght = subHeader.Length;

while (subHeaderLenght > maxChar)
{
line = subHeader;
gfx.DrawString(line.Substring(currentChar,
maxChar), printFont, myBrush, leftMargin,YPosition(), new StringFormat
());

count++;
currentChar += maxChar;
subHeaderLenght -= maxChar;
}
line = subHeader;
gfx.DrawString(line.Substring(currentChar,
line.Length - currentChar), printFont, myBrush, leftMargin, YPosition
(), new StringFormat());
count++;
}
else
{
line = subHeader;

gfx.DrawString(line, printFont, myBrush,
leftMargin,YPosition(), new StringFormat());

count++;

line = DottedLine();

gfx.DrawString(line, printFont, myBrush,
leftMargin, YPosition(), new StringFormat());

count++;
}
}
DrawEspacio();
}

private void DrawItems()
{
OrderItem ordIt = new OrderItem('?');

gfx.DrawString("CANT DESCRIPCION IMPORTE",
printFont, myBrush, leftMargin, YPosition(), new StringFormat());

count++;
DrawEspacio();

foreach (string item in items)
{
line = ordIt.GetItemCantidad(item);

gfx.DrawString(line, printFont, myBrush, leftMargin,
YPosition(), new StringFormat());

line = ordIt.GetItemPrice(item);
line = AlignRightText(line.Length) + line;

gfx.DrawString(line, printFont, myBrush, leftMargin,
YPosition(), new StringFormat());

string name = ordIt.GetItemName(item);

leftMargin = 0;
if (name.Length > maxCharDescription)
{
int currentChar = 0;
int itemLenght = name.Length;

while (itemLenght > maxCharDescription)
{
line = ordIt.GetItemName(item);
gfx.DrawString(" " + line.Substring
(currentChar, maxCharDescription), printFont, myBrush, leftMargin,
YPosition(), new StringFormat());

count++;
currentChar += maxCharDescription;
itemLenght -= maxCharDescription;
}

line = ordIt.GetItemName(item);
gfx.DrawString(" " + line.Substring
(currentChar, line.Length - currentChar), printFont, myBrush,
leftMargin, YPosition(), new StringFormat());
count++;
}
else
{
gfx.DrawString(" " + ordIt.GetItemName(item),
printFont, myBrush, leftMargin, YPosition(), new StringFormat());

count++;
}
}

leftMargin = 0;
DrawEspacio();
line = DottedLine();

gfx.DrawString(line, printFont, myBrush, leftMargin,
YPosition(), new StringFormat());

count++;
DrawEspacio();
}

private void DrawTotales()
{
OrderTotal ordTot = new OrderTotal('?');

foreach (string total in totales)
{
line =ordTot.GetTotalCantidad(total);
line = AlignRightText(line.Length) + line;

gfx.DrawString(line, printFont, myBrush, leftMargin,
YPosition(), new StringFormat());
leftMargin = 0;

line = " "+ordTot.GetTotalName(total);
gfx.DrawString(line, printFont, myBrush, leftMargin,
YPosition(), new StringFormat());
count++;
}
leftMargin = 0;
DrawEspacio();
DrawEspacio();
}

private void DrawFooter()
{
foreach (string footer in footerLines)
{
if (footer.Length > maxChar)
{
int currentChar = 0;
int footerLenght = footer.Length;

while (footerLenght > maxChar)
{
line = footer;
gfx.DrawString(line.Substring(currentChar,
maxChar), printFont, myBrush, leftMargin, YPosition(), new StringFormat
());

count++;
currentChar += maxChar;
footerLenght -= maxChar;
}
line = footer;
gfx.DrawString(line.Substring(currentChar,
line.Length - currentChar), printFont, myBrush, leftMargin, YPosition
(), new StringFormat());
count++;
}
else
{
line = footer;
gfx.DrawString(line, printFont, myBrush,
leftMargin, YPosition(), new StringFormat());

count++;
}
}
leftMargin = 0;
DrawEspacio();
}

private void DrawEspacio()
{
line = "";

gfx.DrawString(line, printFont, myBrush, leftMargin,
YPosition(), new StringFormat());

count++;
}
}

public class OrderItem
{
char[] delimitador = new char[] { '?' };

public OrderItem(char delimit)
{
delimitador = new char[] {delimit };
}

public string GetItemCantidad(string orderItem)
{
string [] delimitado = orderItem.Split(delimitador);
return delimitado[0];
}

public string GetItemName(string orderItem)
{
string [] delimitado = orderItem.Split(delimitador);
return delimitado[1];
}

public string GetItemPrice(string orderItem)
{
string[] delimitado = orderItem.Split(delimitador);
return delimitado[2];
}

public string GenerateItem(string cantidad, string itemName,
string price)
{
return cantidad + delimitador[0] + itemName + delimitador
[0] + price;
}
}

public class OrderTotal
{
char[] delimitador = new char[] { '?' };

public OrderTotal(char delimit)
{
delimitador = new char[] { delimit };
}

public string GetTotalName(string totalItem)
{
string[] delimitado = totalItem.Split(delimitador);
return delimitado[0];
}

public string GetTotalCantidad(string totalItem)
{
string[] delimitado = totalItem.Split(delimitador);
return delimitado[1];
}

public string GenerateTotal(string totalName, string price)
{
return totalName + delimitador[0] + price;
}
}
}
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida