У меня есть Brother PT9800PCN, который использует ленты (от 6 мм до 36 мм) для печати этикеток.
В приложении Windows Form у меня есть различные кнопки, которые при нажатии должны печатать определенный файл (pdf) напринтер.В зависимости от файла требуются разные ленты.Размеры берутся с использованием значений из текстовых полей, где я указываю нужный размер.
Моя проблема в том, что когда я задаю размер страницы, он печатает на том, что когда-либо установлено в настройках принтера по умолчанию.
Я установил настройки принтера для ленты размером 18 мм и длиной 50 мм.
Я установил ленту размером 24 мм в принтере и в коде я устанавливаю размер страницы 24x50мм.
Когда я нажимаю на печать, принтер мигает красным, что у меня установлена лента неправильного размера.
В настройках принтера я также сохранил некоторый нестандартный размер под разными именами.
Попытка установить RawKind равным 0 и значением выше 119, не повезло.
PdfiumViewer.PdfDocument pdfiumDoc = PdfiumViewer.PdfDocument.Load(file);
PrintDocument pd = pdfiumDoc.CreatePrintDocument(PdfiumViewer.PdfPrintMode.CutMargin);
pd.PrinterSettings.PrinterName = comboPrinters.SelectedItem.ToString();
pd.PrinterSettings.DefaultPageSettings.Margins = new Margins(0, 0, 0, 0);
pd.PrinterSettings.DefaultPageSettings.Landscape = true;
pd.PrinterSettings.DefaultPageSettings.PaperSize.RawKind = 0;
//pd.PrinterSettings.DefaultPageSettings.PaperSize.PaperName = "customSize";
pd.PrinterSettings.DefaultPageSettings.PaperSize = new PaperSize("customSize", (int)Math.Round((double)Convert.ToInt32(textBox1.Text) * 500 / 127), (int)Math.Round((double)Convert.ToInt32(textBox2.Text) * 500 / 127));
pd.Print();