【问题标题】:Printing multiply copies of Word document from WPF/C# .NET 4从 WPF/C# .NET 4 打印 Word 文档的多个副本
【发布时间】:2011-04-25 19:41:33
【问题描述】:

我正在用 C# 和 .NET 4 构建一个 WPF 应用程序,并且需要打印出同一个文件的两个副本。 我有以下代码,可以完成工作,但它不是那么漂亮,因为 Word 打开了两次。

Process myProcess = new Process();
        myProcess.StartInfo.FileName = invoiceFileAbsoluteStoreagePath;
        myProcess.StartInfo.Verb = "Print";
        myProcess.StartInfo.CreateNoWindow = true;
        //Print out two copies - ugly! - no better way apparently
        myProcess.Start();
        myProcess.WaitForExit();
        //Let's do it again... there need to be a better way :(
        myProcess.Start();
        myProcess.WaitForExit();

我不能以某种方式向 Word 发送参数,让它知道我想要此文档的 X 份副本吗?

【问题讨论】:

    标签: wpf printing .net-4.0 ms-word


    【解决方案1】:

    我通常通过 WPF 流文档进行打印。从那里您可以创建 WPF 页面,在其上调用打印命令,自动填充份数并执行打印作业。如果您只有几个文档,您可以在 XAML 中重新创建它们,甚至将数据注入其中。开始有点费时,但一旦实施,速度相当快。没有开场白。只需将 xml 文件作为 XamlDocument 打开,通过 ViewModel 注入数据,然后打印。

    虽然this 不是专门针对流文档的,但它会带您到达那里。

    【讨论】:

    • 谢谢,但坦率地说,打印一个 Word (.docx) 文件似乎需要做很多工作。我有一个“模板”.docx 文件,我填写并保存在硬盘上。之后,我需要将文件打印两次 - 就是这样。您的建议似乎更有活力。
    • 我在不久前从事的一个项目中实现了这一点。我们有 3 份文件(从一份开始)。我花了大约 2 个小时在 WPF 中创建文档模板,另外一个小时来完成 VM 和打印代码。在对 Word 的启动和我们使用的打印过程进行计时(大约 6 秒)后,每天 40 次乘以每年 260 个工作日,我得出了 17 个小时的使用时间。新流程几乎立即(不到 1/8 秒)将打印作业运行到打印机,节省了 17 小时的大部分时间。我使它非常模块化,以便以后可以添加其他文档以节省更多...
    猜你喜欢
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多