2016-06-20 8 views
0

POSプリンタ(EPSON TM-T82 - ペーパーロール:80×297mm)で領収書を印刷するためにグラフィックオブジェクトを使用してC#でコードを書いています。C#POS領収書印刷の問題

サンプルコード

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プリンタの領収書で印刷している間。列をカットします。それは文字列の完全な行を印刷していないと言うことを意味します。私はRectangleFgraphic.DrawStringに渡してこの問題を解決しようとしましたが、インターネット上では同じ問題が見つかりました。

.XPSおよびPOSレシートここ

enter image description here enter image description here

の添付のスクリーンショットを参照してください、スクリーンショットでは、領収書の境界は黒としてマークされています。 .XPSでは行が完全に印刷されていますが(全ページ幅を使用)、POSプリンタの領収書では全幅を取ることはありません(カット文字から右側の枠まで白いスペースを参照)

正確に私は間違っています。

ありがとうございます。

+0

は、それが生成するかを見るために少し小さいあなたregularFontサイズを変更してみてくださいするのに役立ちます願っています。投稿結果 –

+0

私は通常のフォントサイズ(4)を減らしましたが、行のテキストがなくても領収書を印刷するようになりましたが、フォントは非常に小さく、印刷された領収書では正しく読み込めません。私はここでフォントサイズを小さくしたくありません。他の提案や解決策はありますか? – JPS

+0

フォントサイズを変更しても問題がない場合、問題はデザイン上の問題です。 2つのソリューション:データのサイズを小さくするか、データを簡略化します。 たとえば、1 @ 225.00を2行にすることができます。 –

答えて

0

columnwidthプロパティを使用してください。
FlowDocument doc = new FlowDocument(); doc.ColumnWidth = 700; doc.PagePadding = new Thickness(20、0、0、0);

私は、これは他の人

関連する問題