Подтвердить что ты не робот

Silverlight 5 не печатает на некоторых принтерах

У меня есть приложение Silverlight 5 OOB (с повышенными разрешениями), которое только что было развернуто рядом с нашими пользователями. Некоторые из этих пользователей сообщают, что отпечатки появляются пустым или очень слабым. Эти принтеры правильно печатают документы Word, и я не могу воспроизвести проблему на своих принтерах.

Все пользователи находятся на 32-разрядной версии Windows XP SP3, и я разрабатываю 64-разрядную версию Win7.

Как кто-нибудь видел эту проблему раньше? Или любая идея, что может быть причиной этого?

Помогите оценить.

Большое спасибо, Эндрю

4b9b3361

Ответ 1

У меня должно быть решение Может быть использовано для вас.............

Сначала я создал новый PrintDocument и подключил некоторые обработчики для своего события PrintPage.

mobjPrintDocument = New PrintDocument
RemoveHandler mobjPrintDocument.PrintPage, AddressOf Print_Report
AddHandler mobjPrintDocument.PrintPage, AddressOf Print_Report

Затем мы можем вызвать функцию PrintBitmap в PrintDocument, когда вы хотите распечатать. Здесь я делаю это, когда пользователь нажимает кнопку "Печать".

Private Sub xbtnPrint_Click(sender As System.Object, e As System.Windows.RoutedEventArgs)
    mintPageIndex = 0
    mobjPrintDocument.PrintBitmap(FileName)
  End Sub

Теперь важная часть. Мы можем захватить контент, предназначенный для подключения к событию PrintPage (как описано выше). Я могу настроить e.PageVisual на любой визуальный элемент xaml, и PrintBitmap обработает его. Здесь я использую функцию GetPages и прокручиваю ее, чтобы убедиться, что я печатаю каждую страницу (элемент pdfviewer). Однако вы можете указать его на любой визуальный элемент, как я уже сказал.

Private Sub Print_Report(sender As System.Object, e As PrintPageEventArgs)
    e.PageVisual = xobjReportViewer.GetPages(mintPageIndex)
    mintPageIndex += 1
    e.HasMorePages = mintPageIndex < xobjReportViewer.GetPages.Count
  End Sub

Элементы e.HasMorePages позволяют принудительно запускать это событие, пока вы не закончите.

Надеюсь, это кому-то поможет. Благодаря поддержке принтеров Silverlight 5 и Post- Script многие принтеры с эмулятором PostScript могут быть несовместимы, но также не будут по умолчанию печатать растровые изображения. Это обходное решение устраняет это, делая печать немного более стабильной в приложении типа LOB.