C# 是否可以将固定文档转换为Drawing.Printing.PrintDocument?

C# 是否可以将固定文档转换为Drawing.Printing.PrintDocument?,c#,wpf,C#,Wpf,我已经为工作写了一个标签制作程序。它使用opendialog来拉入数据。把它分开放在桌子上。没有问题。设置FixedDocument以打印用户控件标签以及存储固定文档数据的类都非常有效 我唯一的问题是,当涉及到文本搜索和打印控制时,我无法忍受WPF文档的限制。我使用了printpreviewdialog,但它不使用FixedDocument 我需要知道它是否可以用简单的代码转换,或者是否必须重写整个类并返回到printpreviewdialog使用的图形 呼叫代码如下所示 private voi

我已经为工作写了一个标签制作程序。它使用opendialog来拉入数据。把它分开放在桌子上。没有问题。设置FixedDocument以打印用户控件标签以及存储固定文档数据的类都非常有效

我唯一的问题是,当涉及到文本搜索和打印控制时,我无法忍受WPF文档的限制。我使用了printpreviewdialog,但它不使用FixedDocument

我需要知道它是否可以用简单的代码转换,或者是否必须重写整个类并返回到printpreviewdialog使用的图形

呼叫代码如下所示

private void button3_Click(object sender, EventArgs e)
{
    var avery = new Avery5160();
    DataTable data = (DataTable)dataGridView1.DataSource;

    var A5160 = avery.CreateDocument(data);
    PrintPreviewDialog ppd = new PrintPreviewDialog();

    ppd.Document = A5160;
    ppd.ShowDialog();
}
错误是:

无法将类型“System.Windows.Documents.FixedDocument”隐式转换为 '系统.绘图.打印.打印文档'


谢谢您的帮助。

我不太确定是否有简单的转换。一个简单的方法(如果不是一点耗时的话)是使用文档查看器创建一个预览对话框,以模拟您将看到的内容。然后使用FixedDocument的DocumentPaginator和常规打印对话框进行打印

的答案显示了如何创建XpsDocument,然后与自定义PrintPreview类一起使用。

WTF文档应始终受到限制。^)