Чем больше я читаю на эту тему, тем меньше я понимаю, поэтому заранее извиняюсь, если нижеприведенное выглядит совершенно не так.
У меня есть usercontrol, который содержит потоковый документ - представление с соответствующей моделью представления. Цель состоит в том, чтобы отправить это в окно предварительного просмотра, где пользователь может просмотреть документ, а также распечатать его.
Я поднял некоторый код из примера на http://www.eggheadcafe.com/tutorials/aspnet/9cbb4841-8677-49e9-a3a8-46031e699b2e/wpf-printing-and-print-pr.aspx
Когда ниже называется
Public Shared Sub PrintPreview(owner As Window, data As FormData)
Using xpsStream As New MemoryStream()
Using package__1 As Package = Package.Open(xpsStream, FileMode.Create, FileAccess.ReadWrite)
Dim packageUriString As String = "memorystream://data.xps"
Dim packageUri As New Uri(packageUriString)
PackageStore.AddPackage(packageUri, package__1)
Dim xpsDocument__2 As New XpsDocument(package__1, CompressionOption.Maximum, packageUriString)
Dim writer As XpsDocumentWriter = XpsDocument.CreateXpsDocumentWriter(xpsDocument__2)
Dim visual As New Form(data)
Dim printTicket As New PrintTicket()
printTicket.PageMediaSize = A4PaperSize
writer.Write(visual, printTicket)
Dim document As FixedDocumentSequence = xpsDocument__2.GetFixedDocumentSequence()
xpsDocument__2.Close()
Dim printPreviewWnd As New PrintPreviewWindow(document)
printPreviewWnd.Owner = owner
printPreviewWnd.ShowDialog()
PackageStore.RemovePackage(packageUri)
End Using
End Using
Это вызывает окно предварительного просмотра печати и показывает пользовательский элемент управления, который содержит потоковый документ. Тем не менее, он показывает только первый из нескольких страниц. Я предполагал, что весь смысл написания xps, а затем повторного чтения в этом окне должен был обойти проблему печати визуала, но я, очевидно, неправильно понимаю весь процесс. Буду очень признателен за любую помощь в прохождении моей тупой головы, что мне нужно сделать, чтобы иметь возможность просматривать все страницы в документе.
Приветствия
Я думал, что вышеупомянутое с использованием xpsdocument и getfixeddocumentsequence преобразует потоковый документ в фиксированный документ, но, видя, нет, возможно, я пишу его неправильно ??