Как распечатать документ
Пытаюсь печатать документ, но печатает пустой документ, подскажите, где я ошибся:
var printDocument = new PrintDocument();
var printDialog = new PrintDialog();
printDialog.ShowHelp = true;
printDialog.AllowSomePages = true;
printDialog.Document = printDocument;
printDocument.PrinterSettings.PrintFileName = @"C:\2132.docx";
printDocument.PrinterSettings.PrintToFile = true;
if (printDialog.ShowDialog() == DialogResult.OK)
{
printDocument.Print();
}
Ответы (2 шт):
Автор решения: demonplus
→ Ссылка
Так вы пока ничего не выводите на печать, поэтому документ и пустой.
Нужно обработать событие PrintPage и там указать, что вы будете печатать:
printDocument.PrintPage +=
new PrintPageEventHandler(printDocument1_PrintPage);
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
//тут печатаете, что хотите
Font myFont = new Font("Arial", 14, FontStyle.Regular, GraphicsUnit.Pixel);
float xPos = 100;
float yPos = 100;
e.Graphics.DrawString("Hello, world", myFont, Brushes.Black,
xPos, yPos, new StringFormat());
// если будет еще страница, то true
e.HasMorePages = false;
}
Автор решения: Konst
→ Ссылка
using (PrintDialog pd = new PrintDialog())
{
pd.ShowDialog();
ProcessStartInfo info = new ProcessStartInfo(@"D:\Docs\file.doc");
info.Verb = "PrintTo";
info.Arguments = pd.PrinterSettings.PrinterName;
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(info);
}