Возможно, вы не используете лучшую модель программирования.То, что вы делаете, полагается на оболочку Windows, чтобы открыть документ и вызвать зарегистрированный глагол (как определено Word в локальном реестре).Это самый примитивный и наименее функциональный способ выполнения работы.Например, нет способа изменить, на каком принтере вы печатаете ... или сколько копий или на каких страницах и т. Д.
Вместо этого есть богатая модель программирования, которую Word (и все приложения Office)предоставлять.Вы можете открывать документы и распечатывать их с указанием нужного вам количества копий.
Чтобы получить доступ к этой модели программирования, вам нужно сослаться на сборку взаимодействия .COM для Word, а именно:
![Word interop assembly](https://i.stack.imgur.com/axh1k.png)
... и узел взаимодействия Office Core:
![Office Core interop assembly](https://i.stack.imgur.com/IcdrZ.png)
Затем,это просто вопрос вождения Word, чтобы делать то, что вы хотите.Например:
using System;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1: Form
{
public Form1( )
{
InitializeComponent( );
}
private void button1_Click( object sender, EventArgs e )
{
//--> assumes the textBox1.Text contains the file to open...
var app = new Microsoft.Office.Interop.Word.Application( );
var doc = app.Documents.Open( textBox1.Text, ReadOnly: true );
doc.PrintOut( Copies: 1 );
doc.Close( );
app.Quit( );
}
}
}
Обратите внимание, что для этого необходимо установить Word на локальный компьютер.Для получения дополнительной информации, посмотрите слово объектная модель .