Вы можете попробовать использовать PrintDocument .NET, например:
try {
// If you want a preview use the PrintPreviewDialog
PrintPreviewDialog preview = new PrintPreviewDialog();
PrintDocument document = new PrintDocument();
document.PrintPage += new PrintPageEventHandler(document_PrintPage);
preview.Document = document;
// Then show the dialog window.
preview.Show();
// Otherwise, just call the document.Print();
} catch {
throw;
}
И сделайте так, чтобы ваше событие печатной страницы было таким, с этим вы можете получить значения из вашего элемента управления списком и отформатировать макет, если необходимо, чтобы он выглядел почти как счет-фактура:
protected void document_PrintPage(object sender, PrintPageEventArgs ev) {
Font printFont = new Font("Arial", 14);
ev.Graphics.DrawString("Sample String", printFont, Brushes.Black, ev.MarginBounds.Left, ev.MarginBounds.Top, new StringFormat());
}
При этом будет напечатан нужный текст, но если вы хотите сначала выбрать принтер, вы можете использовать PrintDialog из .NET.