2011-04-25 52 views
1

我正在C#和.NET 4中構建一個WPF應用程序,並需要打印兩份相同的文件。 我有下面的代碼,它完成了工作,但它不像Word打開兩次那樣漂亮。從WPF/C#.NET打印多份Word文檔4

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個拷貝?

回答

0

我通常通過WPF流程文檔進行打印。從那裏你可以創建WPF頁面,在其上調用打印命令,自動填充副本數量並執行打印作業。如果您只有一些文檔,您可以在XAML中重新創建它們,甚至將數據注入到它們中。開始有點費時,但一旦實施,速度非常快。沒有開場詞。只需打開一個xml文件作爲XamlDocument,通過ViewModel注入數據並打印。

雖然this不是專門關於流程文檔,它會讓你在那裏。

+0

謝謝,但坦率地說,打印一個Word(.docx)文件似乎有很多工作要做。我有一個「模板」.docx文件,我填寫並保存在硬盤上。之後,我需要將文件打印出來 - 就是這樣。你的建議似乎做了更多動態的東西。 – 2011-04-25 20:25:48

+0

我在一段時間後爲一個項目實施了這個項目。我們有3個文件(作爲一個開始)。我花了大約2個小時在WPF中創建文檔模板,在另一個小時內完成虛擬機和打印代碼。在計算Word的啓動時間和打印過程中,我們每天使用(約6秒)40次,每年260個工作日,我使用了17個小時。新流程幾乎立即(少於1/8秒)向打印機運行打印作業,在17小時內節省大部分時間。我使它非常模塊化,因此可以在稍後添加更多文檔以節省更多... – CodeWarrior 2011-04-25 20:35:57