Я пытаюсь напечатать файл изображения без вывода сообщений, и мне нужно напечатать его на бумаге специального типа («Глянцевая фотобумага») и на определенном размере (10 см на 15 см).
На обычных окнах7 диалогов печати, которые я могу выбрать:
Бумага Размер ,
Бумага Качество (например - «Авто», «Высокий», «Стандартный»"," Custom ")
Бумага Тип (" Обычная бумага "," Глянцевая фотобумага "," Фотобумага Plus Glossy "," Фотобумага Pro Platinum "," Hagaki ",и т.д. ...)
Но с помощью кода на C # мне удалось установить только PaperSize (что равно 4 "на 6" == 10 см на 15 см).
Моя проблема в том, как мне получить возможность установить Paper Type , а not PaperSource («Tray 1», «Tray»2 "и т. Д.) ....
Я знаю, что у каждого принтера есть свои типы бумаги, которые он поддерживает, поэтому мне, вероятно, нужно пройтись по всем этим, но я просто не мог понять, как.
это мой текущий код:
string strPrinterName = "Canon iP4850";
PrintDocument printDoc = new PrintDocument();
// We set the paper size
printDoc.DefaultPageSettings.PaperSize = new PaperSize("PhotoPaper", 400, 600);
// Inside the event i actually draw the image all over the paper by using e.Graphics.DrawImage(...)
printDoc.PrintPage += PrintDocPrintPage;
// Creating the print dialog
PrintDialog dlgPrint = new PrintDialog
{
Document = printDoc
};
// We choose the printer
dlgPrint.PrinterSettings.PrinterName = strPrinterName;
// just to be sure - give the new size of our paper
dlgPrint.PrinterSettings.DefaultPageSettings.PaperSize = new PaperSize("PhotoPaper", 400, 600);
// If the printer is invalid
if (!dlgPrint.PrinterSettings.IsValid)
{
throw new Exception(@"Printer is invalid" + Environment.NewLine + strPrinterName);
}
// Print without showing the dialog
printDoc.Print();
спасибовсе заранее.