C#POS收据打印问题

时间:2016-06-20 07:43:50

标签: c# printing

我在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收据截图

enter image description here enter image description here

此处,在屏幕截图中,收据边框标记为黑色。在.XPS中,该行打印完美(占整页宽度),但在POS打印机收据中,它没有占据全宽(从切割字符到右侧边框看白色空间)

如果有人能在这里帮助我,那我到底做错了什么。

提前致谢。

1 个答案:

答案 0 :(得分:0)

请使用columnwidth属性
    FlowDocument doc = new FlowDocument();     doc.ColumnWidth = 700;     doc.PagePadding = new Thickness(20,0,0,0);

我希望这会有助于其他人