Я пытаюсь реализовать функции печати в одном из моих проектов, но я не настолько хорош в этой работе.
Я уже подключился к моему термопринтеру и написал/распечатал те же образцы. Теперь я пытаюсь найти способ создать свою квитанцию, чтобы она выглядела как получение с прикрепленного изображения.
У меня есть некоторые идеи, но я не уверен, что они хороши для такого рода работ, одним из них является попытка отформатировать мою квитанцию в html и их рендеринг html как растровое изображение (изображение), а затем распечатать его, я уже попробовал это, но похоже, что у меня есть потеря качества.
Если у кого-то есть какие-то другие идеи о том, как я могу сделать квитанцию похожим на изображение, пожалуйста, поделитесь этой информацией со мной. Я буду очень благодарен.
Это то, что я уже сделал, чтобы напечатать некоторые образцы, для форматирования я использовал graphics.DrawString
, но я не думаю, что могу сделать слишком много, используя его.
public void Print()
{
var doc = new PrintDocument();
doc.PrintPage += new PrintPageEventHandler(ProvideContent);
doc.Print();
}
public void ProvideContent(object sender, PrintPageEventArgs e)
{
Graphics graphics = e.Graphics;
Font font = new Font("Courier New", 10);
float fontHeight = font.GetHeight();
int startX = 0;
int startY = 0;
int Offset = 20;
e.PageSettings.PaperSize.Width = 50;
graphics.DrawString("Welcome to MSST", new Font("Courier New", 8),
new SolidBrush(Color.Black), startX, startY + Offset);
Offset = Offset + 20;
graphics.DrawString("Ticket No:" + "4525554654545",
new Font("Courier New", 14),
new SolidBrush(Color.Black), startX, startY + Offset);
Offset = Offset + 20;
graphics.DrawString("Ticket Date :" + "21/12/215",
new Font("Courier New", 14),
new SolidBrush(Color.Black), startX, startY + Offset);
Offset = Offset + 20;
String underLine = "------------------------------------------";
graphics.DrawString(underLine, new Font("Courier New", 14),
new SolidBrush(Color.Black), startX, startY + Offset);
Offset = Offset + 20;
String Grosstotal = "Total Amount to Pay = " + "2566";
Offset = Offset + 20;
underLine = "------------------------------------------";
graphics.DrawString(underLine, new Font("Courier New", 14),
new SolidBrush(Color.Black), startX, startY + Offset);
Offset = Offset + 20;
graphics.DrawString(Grosstotal, new Font("Courier New", 14),
new SolidBrush(Color.Black), startX, startY + Offset);
}