Ну, это очень странная проблема, и я уже нашел черное магическое решение. Мне любопытно, почему.В C#, в чем отличие настроек PrinterSettings от PrintDocument и PrintDialog?
Я пишу программу, использующую принтер этикеток Brother QL-700 для печати этикеток. Мне нужно, чтобы этикетки печатались без отображения диалогового окна принтера. Принтер этикеток поддерживает различный размер рулонов этикеток и размер рулона этикеток по умолчанию составляет 29 мм, а то, что мне нужно, - 62 мм. Я обнаружил, что я могу установить Размер страницы по
PrintDocument doc = new PrintDocument();
PaperSize size = new PaperSize() ;
size.Width = 244;//2.44 inch = 62mm
size.Height = 244;
size.RawKind = 256;//RawKind=0 does not work, I don't know why
doc.PrinterSettings.DefaultPageSettings.PaperSize = size;
Однако, это не будет работать, драйвер принтера будет показывать сообщение о том, ширина не подходит.
Но если я изменю-копирование PrinterSettings из PrintDialog()
, не показывая его,
PrintDialog dlg = new PrintDialog();
doc.PrinterSettings = dlg.PrinterSettings;
Затем он работает.
В заключение, что я не понимаю, почему
size.RawKind = 256;
и
PrintDialog dlg = new PrintDialog();
doc.PrinterSettings = dlg.PrinterSettings;
может сделать работу принтера?
О, я вижу. Вы знаете что-нибудь о различии между стандартными настройками PrintSettings PrintDialog и PrintDocument? – iuradz