Как стать автором
Обновить

Текст любой ценой: PPT. Дубль второй

Время на прочтение 1 мин
Количество просмотров 1.4K
Недавно я анонсировал свой вариант чтения презентаций PowerPoint с помощью чистого PHP. Тогда я с сожалением отметил, что класс сырой и нуждается в доработке. Долго ли, коротко ли, но ошибки были найдены — теперь файлы читаются заметно лучше, без всякой грязи. Надеюсь, вам пригодятся мои наработки.

Ошибка (основная), как и предполагалось была в неправильном прочтении PersistDirectory. То ли мой английский меня подводит, то ли Microsoft слишком запутанно пишет свои документы, но как читать структуру по смещению OffsetPersistDirectory я сообразил не сразу же. Оказывается структура состоит из троек: PersistId — ID первого вхождения в директорию, cPersist — количество вхождений, которые нужно прочесть, после данного значения. А потом n = cPersist четырёхбайтовых значений persistOffset — смещений к вхождениям в PersistDirectory.

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

Код с комментариями вы можете получить на GitHub'е.

Текст любой ценой


Теги:
Хабы:
+36
Комментарии 13
Комментарии Комментарии 13

Публикации

Истории

Работа

PHP программист
175 вакансий

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн