AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.06.2015, 14:54   #1  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
В пакете создать документ Word из шаблона, сохранить в PDF
Ax2012 R3, Windows Server 2012 R2, Office 2013 (x32 или x64)

Вкратце, появилась необходимость в периодической операции, которая будет создавать документы Word на основе шаблонов и сохранять в PDF в указанном каталоге. Я в курсе, что MS не рекомендует серверную автоматизацию с использованием офиса и в качестве альтернативы, опять же, рекомендует Open XML SDK. Сходу не удалось найти нормального бесплатного способа затем отрендерить документ в PDF (может кто-то знает, поделитесь библиотекой), поэтому было решено использовать Microsoft.Office.Interop.Word, поверх которого была написана своя библиотека (из-за известных проблем с передачей параметров по ссылке).

На девелоперском окружении все заработало (проверял клиент/сервер, до пакета не дошло, т.к. CIL собрать нереально там).

На тестовом стенде начались проблемы при открытии файла шаблона, а именно в методе
X++:
Microsoft.Office.Interop.Word.Document.Documents.Add([ref object Template = Type.Missing], [ref object NewTemplate = Type.Missing], [ref object DocumentType = Type.Missing], [ref object Visible = Type.Missing]);
Метод из библиотеки-обертки на C#
PHP код:
public void newFile(string  templateFileName,
                    
Boolean visible false,
                    
Boolean newTemplate false,
                    
int     documentType 0)
{
    
System.Object oFileName templateFileName;
    
System.Object oNewTemplate newTemplate;
    
System.Object oDocumentType documentType;
    
System.Object oVisible visible;

    if (
app == null)
    {
        
app = new Microsoft.Office.Interop.Word.Application();
    }

    
app.Visible visible;
    
doc app.Documents.Add(ref oFileNameref oNewTemplateref oDocumentTyperef oVisible);

  1. При выполнении кода на сервере:
    • указав сетевой путь, вида «\\server-name\pk\test.docx» - пишет, что файл не найден, не существует или перемещен
    • указав сетевой путь через IP, вида «\\127.0.0.1\pk\test.docx» - пишет, что файл не найден, не существует или перемещен
    • указав локальный путь, вида «C:\Tmp\test.docx» - пишет, что файл поврежден, попробуйте восстановить
  2. При выполнении кода на клиенте, НО под той же учетной записью, под которой крутится АОС и на той же машине
    • указав сетевой путь, вида «\\server-name\pk\test.docx» - пишет, что не удалось открыть банк макросов
    • указав сетевой путь через IP, вида «\\127.0.0.1\pk\test.docx» - пишет, что файл не найден, не существует или перемещен
    • указав локальный путь, вида «C:\Tmp\test.docx» - все работает
Всевозможные манипуляции с правами на каталоги и настройка политик безопасности внутри Word ничего не дали (за исключением пункта 2.1, все работает, при условии добавления пути в Доверенные местоположения Word’a). Учетную запись АОСа включили в группу администраторов, версии Word пробовали как 32-х, так и 64-х разрядные, ошибки те же.

По поводу банка макросов нашел
https://support.microsoft.com/en-us/kb/224338
Но не совсем понял, как настроить без добавления в группу администраторов. В DCOMCNFG есть Microsoft Excel Appliaction, но нет Ворда (есть непонятный Документ Microsoft Word 97–2003).

После того, как на девелоперском переустановили Office, работать там тоже перестало, ошибки те же.

В общем, может кто-то сталкивался и знает, почему он упорно пишет, что файл не существует. Или другой адекватный способ сохранения в PDF без Word.
__________________
Кононов Пётр

Последний раз редактировалось pedrozzz; 09.06.2015 в 15:14.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
SSRS отчет сохранить в PDF из кода Axapta 2009 ex3em DAX: Программирование 4 23.06.2014 10:32
Word в PDF из Х++ через документооборот custtable DAX: Программирование 4 22.07.2008 18:37
при построении перекрёстных ссылок выдаётся сообщение об ошибках mmmax DAX: Программирование 10 21.01.2005 12:42
Создание нескольких экземпляров Word на основе шаблона axaLearner DAX: Программирование 5 03.01.2005 16:12
Как сохранить документ Word(ComWordDocument_RU) listener DAX: Программирование 4 14.08.2003 12:02

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:22.