Я создал несколько окон в wpf, которые мне нужно распечатать в одном документе xps. Каждое окно открывается, загружает соответствующие данные, а затем сразу же закрывается. В настоящее время я использую приведенный ниже код для создания xps:
Using doc = New XpsDocument(TempLoc, FileAccess.Write)
Dim writer = XpsDocument.CreateXpsDocumentWriter(doc)
Dim collator = writer.CreateVisualsCollator()
Dim Window1 As Window1 = New Window1()
Window1.ShowDialog()
Dim Window2 As Window2 = New Window2()
Window2.ShowDialog()
Dim WindowX As WindowX = New WindowX()
WindowX.ShowDialog()
collator.BeginBatchWrite()
collator.Write(Window1)
collator.Write(Window2)
collator.Write(WindowX)
collator.EndBatchWrite()
End Using
Dim doc2 = New XpsDocument(TempLoc, FileAccess.Read)
Dim seq = doc2.GetFixedDocumentSequence()
Dim window = New Window()
window.Content = New DocumentViewer() With {.Document = seq}
window.ShowDialog()
doc2.Close()
Однако проблема с этим подходом состоит в том, что напечатанная область варьируется между машинами - я предполагаю, что это связано с использованием локального размера экрана и т. Д.
Можно ли заставить программу печатать полное окно независимо от включенного компьютера, изменив этот код? Альтернативно, есть ли лучший способ решить эту проблему?
Спасибо за любую помощь