Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Word автоматизация / 10 сообщений из 10, страница 1 из 1
17.06.2019, 09:48
    #39827099
densmile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word автоматизация
Коллеги, добрый день.

Есть проект консольного приложения, которое должно работать из шедулера на сервере либо на каком-то компьютере, но тоже из шедулера. Приложение открывает шаблон word-документа, проставляет в определенные места данные, заменяя ключевые слов значениями из базы, сохраняет этот файл в формате pdf и отправляет письмом с вложением.

Если запускать это приложение на сервере (SQL и Word установлены, доступ есть) из под залогиневшегося пользователя, все работает. Если запускать с правами тогоже пользователя из шедулера (шедулер виндовый), то не работает. То не может Word активировать, то не может выполнить SaveAs2. Использую позднее связывание для работы с Word.
При запуске на сервере под пользователем на открытие Word вот такая ошибка: Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)). Куда нет доступа? И что надо сделать, чтобы был доступ?
На рабочей станции под Win10 с правами администратора на машину Word открывает, но падает при сохранении файла. Ошибка: Ссылка на объект не указывает на экземпляр объекта.

Код на котором падает:

InvokeMember("SaveAs2", curdoc, new object[] { FileNameSave, 17 }); Сохранение файла в формате pdf

private static object InvokeMember(string method, object instance, object[] parameters)
{
Type type = instance.GetType();
return type.InvokeMember(method,
BindingFlags.InvokeMethod, null, instance, parameters);
}

curdoc - текущий документ ворд.
curdoc = docWord.GetType().InvokeMember("Open", BindingFlags.InvokeMethod, null, docWord, new object[] { FileNameOpen });
...
Рейтинг: 0 / 0
17.06.2019, 10:57
    #39827127
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word автоматизация
...
Рейтинг: 0 / 0
17.06.2019, 15:40
    #39827295
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word автоматизация
densmile,

Нельзя работать с MS Office на сервере через OLE. Нужно использовать отдельные библиотеки и инструменты.
...
Рейтинг: 0 / 0
17.06.2019, 15:55
    #39827305
densmile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word автоматизация
hVosttdensmile,

Нельзя работать с MS Office на сервере через OLE. Нужно использовать отдельные библиотеки и инструменты.

Можете подсказать что надо использовать в данном случае?
...
Рейтинг: 0 / 0
17.06.2019, 15:58
    #39827308
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word автоматизация
densmile,

OpenOfficeXml https://habr.com/ru/post/109820/
...
Рейтинг: 0 / 0
17.06.2019, 16:09
    #39827325
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word автоматизация
densmileМожете подсказать что надо использовать в данном случае?

https://www.nuget.org/packages/DocumentFormat.OpenXml/
...
Рейтинг: 0 / 0
17.06.2019, 17:57
    #39827407
densmile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word автоматизация
Коллеги,

спасибо. Буду изучать. Но в догонку еще пара вопросов:
1. Смогу ли я из своего консольного приложения работать этим методом с Вордом?
2. Можно ли будет сохранить полученный документ в pdf-формат?
...
Рейтинг: 0 / 0
17.06.2019, 18:09
    #39827412
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word автоматизация
densmile1. Смогу ли я из своего консольного приложения работать этим методом с Вордом?

да


densmile2. Можно ли будет сохранить полученный документ в pdf-формат?

да

https://gist.github.com/satish860/7729201
...
Рейтинг: 0 / 0
18.06.2019, 16:16
    #39827826
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word автоматизация
hVosttdensmileМожете подсказать что надо использовать в данном случае?

https://www.nuget.org/packages/DocumentFormat.OpenXml/
походу этот пакет не умеет запароленные xlsx файлы пережевывать... :( (если защитить весь документ, а не его части)
пишет, что формат не подходящий, а вот EPPlus норм их хавает :(
...
Рейтинг: 0 / 0
18.06.2019, 18:13
    #39827904
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word автоматизация
densmileПриложение открывает шаблон word-документа, проставляет в определенные места данные, заменяя ключевые слов значениями из базы, сохраняет этот файл в формате pdf и отправляет письмом с вложением.
Если конечным файлом является PDF, то я бы не заморачивался c Вордом, а делал бы HTML.
Возмjжно из XML через XSLT
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Word автоматизация / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]