Я пытаюсь понять, как правильно добавить пользовательские свойства к .docx
файлам программно в ruby. У меня также есть добавление office- js, в котором читаются эти пользовательские свойства, но об этом позже.
Вот шаги, которые я сейчас предпринимаю для добавления пользовательских свойств в файл .docx
в ruby:
- Открытие документа с использованием гема Docx и чтение содержимого архива с использованием
Docx:Document.open(filepath).zip
- Добавление в
docProps/custom.xml
файл с пользовательскими property
элементами, которые я хочу, например:
<property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="2" name="matter.id">
<vt:lpwstr>518</vt:lpwstr>
</property>
Добавление следующего элемента
Override
в файл
[Content_Types].xml
:
<Override PartName="/docProps/custom.xml" ContentType="application/vnd.openxmlformats-officedocument.custom-properties+xml"/>
Добавление следующего элемента
Relationship
в файл
_rels/.rels
:
<Relationship Id="rId5" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties" Target="docProps/custom.xml"/>
Примечание. Значение атрибута Id определяется количеством имеющихся <Relationship>
элементов.
После этих шагов: После запуска этого кода над пустым / вновь созданным документом я могу открыть файл в Word на моем компьютере, и мой офис- js add может успешно прочитать пользовательские свойства который я установил в своем ruby приложении.
Проблема: Когда я загружаю и открываю документ в Word Online Мой офис- js добавляем в не удается распознать настроенные пользовательские свойства.
Мой офис- js добавляет, читает и записывает пользовательские свойства, используя Microsoft Office- js apis, и при настройке свойств таким способом мое добавление возможность распознавать их как в Word, так и в Word Online, поэтому я почти уверен, что что-то упускаю при попытке установить свойства вручную в моей функции ruby.
Я пытался сравнить архивы обоих Файл .docx
с пользовательскими свойствами, установленными моей функцией ruby, и тот же файл с пользовательскими свойствами, установленными с помощью моего надстройки, и я просто не вижу заметных различий, из-за которых Word Online не может распознать пользовательские свойства устанавливаются с использованием моего ruby кода.
К сожалению, нет, похоже, каких-либо драгоценных камней ruby, которые позволили бы мне редактировать пользовательские свойства в файле docx, как в office- js apis, и именно поэтому я прибег к тому, чтобы делать это вручную.