可以将固定文档转换为 Drawing.Printing.PrintDocument



我为工作编写了一个标签制作程序。 它使用打开对话框来拉取数据。 将其拆分并放在表中。 那里没有问题。 设置 FixedDocument 以打印用户控件标签以及存储固定文档数据的类都可以很好地工作。

唯一的问题是,在文本搜索和打印控制方面,我无法忍受对 WPF 文档的限制。 我已经使用了一个打印预览对话框,但这不使用固定文档。

我需要知道它是否可以用简单的代码转换,或者我是否必须重写我的整个类并返回到 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 和常规 PrintDialog 进行打印。

此问题的答案显示了如何通过创建一个 XpsDocument 来执行此操作,然后该文档与自定义 PrintPreview 类一起使用。

最新更新