2011-04-25 2 views
1

Я создаю приложение WPF на C# и .NET 4 и вам нужно распечатать две копии одного и того же файла. У меня есть следующий код, который выполняет свою работу, но это не так, как Word открывается дважды.Печать многократных копий документа Word из WPF/C# .NET 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-файла, который я заполняю и сохраняю на жестком диске. После этого мне нужно распечатать файл из twince - вот и все. Ваше предложение, похоже, делает гораздо более динамичный материал. –

+0

Я реализовал это для проекта, над которым я работал некоторое время назад. У нас было 3 документа (началось как одно). Мне потребовалось около 2 часов, чтобы создать шаблоны документов в WPF, еще час, чтобы сделать виртуальные машины и напечатать код. После выбора времени запуска Word и процесса печати мы использовали (около 6 секунд) раз 40 раз в день раз 260 рабочих дней в году, я придумал 17 часов. У нового процесса была запущена работа с принтером почти мгновенно (менее 1/8 секунды), что позволило сохранить большую часть этих 17 часов. Я сделал его довольно модульным, чтобы добавить дополнительные документы позже, чтобы сохранить больше ... – CodeWarrior

Смежные вопросы