База знаний KB0239

Размер файла PowerPoint быстро увеличивается с Microsoft 365

Проблема

Наиболее очевидным признаком является необычно большой размер файла презентаций PowerPoint, возможно, даже во много раз превышающий ожидаемый. В некоторых случаях проблема может привести к тому, что файлы будут очень медленно открываться, редактироваться и/или сохраняться или же их вообще будет невозможно открыть.

Данная проблема может возникнуть при следующих условиях:

  • файлы сохранены (или были) сохранены в SharePoint;
  • файлы зашифрованы (или были) зашифрованы, например в
    • Azure Information Protection,
    • Microsoft Information Protection,
    • Microsoft Purview Information Protection.
    • Ограничения доступа
  • Слайды или контент на слайдах содержат объекты Tags или CustomerData (think-cell и многие другие надстройки используют объекты тегов, как предписано Microsoft).

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

Решение

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

Таблица проблемных и исправленных версий приводится ниже:

Версия

Первая проблемная сборка

Доступное исправление:

2208

15601.20578

**

2301

16026.20002

**

2302

*

16130.20714

2303

*

**

2304

*

**

2305

*

**

2306

*

16529.20182

2307

*

16626.20000

* - проблема существовала в первоначальной версии
** - Исправлений не ожидается

Примечание: несмотря на то что исправление от Microsoft предотвращает возникновение проблемы, оно не восстанавливает проблемные файлы. Однако существует несколько вариантов очистки проблемных файлов, которые вместе с исправлением Microsoft должны решить проблему:

Анализ

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

PPT::FileIO::CustomerDataXmlReader::DeSerializeCustomerDataFromEncryptedStorage

эта функция была добавлена впервые в перечисленных версиях PowerPoint. Файлы, хранящиеся в SharePoint, содержат определенные файлы данных customXML, используемые для управления файлами SharePoint. При вызове функции кода все содержащиеся в нем файлы customXML в документе в целом дублируются для каждого слайда или объекта, содержащего Tag или CustomerData. При продолжении работы с проблемными файлами может произойти дальнейшее накопление этих ненужных данных в ходе выполнения обычных действий по редактированию.

Эту проблему можно воспроизвести без think-cell. Подробные шаги воспроизведения приводятся по ссылке:

Воспроизведение без think-cell:

  1. если think-cell неактивен или временно удален, откройте новую пустую презентацию PowerPoint без текстовых полей-заполнителей.
  2. Вставьте один прямоугольник PowerPoint, например, выбрав Вставка > Иллюстрации > Фигуры
  3. Откройте окно VBA (нажмите Alt+F11)
  4. В Окне непосредственной отладки (вы можете активировать его, нажав Ctrl+G, если оно отсутствует) введите следующее и нажмите Ввод:

    ActivePresentation.Slides(1).Shapes(1).Tags.Add "Test", "Tag"

  5. Закройте окно VBA
  6. В PowerPoint выделите и скопируйте прямоугольник с помощью Ctrl+D 30 раз, чтобы получить в общей сложности 31 прямоугольник (воспроизведение будет работать с меньшим количеством фигур, хотя размеры файлов будут соответственно различаться).
  7. Сохраните презентацию в SharePoint.

    После полной синхронизации с SharePoint размер документа должен быть примерно 54 КБ.

  8. Теперь перейдите во вкладку Файл в ленте PowerPoint и выберите ИнформацияЗащита презентацииОграничить доступОграниченный доступ:
  9. В появившемся диалоговом окне «Разрешения» установите флажок Ограничить разрешение для этой презентации и нажмите OK:
  10. Сохраните документ (например, нажав Ctrl+S), а затем полностью закройте его
  11. Откройте документ еще раз
  12. Снимите ограничение доступа, снова перейдя в ФайлИнформацияЗащитить презентациюОграничить доступ, и на этот раз выберите Неограниченный доступ
  13. Сохраните документ еще раз, а затем закройте его.

    Размер документа по-прежнему должен составлять 54 КБ, но его размер увеличился примерно до 195 КБ.

  14. Повторно откройте документ и повторите шаги 8–13

    Размер документа по-прежнему должен составлять 54 КБ, но его размер увеличился примерно до 5 МБ.

Изучив структуру файла (например, скопировав файл .pptx и изменив расширение файла копии на .zip, а затем распаковав архив), вы увидите, что количество файлов item*.xml и itemProps*.xml, содержащихся в подпапке customXml, изменится с 3 файлов каждого типа после синхронизации с SharePoint, до 96 файлов каждого типа после первого повторения и 2979 файлов каждого типа после второго повторения.

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

Почему влияет на think-cell

think-cell не использует данные customXML, но использует Tags в каждой фигуре или объекте, созданном с помощью think-cell. Таким образом, слайды, созданные с помощью think-cell, могут содержать особенно большое количество фигур с тегами, что из-за этой проблемы приводит к чрезвычайно быстрому дублированию данных customXML.

Поделиться