У меня проблема, которую я пытаюсь решить в течение недели, и я решил зарегистрироваться и попросить вас, потому что все, что я пробовал, потерпело неудачу.Печать в C# WPF - PrintDialog.PrintVisual метод работает на одном компьютере и не работает на другом
У меня есть приложение WPF, написанное на C#. Моя самая большая проблема - печатание. У меня есть следующий код:
TransformedBitmap tb = new TransformedBitmap();
RotateTransform transform = new RotateTransform(90);
tb.BeginInit();
tb.Source = myBitmapImage;
tb.Transform = transform;
tb.EndInit();
PrintDialog myPrintDialog = new PrintDialog();
var dv = new DrawingVisual();
using (var dc = dv.RenderOpen())
{
dc.DrawImage(tb, new Rect(0, 0, myPrintDialog.PrintableAreaWidth, myPrintDialog.PrintableAreaHeight));
}
myPrintDialog.PrintVisual(dv, "Image");
Я пробовал этот код на нескольких компьютерах с различными версиями Windows. Отлично работает на Win 10, Win 8.1, Win 7, даже на моей старой Win XP.
Но в последнее время я попытался запустить это приложение на ASUS X553M с Win 8.1. Приложение зависает после приведенного выше кода. И, конечно, ничего не печатается.
Я взял поближе к коду, я отлажена этот код и я полагаю, что он останавливается в строке:
myPrintDialog.PrintVisual(dv, "Image");
Файл будет отправлен на принтер, но больше ничего не происходит. Интересно, что в файле очереди принтера есть статус: «буферизация» все время и не изменяется. Я пробовал с несколькими принтерами, как физическими, так и виртуальными принтерами - то же самое, никогда не заканчивая буферизацией ... Еще одна странная вещь: я тестировал принтеры, и они, кажется, работают правильно. Печать тестовой страницы из драйвера принтера преуспела.
Это странно для меня, потому что, как я уже сказал, код отлично работает на других компьютерах. В последние несколько дней я искал ответ в Интернете, я очистил и сбросил службу диспетчера очереди печати в системе Windows. Я установил все возможные обновления для этого Asus X553M Win 8, я даже обновил его до Windows 10. Я создал новую учетную запись для нового пользователя admin, потому что я думал, что профиль пользователя поврежден. И ничего не изменилось, до сих пор не печатает ... и приложение все еще висит на этой линии.
Буду признателен за каждую подсказку, что может быть не так или где я должен выглядеть ... Я рассчитываю на ваши предложения. Я должен сделать этот ноутбук (или мое приложение) работать правильно. Смена ноутбука - это не вариант, поэтому вы - моя последняя надежда. Спасибо заранее!
ли печать работы с другими приложениями? – Contango
Благодарим вас за интерес. Да, я тестировал печать из Windows Picture Browser, и буферизация занимает менее секунды, затем изображение печатает. – Dario