Недавно решал такой вопрос, так и не понял как лучше сделать. Пока черновой вариант работает так
(правда, все равно чуть режет края). Скопировал часть кода:
InitializeComponent();
PrintDocument pd = new PrintDocument();
string printerU = "PDF Printer";
pd.PrinterSettings.PrinterName = printerU;
PageHeight = pd.PrinterSettings.DefaultPageSettings.PaperSize.Height;
PageWidth = pd.PrinterSettings.DefaultPageSettings.PaperSize.Width;
pd.PrintPage += new PrintPageEventHandler(PrintImage);
if (pd.PrinterSettings.IsValid)
{
pd.Print();
}
else
{
// Printer is invalid
}
pd.Dispose();
}
}
private void PrintImage(Object sender, PrintPageEventArgs e)
{
System.Drawing.Image img =
System.Drawing.Image.FromFile("123.bmp");
e.Graphics.DrawImage(img, 0, 0, PageWidth, PageHeight);
}