<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-30433900.post2690410874496402825..comments</id><updated>2010-07-30T22:47:30.763+12:00</updated><category term='install'/><category term='setup'/><category term='Microsoft'/><category term='cellphone'/><category term='documentation'/><category term='generic'/><category term='dispose'/><category term='compact framework'/><category term='Build'/><category term='event'/><category term='collection'/><category term='Windows'/><category term='tooltip'/><category term='help'/><category term='sqleverywhere'/><category term='msmq'/><category term='Connectivity'/><category term='threading'/><category term='interface'/><category term='exceptions'/><category term='Tech Ed'/><category term='download'/><category term='member'/><category term='user interface'/><category term='ce'/><category term='app'/><category term='sqlmobile'/><category term='.net'/><category term='performance'/><category term='image'/><category term='strings'/><category term='invoke'/><category term='intellisense'/><category term='scripts'/><category term='focus'/><category term='database'/><category term='invokerequired'/><category term='debug visualizer'/><category term='Network'/><category term='debug'/><category term='xml'/><category term='screen'/><category term='Windows Forms'/><category term='Internet'/><category term='controls'/><category term='TFS'/><category term='Code Contracts'/><category term='deployment'/><category term='Devices'/><category term='VB6'/><category term='Conspiracy Theories'/><category term='WP7'/><category term='smartphone'/><category term='Humour'/><category term='class library'/><category term='sql server'/><category term='Operator'/><category term='visual studio'/><category term='C#'/><category term='Obsolescence'/><category term='Windows Phone 7'/><category term='certification'/><category term='sqlce'/><category term='activecontrol'/><category term='compatibility'/><category term='Ontempo Store'/><category term='visualiser'/><category term='Bugs'/><category term='sqlcompact'/><category term='Pos .Net'/><category term='sql'/><category term='Work Items'/><category term='html'/><category term='icon'/><category term='Tools'/><category term='asyncronous'/><category term='activate'/><category term='POS'/><category term='IE'/><category term='Software Quality'/><category term='Code Sample'/><category term='web browser'/><category term='framework'/><category term='break on all errors'/><category term='WPF'/><category term='Windows CE'/><category term='delegate'/><title type='text'>Comments on Yort on .NET: A Better Way To Print Receipts</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.yortondotnet.com/feeds/2690410874496402825/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30433900/2690410874496402825/comments/default'/><link rel='alternate' type='text/html' href='http://www.yortondotnet.com/2009/07/better-way-to-print-receipts.html'/><author><name>Yort</name><uri>http://www.blogger.com/profile/05345639234245424753</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/-Ctp1JxtQ3lc/TWY9fMBtkYI/AAAAAAAAAC8/QVFlrf-dmDE/s220/profileimage.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-30433900.post-1542371929384483622</id><published>2010-07-30T22:47:30.763+12:00</published><updated>2010-07-30T22:47:30.763+12:00</updated><title type='text'>Hi Richard,

Thanks for posting the comment.

