У меня проблема при попытке программно напечатать каталог документов Word. В этом примере я пытаюсь распечатать только файлы с префиксом «3_». Проблема в том, что файл не печатается, если нет двух файлов с префиксом 3_. Я искал вечно, чтобы понять эту проблему. Что-то не так с тем, как я открываю файл? Он работает только при наличии двух файлов в каталоге, и в этом случае он распечатает только один из двух файлов.
Редактировать: я пробовал окно сообщения, и путь правильный. Имя файла правильное. Кроме того, если я наблюдаю за принтером в папке принтеров, документ будет мигать в течение короткой секунды, а затем исчезнет (печать приостановлена, чтобы я мог видеть вывод). Если слово дает мне ошибку, почему оно не отображается? И почему это работает, если в каталоге есть два файла с префиксом 3_?
Edit: я думаю, что это проблема с методом printout (). Когда я устанавливаю приложение видимым и запускаю его, документ открывается нормально, но ничего не печатается. Я могу открыть документ вручную и распечатать (что отлично работает).
Редактировать: Спасибо всем за ответы. Был задан фоновый параметр в методе printout (). Программа завершала работу до того, как печать могла полностью заскочить (вот почему я видел, как документ мигал в очереди печати и исчезал. Отключение фоновой печати требовало, чтобы документ оставался открытым, и печать была ключевой. Спасибо
string[] filesToCheck = Directory.GetFiles(clientDirectoryPath);
Object filename = null;
for (int i = 0; i < filesToCheck.Count();i++ )
{
if(filesToCheck[i].Contains("3_"))
{
filename = filesToCheck[i];
wrdDoc = wrdApp.Documents.Open(ref filename, ref oMissing, ref oTrue, ref oFalse,
ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing);
wrdDoc.PageSetup.FirstPageTray = letterHeadTray;
wrdDoc.PageSetup.OtherPagesTray = defaultTray;
wrdDoc.PrintOut(ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing);
wrdDoc.Close(ref oFalse, ref oMissing, ref oMissing);
wrdDoc = null;
}
}