#c# #wpf #printdialog
#c# #wpf #printdialog
Вопрос:
это сводит меня с ума. Я стараюсь печатать бесшумно на ленте (высота 1000 мм, ширина 150 мм). Содержимое представляет собой холст, содержащий форматированный текст.
Если я использую «Microsoft Print To PDF», это работает и выглядит нормально. Когда я продолжаю и использую принтер OKI из pdf, все в порядке!
Если я напрямую попытаюсь выполнить печать с использованием OKI, я получу пустую ленту или (если я изменю некоторые параметры) Я получаю очень маленький текст в середине нигде.
Есть идеи? К сожалению, это практически невозможно отладить.
Это функция печати:
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
PrintDialog prnt = new PrintDialog();
//PrintQueue queue = new LocalPrintServer().GetPrintQueue("Microsoft Print To PDF");
PrintQueue queue = new LocalPrintServer().GetPrintQueue("OKI C3450");
prnt.PrintQueue = queue;
//var f = queue.GetPrintCapabilities();
prnt.PrintTicket = new PrintTicket();
prnt.PrintTicket.PageMediaSize = new PageMediaSize(3779.53, 566.93);
prnt.PrintTicket.PageOrientation = PageOrientation.Landscape;
//if (prnt.ShowDialog() == true)
//{
Size pageSize = new Size(3779.53, 566.93);
var canvasToPrint = this.backgroundCanvasSchleife1;
this.backgroundCanvasSchleife1.Measure(pageSize);
this.backgroundCanvasSchleife1.Background = new SolidColorBrush(Colors.Transparent);
this.backgroundCanvasSchleife1.Children.RemoveRange(0, this.backgroundCanvasSchleife1.Children.Count-1);
this.backgroundCanvasSchleife1.Arrange(new Rect(0, 0, pageSize.Width, pageSize.Height));
//if (prnt.ShowDialog() == true)
//{
// try
//{
prnt.PrintVisual(this.backgroundCanvasSchleife1, "Printing Canvas");
//}catch (Exception ex)
//{
// var t = ex;
//}
//}
//}
//this.Close();
}
Комментарии:
1. решением могло бы быть внедрение результата в программу просмотра PDF и оттуда для печати. Разве это не исправило бы это? У меня была похожая проблема при использовании другого языка. Моя проблема была с термопринтером, и это исправило ее для меня. «Реальная» проблема может заключаться в том, что принтер нестандартный и, следовательно, относится к нестандартным размерам, которые ваша программа не может понять.
2. звучит как план. Я попробую это, спасибо