Sadl...</title><content type='html'>Hi Richard,&lt;br /&gt;&lt;br /&gt;Thanks for posting the comment.&lt;br /&gt;&lt;br /&gt;Sadly, I can&amp;#39;t think of any good way of doing this.&lt;br /&gt;&lt;br /&gt;You could try intercepting data going to a serial port, but that will only work for serial printers and I don&amp;#39;t know specifcally how to do it.&lt;br /&gt;&lt;br /&gt;You could try writing a Pos .Net service object that is a &amp;#39;pass-thru&amp;#39;, i.e your service object would record all the commands given to it and then pass them on to another service object. However, you&amp;#39;d have to have some way of creating an initialising the other service object and then you&amp;#39;d have the overhead of implementing the full service object interface. Even if you succeed at that, it will only work for Pos .Net integration... you will likely need to do similar work for OPOS/JPOS etc.&lt;br /&gt;&lt;br /&gt;There might be a way to intercept documents from the Windows print spooler, but that only works where a Windows printer driver is used and the document is printed through the spooler. Even then, I&amp;#39;m not sure what the format of the spooler document is (some kind of EMF graphics file ?).&lt;br /&gt;&lt;br /&gt;I would suggest a better idea would be to make a &amp;#39;plug-in&amp;#39; for each POS system you want to integrate to which gets whatever data you need from the actual POS database, rather than the receipt text (which may or may not contain the info you want, and in a variety of formats each of which you&amp;#39;ll have to understand anyway). Of course I don&amp;#39;t really know what you&amp;#39;re trying to do, so maybe that plan doesn&amp;#39;t work for you either.&lt;br /&gt;&lt;br /&gt;Good luck.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30433900/2690410874496402825/comments/default/1542371929384483622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30433900/2690410874496402825/comments/default/1542371929384483622'/><link rel='alternate' type='text/html' href='http://www.yortondotnet.com/2009/07/better-way-to-print-receipts.html?showComment=1280486850763#c1542371929384483622' title=''/><author><name>Yort</name><uri>http://www.blogger.com/profile/05345639234245424753</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.yortondotnet.com/2009/07/better-way-to-print-receipts.html' ref='tag:blogger.com,1999:blog-30433900.post-2690410874496402825' source='http://www.blogger.com/feeds/30433900/posts/default/2690410874496402825' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1195254832'/></entry><entry><id>tag:blogger.com,1999:blog-30433900.post-5498961128420048163</id><published>2010-07-30T21:15:22.189+12:00</published><updated>2010-07-30T21:15:22.189+12:00</updated><title type='text'>Thanks for a great post. I was hoping to get your ...</title><content type='html'>Thanks for a great post. I was hoping to get your advice on something before we run down a technical cul-de-sac with our project. We need to capture all the information printed on a receipt from any POS application for a plug in we provide. Can you think of a sensible way to do this? &lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Richard</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30433900/2690410874496402825/comments/default/5498961128420048163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30433900/2690410874496402825/comments/default/5498961128420048163'/><link rel='alternate' type='text/html' href='http://www.yortondotnet.com/2009/07/better-way-to-print-receipts.html?showComment=1280481322189#c5498961128420048163' title=''/><author><name>richard</name><uri>http://www.blogger.com/profile/04841908123497176133</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.yortondotnet.com/2009/07/better-way-to-print-receipts.html' ref='tag:blogger.com,1999:blog-30433900.post-2690410874496402825' source='http://www.blogger.com/feeds/30433900/posts/default/2690410874496402825' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1038180863'/></entry><entry><id>tag:blogger.com,1999:blog-30433900.post-4129943569040657414</id><published>2010-02-15T15:29:26.639+13:00</published><updated>2010-02-15T15:29:26.639+13:00</updated><title type='text'>Hi,

I haven&amp;#39;t implemented tables because they...</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;I haven&amp;#39;t implemented tables because they haven&amp;#39;t been a requirement, but they would not be hard to do.&lt;br /&gt;&lt;br /&gt;For margins, since receipt printers almost always use fixed width fonts we just pad our strings with spaces (.Net&amp;#39;s string class has pad left and right functions)... and so margins aren&amp;#39;t really a requirement either, but again you could implement something if the printer/pos .net etc. allow you to do so.&lt;br /&gt;&lt;br /&gt;I&amp;#39;m not sure what you meant about the for each statement, that&amp;#39;s part of C#/.Net and may be used by our code but isn&amp;#39;t something we had to create any implementation for.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30433900/2690410874496402825/comments/default/4129943569040657414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30433900/2690410874496402825/comments/default/4129943569040657414'/><link rel='alternate' type='text/html' href='http://www.yortondotnet.com/2009/07/better-way-to-print-receipts.html?showComment=1266200966639#c4129943569040657414' title=''/><author><name>Yort</name><uri>http://www.blogger.com/profile/05345639234245424753</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.yortondotnet.com/2009/07/better-way-to-print-receipts.html' ref='tag:blogger.com,1999:blog-30433900.post-2690410874496402825' source='http://www.blogger.com/feeds/30433900/posts/default/2690410874496402825' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1195254832'/></entry><entry><id>tag:blogger.com,1999:blog-30433900.post-2326948799905660103</id><published>2010-01-20T09:20:09.690+13:00</published><updated>2010-01-20T09:20:09.690+13:00</updated><title type='text'>Have you implemented tables, margin, foreach state...</title><content type='html'>Have you implemented tables, margin, foreach statement etc.? If yes, than is will be nice to see some samples of created xml tags and elements.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30433900/2690410874496402825/comments/default/2326948799905660103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30433900/2690410874496402825/comments/default/2326948799905660103'/><link rel='alternate' type='text/html' href='http://www.yortondotnet.com/2009/07/better-way-to-print-receipts.html?showComment=1263932409690#c2326948799905660103' title=''/><author><name>StreamSoft</name><uri>http://www.blogger.com/profile/05070169133413995818</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.yortondotnet.com/2009/07/better-way-to-print-receipts.html' ref='tag:blogger.com,1999:blog-30433900.post-2690410874496402825' source='http://www.blogger.com/feeds/30433900/posts/default/2690410874496402825' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1149805089'/></entry><entry><id>tag:blogger.com,1999:blog-30433900.post-3572517430249272891</id><published>2010-01-19T11:54:36.586+13:00</published><updated>2010-01-19T11:54:36.586+13:00</updated><title type='text'>Great article! Thank you! Waiting for you sample p...</title><content type='html'>Great article! Thank you! Waiting for you sample post...</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30433900/2690410874496402825/comments/default/3572517430249272891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30433900/2690410874496402825/comments/default/3572517430249272891'/><link rel='alternate' type='text/html' href='http://www.yortondotnet.com/2009/07/better-way-to-print-receipts.html?showComment=1263855276586#c3572517430249272891' title=''/><author><name>StreamSoft</name><uri>http://www.blogger.com/profile/05070169133413995818</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.yortondotnet.com/2009/07/better-way-to-print-receipts.html' ref='tag:blogger.com,1999:blog-30433900.post-2690410874496402825' source='http://www.blogger.com/feeds/30433900/posts/default/2690410874496402825' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1149805089'/></entry><entry><id>tag:blogger.com,1999:blog-30433900.post-6409291645212196466</id><published>2010-01-16T13:21:45.182+13:00</published><updated>2010-01-16T13:21:45.182+13:00</updated><title type='text'>Hi Charlie,

