Trên thực tế sau khi rối tung xung quanh với đống các mẫu khác nhau, tất cả đều vô cùng phức tạp và đòi hỏi việc sử dụng các tài liệu Nhà văn, Container, Queues In và In Vé, tôi thấy bài viết Eric Sinks về Printing in WPF
Mã đơn giản là một chỉ 10 dòng dài
public void CreateMyWPFControlReport(MyWPFControlDataSource usefulData)
{
//Set up the WPF Control to be printed
MyWPFControl controlToPrint;
controlToPrint = new MyWPFControl();
controlToPrint.DataContext = usefulData;
FixedDocument fixedDoc = new FixedDocument();
PageContent pageContent = new PageContent();
FixedPage fixedPage = new FixedPage();
//Create first page of document
fixedPage.Children.Add(controlToPrint);
((System.Windows.Markup.IAddChild)pageContent).AddChild(fixedPage);
fixedDoc.Pages.Add(pageContent);
//Create any other required pages here
//View the document
documentViewer1.Document = fixedDoc;
}
Mẫu của tôi khá đơn giản, không bao gồm Định cỡ và định hướng trang chứa toàn bộ các vấn đề khác nhau không hoạt động như bạn mong đợi. Cũng không chứa bất kỳ chức năng tiết kiệm nào như MS dường như đã quên bao gồm nút Lưu với Trình xem tài liệu.
Lưu năng là tương đối đơn giản (và cũng có thể là từ bài viết Eric Sinks)
public void SaveCurrentDocument()
{
// Configure save file dialog box
Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
dlg.FileName = "MyReport"; // Default file name
dlg.DefaultExt = ".xps"; // Default file extension
dlg.Filter = "XPS Documents (.xps)|*.xps"; // Filter files by extension
// Show save file dialog box
Nullable<bool> result = dlg.ShowDialog();
// Process save file dialog box results
if (result == true)
{
// Save document
string filename = dlg.FileName;
FixedDocument doc = (FixedDocument)documentViewer1.Document;
XpsDocument xpsd = new XpsDocument(filename, FileAccess.ReadWrite);
System.Windows.Xps.XpsDocumentWriter xw = XpsDocument.CreateXpsDocumentWriter(xpsd);
xw.Write(doc);
xpsd.Close();
}
}
Vì vậy, câu trả lời là Có, bạn có thể mất một WPF hiện tại (XAML) Kiểm soát, DataBind nó và biến nó thành một XPS tài liệu - và nó không phải tất cả những khó khăn.
[http://msdn.microsoft.com/en-us/library/system.windows.xps.visualstoxpsdocument.aspx](http://msdn.microsoft.com/en-us/library/system.windows .xps.visualstoxpsdocument.aspx) –