Kitchen printer Epson TM 220 font

I’m confused…

Right now this does not look like you are taking advantage of most of the benefits of the HTML printer - notably non-monospace fonts.

Take a closer look at HTML of better yet “Document Printer” formatted ticket templates which should give you greater control over character formatting.

In my ticket template I don’t use <L><C><T><F> style commands (which I think work best in a monospace and ESC/POS environment.

For horizonal lines I use borders of tags in XAML Document format.

As @markjw pointed out in this post, HTML format isn’t really a thing… In reality, SambaPOS is taking a bunch of HTML looking tags and converting them as well as it can in to XAML FlowDocument (XPS) format, which is what is actually used to generate the output to send to the printer driver. By writing the template directly in XAML you will have the greatest level of control over the output.

Try using the following to get started and see if this XAML approach might work for you…

[LAYOUT]
<Section FontFamily="Calibri" FontSize="12" Margin="0" Padding="0" LineHeight="1" TextAlignment="Left">
	<Section>
		<Paragraph FontSize="30" TextAlignment="Center"><Bold>myShop</Bold></Paragraph>
	</Section>
	<Section BorderThickness="0,2,0,2" BorderBrush="Black" Padding="0,3,0,3">
		<Paragraph>This section has a border top and bottom</Paragraph>
	</Section>
	<Section>
		<Paragraph FontSize="15" Margin="0,0,0,15">Size 15 text. How long will this run until it starts to wrap on to the next line?</Paragraph>
		<Paragraph FontSize="20" Margin="0,0,0,15">Size 20 text. How long will this run until it starts to wrap on to the next line?</Paragraph>
		<Paragraph FontSize="25" Margin="0,0,0,15">Size 25 text. How long will this run until it starts to wrap on to the next line?</Paragraph>
		<Paragraph FontSize="30" Margin="0,0,0,15">Size 30 text. How long will this run until it starts to wrap on to the next line?</Paragraph>
	</Section>
</Section>

For me, this gives the following output…
image

Thats all well and good and fancy, but I do not know how to implement that into samba. I can make a template and copy and paste your code, but cant print it. It doesnt have the formatting I need in your example to do a ticket.

I see now there is a LOAD feature that can really help reset a template and has that HTML feature to maybe get me started on a new kitchen template. I will try that.

You need to set the printer type to “Document Printer” within printer settings, and then select the name of the printer to the correct name:
image
As far as I can tell, when using these XAML (and probably HTML) layouts the “Line Character Count” doesn’t seem to have any effect.

I tried a basic html ticket and did your suggested settings and it gives an error.

Capture4

If you are using the base html template then you should have the printer type set to html.

If you are using my xaml font size test then you should be using the document printer type.

Based on the error message above it looks like you are using the html template with a document printer (it is telling you it doesn’t underrated ‘div’ (which is not a tag that is using in an xaml document format template)

OK I got the error to go away, however on settle I had it opening the cash drawer on payment received and now it doesn’t do it.

It prints the xct code first on a tab, then the receipt.

XCT wont work with html setting, you would need to create two printers in samba one set to html and one epos but set name to the same printer.

Ok got that sorted out.

I have the ticket printer doing HTML great. It might even get better.

The kitchen printer, the Epson TM U220, I’d like it to look just as good and I’ve been messing around with the HTML, making a custom template.

It’s not as clean looking with the fonts.

Is this the printer or something I’m doing?

Here is mine for reference.

[LAYOUT]
-- General layout

{ENTITIES}


<div style="font-size:20px;font-weight:bold;text-align:center;font-family:'Calibri'">Subtotal: ${PLAIN TOTAL}</div>
<div style="font-size:20px;font-weight:bold;text-align:center;font-family:'Calibri'">Payment Type: {TICKET TAG:Payment Type}</div>
<F>-
<div style="font-size:25px;font-weight:bold;text-align:center;font-family:'Calibri'">KITCHEN TICKET #{TICKET NO}</div>
<F>=
<div style="font-size:13px;font-weight:bold;text-align:left;font-family:'Calibri'">
<table>
<tr>
<td width="25">Qty</td>
<td width="196">Item Desription</td>
</tr>
</table>
</div>
{ORDERS}
<F>
<F>
<F>=
<div style=font-size:15px;font-weight:bold;text-align:center;font-family:'Calibri'">
<table>
<tr>
<td width=80 align=center>{TICKET DATE}</td>
<td width=170 align=right>{TIME}</td>
</tr>
</table>
</div>
<div style=font-size:15px;font-weight:bold;text-align:left;font-family:'Calibri'">
</div>
<F>=

[DISCOUNTS]

[ORDERS GROUP:]

[ORDERS GROUP|GROUP TAG]
<div style="font-size:20px;font-weight:bold;text-align:left;font-family:'Calibri'">
<table>
<tr>
<td width="25">{QUANTITY}x</td>
<td width="196">{GROUP KEY}</td>
</tr>
</table>
</div>

[ORDERS FOOTER]
<F>-

[ORDERS:GROUP TAG=*]
<div style="font-size:18px;text-align:left;font-family:'Calibri'">
[='{PORTION}' == '' ? '<table><tr><td width="196">       {PRODUCT NAME}</td></tr></table>':'<table><tr><td width="196">        {PORTION} {PRODUCT NAME}</td></tr></table>']
</div>
{SORTED ORDER TAGS}

[ORDERS]
-- Default format for orders
<div style="font-size:19px;text-align:left;font-family:'Calibri'">
[='{PORTION}' == '' ? '<table><tr><td width="196">{QUANTITY}x    {PRODUCT NAME}</td></tr></table>':'<table><tr><td width="196">{QUANTITY}x    {PORTION} {PRODUCT NAME}</td></tr></table>']
</div>
{SORTED ORDER TAGS}


[ORDERS:Gift]
-- Format for gifted orders
<J00>{QUANTITY} {NAME}|**FREE ITEM**


[ORDERS:Void]
<div style="font-size:19px;text-align:left;font-family:'Calibri'">
[='{PORTION}' == '' ? '<table><tr><td width="196">{QUANTITY}x    {PRODUCT NAME} **VOID**</td></tr></table>':'<table><tr><td width="196">{QUANTITY}x    {PORTION} {PRODUCT NAME} **VOID**</td></tr></table>']
</div>
{SORTED ORDER TAGS}

[SORTED ORDER TAGS]
-- Format for order tags
<div style="font-size:17px;text-align:left;font-family:'Calibri'">
<table>
<tr>
[='{ORDER TAG NAME}' == 'Extra fee' ? '' : '<td width=272><b>            {ORDER TAG GROUP}</b>: {ORDER TAG NAME}</td>']
</tr>
</table>
</div>

[SORTED ORDER TAGS:Toppings]
<div style="font-size:17px;text-align:left;font-family:'Calibri'">
<table>
<tr>
<td width=272><b>            {ORDER TAG GROUP}</b>: {ORDER TAG NAME}</td>
</tr>
</table>
</div>

[SORTED ORDER TAGS:Condiments]
<div style="font-size:17px;text-align:left;font-family:'Calibri'">
<table>
<tr>
<td width=272><b>            {ORDER TAG GROUP}</b>: {ORDER TAG NAME}</td>
</tr>
</table>
</div>


[SORTED ORDER TAGS:Promotion]
-- Format for order tags




[SORTED ORDER TAGS:Instructions]
-- Format for order tags
<F>-
<div style="font-size:14px;text-align:left;font-family:'Calibri'">
<table>
<tr>
<td width="196">INSTRUCTIONS: {ORDER TAG NOTE}</td>
</tr>
</table>
</div>
<F>=


[ENTITIES:Customer]
-- Customer entity format
<div style="font-size:20px;font-weight:bold;text-align:center;font-family:'Calibri'">Customer: {ENTITY DATA:FirstName}</div>
<div style="font-size:20px;font-weight:bold;text-align:center;font-family:'Calibri'">Phone: [=F(TN('{ENTITY DATA:Phone}'),'# (###) ###-####')]</div>
<F>-

The Epson TM U220 is an impact printer isn’t it? It’s never going to be as crisp as a thermal model due to the printing methid used. It’s like comparing an inkjet to a typeriter.

1 Like

I believe it is. It has that black and red ribbon cartridge inside of it.

1 Like

My goal is to make it look like this. This is how restaurant pro express (blasphemy) prints kitchen.

I need to do this with SambaPOS

That is ugly and confusing imo. But hey it may not be ugly and confusing to someone else. You need to use ESC/POS mode and use the codes for red ink for modifiers. You can try <J11> to increase font size or <J22> those numbers represent height and width of font. Default is <J00>

I will try that in a bit.
Yes I would like it to look better, but hey with its just an electronic typewriter and has its limits I suppose. :slight_smile:

It’s a bit odd that the main dish name is the smallest part and modifiers are massive lol
Red I would have thought you would typically use for IMPORTANT modifications rather than standard choices like sides

Well Samba is already a huge improvement over what they are using.

I’m very open to making the kitchen printer tickets look amazing.

Thanks for all the tips so far and for the tips and recommendations to come.

I’m not done yet.

1 Like

This link helped me sort it out.

2 Likes