powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Word автоматизация
10 сообщений из 10, страница 1 из 1
Word автоматизация
    #39827099
densmile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, добрый день.

Есть проект консольного приложения, которое должно работать из шедулера на сервере либо на каком-то компьютере, но тоже из шедулера. Приложение открывает шаблон 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
Word автоматизация
    #39827127
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Word автоматизация
    #39827295
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
densmile,

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

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

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

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

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

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

да


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

да

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

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


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