Всплывающее окно печати зависает более 5 секунд для каждой страницы [закрыто]C#

Место общения программистов C#
Ответить
Anonymous
 Всплывающее окно печати зависает более 5 секунд для каждой страницы [закрыто]

Сообщение Anonymous »

Наша проблема заключается в том, что при печати после вычислений всплывающее окно печати Windows зависает более 5 секунд, а затем печатается для каждой страницы. Но эта проблема возникает не всегда. Как только она возникает, мы так и не нашли решения, поэтому всегда просим наших клиентов отформатировать свой компьютер. На медленно печатающем компьютере, если мы переместим нашу программу из C:\Program Files\OurAppsDirectory\exe куда-нибудь вроде C:\Users\user\some path\exe, проблема исчезнет, ​​и она будет печататься нормально. .
Что пробовал и не помогло
  • Не отправлять по умолчанию, выбирать принтер в коде
  • Предоставление пользователям разрешения на использование нашего приложения папка
  • Вместо dotnet net framework System.Printing с использованием пакета nuget System.Printing.Common
Мы думаем так вызвано неисправным Центром обновления Windows, но не знаю, каким именно. В средствах просмотра событий клиентов мы видим множество ошибок, некоторые из которых связаны с Центром обновления Windows, некоторые нет, примерно в те дни, когда у клиентов возникают проблемы с печатью.
Мы также используем обычный PrintDocument для печати. также не печатайте изображения. Просто обычные предложения со шрифтом Segoe UI по умолчанию, расчет размеров шрифта, прямоугольников и т. д. Ничего особенного.
var document = new PrintDocument();
document.PrinterSettings.PrinterName = "printer name";
document.PrintPage += printDocument1_PrintPage;
document.Print();

const int PRINT_PAGE_WITDH = 240;
const int PRINT_PAGE_HEIGHT = 160;
Font font = new Font("Arial", 9, FontStyle.Bold);
SolidBrush _brush = new SolidBrush(Color.Black);

void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
string text = "Hello, World";
var textSize = e.Graphics.MeasureString(text, font);
var x = (PRINT_PAGE_WITDH - textSize.Width) / 2;
e.Graphics.DrawString(text, font, _brush, x, 77);
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... -each-page
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»