Не удается загрузить верхний и нижний колонтитулы при загрузке файла .docx в кодировке base64 с помощью API OfficeJS - PullRequest
0 голосов
/ 05 февраля 2019

Позвольте мне кратко изложить сценарий:

  • У нас есть файл .docx в кодировке base64.
  • Наша надстройка Word имеет функциональность, в которой мы запрашиваем внутренний API для получения файла .docx в кодировке base64.
  • Этот файл .docx в кодировке base64 (с заголовком, нижним колонтитулом и телом) загружается в MS Word с помощью надстройки Word.
  • Проблема в том, что тело документа загружено идеально, но верхний и нижний колонтитулы не загружаются в MS Word.
  • API Office JS, который используется для выполнения вышеуказанного, - Document.Body.insertFileFromBase64 ().

Шаги поясняются соответствующими скриншотами:

Шаг - 1 Создатьобразец документа с данными верхнего и нижнего колонтитула, как показано на скриншоте.enter image description here

Шаг - 2 Получите строку файла в кодировке Base64 вышеупомянутого файла .docx.

Шаг - 3 Мы создали угловой js 1.7 и угловой 6 Office JSПриложение-надстройка, которое принимает строку файла в кодировке .docx base64 и загружает этот файл в MS Word.3.1 Приложение Angular 6 для Office JS Add-in выглядит следующим образом: enter image description here

3.2 Мы вводим строку кода в кодировке base64 из шага 2 в текстовое поле, отображаемое в пользовательской надстройке Word, разработаннойнас.При нажатии кнопки «загрузить файл» наша надстройка загружает актуальный файл из строки в кодировке base64.enter image description here

3.3 Как показано на скриншоте ниже, верхний и нижний колонтитулы исчезают, и в MS Word загружается только тело.enter image description here

3.4. API Office JS, используемый в пользовательской надстройке Word, является context.Document.Body.insertFileFromBase64 (,) CDN API Office JS: https://appsforoffice.microsoft.com/lib/1/hosted/Office.js enter image description here

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

1 Ответ

0 голосов
/ 05 февраля 2019

Это связано с тем, как Word предназначен для работы.

Заголовки и нижние колонтитулы являются свойствами уровня раздела - они связаны с разрывами разделов.По умолчанию документ Word имеет один разрыв раздела, и верхние и нижние колонтитулы по умолчанию принадлежат этому.

Когда файл вставляется в существующий документ, это делается без этого последнего раздела по умолчаниюперерыв (который связан с последним знаком абзаца).Входящий контент приобретает свойства раздела целевого раздела.Это отсекает верхние и нижние колонтитулы.

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

Если существующие заголовки и нижние колонтитулы в целевом документе должны быть сохранены, все становится гораздо сложнее.В этом случае требуется дополнительный разрыв раздела в целевом документе, чтобы «удерживать» эти верхние и нижние колонтитулы.В зависимости от порядка вставки элементов могут потребоваться дополнительные разрывы разделов, чтобы гарантировать, что содержимое верхних и нижних колонтитулов не зависит друг от друга (по умолчанию они связаны , так что каждый последующий раздел «наследуется»"из предыдущего).

Альтернатива для кода Office JS состоит в том, чтобы взять информацию верхнего и нижнего колонтитула и записать ее в целевой документ отдельно, используя JS API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...