Pull to refresh

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

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

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

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

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

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


Tags:
Hubs:
+36
Comments13

Articles