2016-06-20 2 views
0

그래픽 개체를 사용하여 POS 프린터 (EPSON TM-T82 - 용지 롤 : 80 X 297 mm)에서 영수증을 인쇄하여 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 프린터 영수증에 인쇄하는 동안; 그것은 기둥을 자릅니다. 문자열의 전체 행을 인쇄하지 않는다는 것을 의미합니다. 나는이 문제를 인터넷을 통해 발견되었지만 동일한 문제로 제안 된대로 을 graphic.DrawString에 전달하여 해결하려고했습니다.

이 스크린 샷에서,

enter image description here enter image description here

여기 .XPS 및 POS 영수증 첨부 된 스크린 샷을 참조하시기 바랍니다, 영수증 테두리가 검은 색으로 표시됩니다. .XPS에서 행이 완벽하게 인쇄되고 (전체 페이지 폭을 차지함) POS 프린터 영수증에서 전체 폭을 차지하지 않습니다. (자르기 문자에서 오른쪽 테두리로 공백을 참조하십시오)

아무도 나를 도울 수 있다면 정확히 내가 잘못하고있다.

미리 감사드립니다.

+0

regular 폰트 크기를 조금 더 작게 변경해보십시오. 게시 결과 –

+0

일반 글꼴 크기 (4)를 줄 였지만 이제 행 텍스트 누락없이 영수증을 인쇄하지만 글꼴은 매우 작아서 인쇄 된 영수증에서 제대로 읽을 수 없습니다. 여기서 글꼴 크기를 줄이고 싶지 않습니다. 다른 제안이나 해결책이 있습니까? – JPS

+0

글꼴 크기를 변경 한 후 이제 적합하면 디자인 문제입니다. 두 가지 솔루션 : 데이터를 작게 만들거나 단순화하십시오. 예를 들어 [email protected]을 두 줄로 표시 할 수 있습니다. –

답변

0

columnwidth 속성을 사용하십시오.
FlowDocument doc = new FlowDocument(); doc.ColumnWidth = 700; doc.PagePadding = new Thickness (20, 0, 0, 0);

다른 사람들에게 도움이되기를 바랍니다.