Итак, я хочу напечатать свое представление сетки данных в виде растрового изображения, используя Microsoft print to file и автоматически присвоить файлу имя и указать каталог. Печать моего datagridview на принтер работает. Всякий раз, когда я пытаюсь распечатать его в файл, я просто получаю пустую страницу. Как я могу заставить его печатать в файл вместо принтера.
// генерировать имя файла в качестве текущей даты / времени в unix формате отметки времени
string file = (string)(DateTime.UtcNow.Subtract(new DateTime(1970, 1,
1))).TotalSeconds.ToString();
// the directory to store the output.
string directory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
// initialize PrintDocument object
PrintDocument printDocument1 = new PrintDocument()
{
PrinterSettings = new PrinterSettings()
{
// set the printer to 'Microsoft Print to PDF'
PrinterName = "Microsoft Print to PDF",
// tell the object this document will print to file
PrintToFile = true,
// set the filename to whatever you like (full path)
PrintFileName = Path.Combine(directory, file + ".pdf"),
}
};
printDocument1.Print();
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgse)
{
Bitmap bm = new Bitmap(this.dataGridView1.Width, this.dataGridView1.Height);
dataGridView1.DrawToBitmap(bm, new Rectangle(0, 0, this.dataGridView1.Width,
this.dataGridView1.Height));
e.Graphics.DrawImage(bm, 0, 0);
}