PHP

индекс
206,76

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

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

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

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

Код с комментариями вы можете получить здесь: cfb.php и ppt.php. Там же можно найти мои старые наработки.

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


+36
29 ноября 2009, 18:04
50

комментарии (13)

–20
Yolenzo #
КАРМЫ, КАРМЫ, КАРМЫ, КАРМЫ, КАРМЫ, КАРМЫ, КАРМЫ, КАРМЫ.
–6
Ewg #
Началась раздача «щедрости»
–8
Yolenzo #
Спасибо, Спасибо, Спасибо, Спасибо.
–5
usja #
Главное не «перебрать»
–6
DonRamon #
Ребят, минусую всех — давайте перестанем баловаться и, если есть мысли, поговорим по теме.
–2
roskov #
А по поводу чтения маковских презентаций от Keynote (пакет iWork для Mac — *.key) ничего не будет слышно?.. Или там все совершенно по-другому?..
PS: исключая вариант конвертации из *.key в *.ppt
0
DonRamon #
Вообще, я, как никогда не работавший под Mac'ом, в первый раз слышу о таком формате презентаций. Видать, «очень распространённый». Пока такая штука не требовалась, другое дело я даже не могу в интернетах найти хоть один пример, чтобы глянуть, что внутри. У Вас есть?
0
corbenov #
спасибо что выкладываете готовые решения
есть надежда что вы возьметесь за парсинг текста из flash?
+1
DonRamon #
*аж поперхнулся*
*полез в Wikipedia читать про SWF*
*нашёл спецификацию SWF*
*почесал репу*
Ээээ… похоже теоретически это возможно. Вам очень надо? За определённые ресурсы я бы взялся за подобную реализацию.
0
papikus #
Поддерживаю предыдущего оратора, вот только бы еще Actionscript из swf вытягивать. Или я чересчур многого хочу?
0
DonRamon #
Похоже есть какие-то наработки по этому поводу: www.google.com/search?client=opera&rls=ru&q=getting+actionscript+from+swf&sourceid=opera&ie=utf-8&oe=utf-8
Не уверен, что есть варианты на PHP, просто я не знаю насколько это вообще кому-то нужно. Особенно на PHP.
0
sergpenza #
Большое спасибо за ваш труд, очень помогает в работе.
Прошу извинить, если я что то пропустил, не планируется ли статья «Текст любой ценой: XLS»?

— Скажи мне, бледнолицый брат мой, не собирается ли синематограф обратиться к жизни команчей? У меня есть потрясающий сюжет.
— Да-да, па-атрясающий!
0
DonRamon #
www.codeplex.com/PHPExcel/
sourceforge.net/projects/phpexcelreader/
Как подсказывали добрые люди в прошлом «дубле».

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

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.