Размер файла 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:
- если think-cell неактивен или временно удален, откройте новую пустую презентацию PowerPoint без текстовых полей-заполнителей.
- Вставьте один прямоугольник PowerPoint, например, выбрав Вставка > Иллюстрации > Фигуры
- Откройте окно VBA (нажмите Alt+F11)
-
В Окне непосредственной отладки (вы можете активировать его, нажав Ctrl+G, если оно отсутствует) введите следующее и нажмите Ввод:
ActivePresentation.Slides(1).Shapes(1).Tags.Add "Test", "Tag"
- Закройте окно VBA
- В PowerPoint выделите и скопируйте прямоугольник с помощью Ctrl+D 30 раз, чтобы получить в общей сложности 31 прямоугольник (воспроизведение будет работать с меньшим количеством фигур, хотя размеры файлов будут соответственно различаться).
-
Сохраните презентацию в SharePoint.
После полной синхронизации с SharePoint размер документа должен быть примерно 54 КБ.
- Теперь перейдите во вкладку Файл в ленте PowerPoint и выберите Информация → Защита презентации → Ограничить доступ → Ограниченный доступ:
- В появившемся диалоговом окне «Разрешения» установите флажок Ограничить разрешение для этой презентации и нажмите OK:
- Сохраните документ (например, нажав Ctrl+S), а затем полностью закройте его
- Откройте документ еще раз
- Снимите ограничение доступа, снова перейдя в Файл → Информация → Защитить презентацию → Ограничить доступ, и на этот раз выберите Неограниченный доступ
-
Сохраните документ еще раз, а затем закройте его.
Размер документа по-прежнему должен составлять 54 КБ, но его размер увеличился примерно до 195 КБ.
-
Повторно откройте документ и повторите шаги 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.