Thanks for the comment.

I&amp;#39;ve bee...</title><content type='html'>Hi Charlie,&lt;br /&gt;&lt;br /&gt;Thanks for the comment.&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve been thinking about producing a (simple) sample PML with a parser and output components for both previous and Pos .Net, but I haven&amp;#39;t gotten around to it yet.&lt;br /&gt;&lt;br /&gt;Basically what you need to do is build a user control that parses the PML (or intercepts events from an external parser component) and then performs drawing commands on itself. Use the Graphics.DrawString command to paint text, and DrawImage to do pictures and barcodes. The rest of the code just needs to track the position, font style and alignment that is currently in use.&lt;br /&gt;&lt;br /&gt;We use a &amp;#39;stack&amp;#39; for holding the current formatting style, and then as each PML tag is closed we &amp;#39;pop&amp;#39; the last command of the stack to arrive at the new style to use.&lt;br /&gt;&lt;br /&gt;It&amp;#39;s a little bit of work, but it&amp;#39;s not rocket science and you can get a pretty decent preview out of it.&lt;br /&gt;&lt;br /&gt;Good luck.&lt;br /&gt;&lt;br /&gt;PS: If I get chance to work on the sample I&amp;#39;ll do so and post about it as soon as I can.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30433900/2690410874496402825/comments/default/6409291645212196466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30433900/2690410874496402825/comments/default/6409291645212196466'/><link rel='alternate' type='text/html' href='http://www.yortondotnet.com/2009/07/better-way-to-print-receipts.html?showComment=1263601305182#c6409291645212196466' title=''/><author><name>Yort</name><uri>http://www.blogger.com/profile/05345639234245424753</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.yortondotnet.com/2009/07/better-way-to-print-receipts.html' ref='tag:blogger.com,1999:blog-30433900.post-2690410874496402825' source='http://www.blogger.com/feeds/30433900/posts/default/2690410874496402825' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1195254832'/></entry><entry><id>tag:blogger.com,1999:blog-30433900.post-8933365697471757096</id><published>2010-01-16T10:25:07.989+13:00</published><updated>2010-01-16T10:25:07.989+13:00</updated><title type='text'>Hi Yort, 
Great post!  We&amp;#39;re using OPOS .Net a...</title><content type='html'>Hi Yort, &lt;br /&gt;Great post!  We&amp;#39;re using OPOS .Net and TM-T88IV as Thermal Printer.  We&amp;#39;re facing a requirement to display a preview, specially when customer do not have a Thermal Printer Connected to their workstation.  How do you achieve this requirement?  We implemented our custom PML, that way customer can customize the receipt format (Bold, alignment, etc), then during printing process we parse the PML to have the appropriated escape commands.  So I believe we are on the correct path, the only issue is the preview.  We don&amp;#39;t know how to provide a easy preview implementation...  Any thought will be really appreciated.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Carlos.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30433900/2690410874496402825/comments/default/8933365697471757096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30433900/2690410874496402825/comments/default/8933365697471757096'/><link rel='alternate' type='text/html' href='http://www.yortondotnet.com/2009/07/better-way-to-print-receipts.html?showComment=1263590707989#c8933365697471757096' title=''/><author><name>Charlie</name><uri>http://www.blogger.com/profile/04463579378461950706</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.yortondotnet.com/2009/07/better-way-to-print-receipts.html' ref='tag:blogger.com,1999:blog-30433900.post-2690410874496402825' source='http://www.blogger.com/feeds/30433900/posts/default/2690410874496402825' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1806739447'/></entry></feed>
