Tôi có nên Got Giải pháp có thể hữu ích Để Bạn ............................
Đầu tiên tôi đã tạo một PrintDocument mới và kết nối một số trình xử lý cho sự kiện PrintPage của nó.
mobjPrintDocument = New PrintDocument
RemoveHandler mobjPrintDocument.PrintPage, AddressOf Print_Report
AddHandler mobjPrintDocument.PrintPage, AddressOf Print_Report
Sau đó, chúng tôi có thể gọi chức năng PrintBitmap trên PrintDocument bất cứ khi nào bạn muốn in. Ở đây tôi đang thực hiện nó khi người dùng nhấp vào nút In.
Private Sub xbtnPrint_Click(sender As System.Object, e As System.Windows.RoutedEventArgs)
mintPageIndex = 0
mobjPrintDocument.PrintBitmap(FileName)
End Sub
Bây giờ đến phần quan trọng. Chúng tôi có thể chiếm đoạt nội dung được nhắm mục tiêu bằng cách móc vào sự kiện PrintPage (như đã xử lý ở trên). Tôi có thể đặt e.PageVisual thành bất kỳ phần tử xaml trực quan nào và PrintBitmap sẽ xử lý nó. Ở đây tôi sử dụng chức năng GetPages và lặp lại để đảm bảo rằng tôi in từng trang (một phần tử pdfviewer). Tuy nhiên, bạn có thể trỏ nó vào bất kỳ yếu tố trực quan nào như tôi đã nói.
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 cho phép bạn kích hoạt sự kiện này cho đến khi bạn hoàn tất.
Hy vọng điều này hữu ích đối với ai đó. Với Silverlight 5 và hỗ trợ máy in Post-Script, rất nhiều máy in có bộ giả lập PostScript có thể không tương thích, nhưng cũng sẽ không mặc định in bitmap. Cách giải quyết này khắc phục điều đó, làm cho việc in ấn ổn định hơn một chút trong một ứng dụng kiểu LOB.
Nguồn
2013-01-30 05:25:24
Công cụ báo cáo của bạn là gì? Có bất kỳ bên thứ 3 Telerik, Devart, vvWhat về On xem trước là nó tốt? Chúng tôi havent phải đối mặt, nhưng cảm ơn cho chia sẻ của bạn. –
Trang đang được in có các điều khiển tiêu chuẩn. Chúng tôi tin rằng đó là sự cố trình điều khiển máy in. –
Vì vậy, những gì về khi bạn in máy in XPS, hoặc máy in PDF ảo.Nếu họ là ok, nó có thể là một vấn đề trình điều khiển. –