сотрудник: этот документ содержит поля, которые могут ссылаться на другие файлы - PullRequest
1 голос
/ 05 февраля 2020

Я создаю выходы Microsoft Word, используя замечательный офицерский пакет в R. Я использую шаблонный документ Word, чтобы задать большую часть форматирования.

Ниже приведен фрагмент кода, который иллюстрирует, что я делаю.

library("officer")

read_docx("Output Template Blank.docx") %>%
body_add_par(value = "Kaplan-Meier Analysis of Time (Months) to HSV-2 Episodes", style = "caption") %>%
body_add_flextable(my_km_table, align = "left") %>%
print("Kaplan-Meier Output.docx")

В целом это работает очень хорошо. Единственная проблема заключается в том, что при открытии документа в Word возникает нежелательное сообщение.

"Этот документ содержит поля, которые могут относиться к другим файлам. Хотите обновить поля в документе?"

Я могу избавиться от этого, нажав «Да», слегка изменив документ, добавив пробел, а затем нажав «Сохранить». Я предпочел бы не делать это вручную, хотя и надеялся, что есть лучший способ. Я исследовал это некоторое время назад и вспомнил, что есть способ отключить это в Microsoft Word. Я также напоминаю, что это воспринималось как угроза безопасности. Я не уверен, насколько велик риск. Поэтому мне интересно, может ли это быть хорошим решением или действительно есть лучший способ.

1 Ответ

1 голос
/ 06 февраля 2020

Это продуманное дизайнерское решение по соображениям безопасности. Некоторые виды полей Word могут обращаться к внешним данным. Политика Microsoft в этом отношении заключается в том, что ответственность за открытие документа (и принятие риска) лежит на пользователе - пользователь должен решить, поступил ли документ из надежного источника.

По этой причине, если поля настроены на автоматическое обновление, появится сообщение, спрашивающее пользователя, разрешить ли обновление.

Можно вставлять поля, а не установить автоматическое c обновление. В этом случае пользователю нужно будет вручную обновить поля или , может существовать надстройка, которая позаботится об этом при открытии любого документа. Поскольку пользователь выбрал установку надстройки, это опять-таки ответственность пользователя.

Единственный другой способ подавить сообщение - открыть документ и обновить поля перед его передачей пользователь. Программно это можно сделать либо с помощью автоматизации Word (не на стороне сервера), либо в локальной версии SharePoint, на которой установлены службы автоматизации Word.

...