我在c#中编写了一个代码,使用图形对象在POS打印机上打印收据(EPSON TM-T82 - 纸卷:80 X 297 mm)。
示例代码如下
Graphics graphic = e.Graphics;
Font regularFont = new Font("Courier New", 8);
Font titleFont = new Font("Courier New", 14);
SolidBrush drawBrush = new SolidBrush(Color.Black);
float fontHeight = regularFont.GetHeight();
float startX = 10.0F;
float startY = 5.0F;
int offset = 40;
graphic.DrawString("----------------------------------------", regularFont, drawBrush, new PointF(startX, startY+offset), StringFormat.GenericTypographic);
offset = offset + (int)fontHeight + 5;
string header = "Item Name".PadRight(30) + "Price";
graphic.DrawString(header, regularFont, drawBrush, , new PointF(startX, startY+offset), StringFormat.GenericTypographic);
offset = offset + (int)fontHeight;
graphic.DrawString("----------------------------------------", regularFont, drawBrush, new PointF(startX, startY+offset), StringFormat.GenericTypographic);
依旧......
现在的问题是,在导出到" .XPS"然后它显示完美。但在POS打印机收据上打印时;它削减了列。意思是说它不是打印整行的字符串。我尝试通过在RectangleF
中传递graphic.DrawString
根据互联网上发现的相同问题来解决此问题。
请参阅附带的.XPS和POS收据截图
此处,在屏幕截图中,收据边框标记为黑色。在.XPS中,该行打印完美(占整页宽度),但在POS打印机收据中,它没有占据全宽(从切割字符到右侧边框看白色空间)
如果有人能在这里帮助我,那我到底做错了什么。
提前致谢。
答案 0 :(得分:0)
请使用columnwidth属性
FlowDocument doc = new FlowDocument();
doc.ColumnWidth = 700;
doc.PagePadding = new Thickness(20,0,0,0);
我希望这会有助于其他人