可以将FixedDocument转换为Drawing.Printing.PrintDocument吗?

时间:2012-09-26 09:55:49

标签: c# wpf

我写了一个标签制作程序。它使用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'隐式转换为       'System.Drawing.Printing.PrintDocument'

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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

this question的答案显示了如何通过创建XpsDocument来实现它,然后将其与自定义PrintPreview类一起使用。