0
영수증 종류를 만들려고합니다. 내 프린터의 드라이버 (내 OS에는 존재하지 않음)가 없습니다. 그래서 일반 프린터 텍스트 만 설치했습니다. 내 프린터는 POS 프린터 중 하나입니다. 내가 사용C# 인쇄 Y 위치 혼자 변경
int _x = 10;
int _y = 5;
int _width = 270; // max width I found through trial and error
int _height = 0;
StringFormat _center = new StringFormat();
StringFormat _left = new StringFormat();
StringFormat _right = new StringFormat();
_center.Alignment = StringAlignment.Center;
_left.Alignment = StringAlignment.Near;
_right.Alignment = StringAlignment.Far;
PrintDocument _print = new PrintDocument();
PrintPreviewDialog _printPrev = new PrintPreviewDialog();
_print.DefaultPageSettings.PaperSize = new PaperSize("My Custom Receipt", _width, 600);
_print.DefaultPageSettings.PaperSize.RawKind = (int)PaperKind.Custom;
_print.DefaultPageSettings.Landscape = false;
_print.DefaultPageSettings.Margins = new Margins(0, 0, 0, 0);
_print.OriginAtMargins = true;
_printPrev.Document = _print;
_printPrev.PrintPreviewControl.AutoZoom = false;
_printPrev.PrintPreviewControl.Zoom = 1;
그리고 종이에 쓰기 :
이
내 구성입니다_print.PrintPage += (Object sender, PrintPageEventArgs e) => {
// Header information
e.Graphics.DrawString("Number:", small, Brushes.DarkGray, new Rectangle(_x, _y, _width, _height), _left);
e.Graphics.DrawString(number.ToString(), medium, Brushes.Black, new Rectangle(_x, _y, _width, _height), _center);
_y += (int)e.Graphics.MeasureString(number.ToString(), medium).Height;
e.Graphics.DrawString("BARCODE:", small, Brushes.DarkGray, new Rectangle(_x, _y, _width, _height), _left);
e.Graphics.DrawString(barcode.ToString(), medium, Brushes.Black, new Rectangle(_x, _y, _width, _height), _center);
_y += (int)e.Graphics.MeasureString(barcode.ToString(), medium).Height;
// And so on..
}
무엇 일어나는 것은 그 난 단지 (예를 들어) 그 라인을 모두 두 줄을 작성하는 경우 머리말에 +/- 스티커를 붙이십시오. 그렇지 않으면 맨 아래로 밀리기 시작합니다.