Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.226.251.68] |
|
Сообщ.
#1
,
|
|
|
Приветствую!
В рамках программы перевода .doc в .htm у меня возникла проблема: выяснилось, что вокруг очень мало документации по структуре документов .doc . Ситуация: есть текст, в нем встречаются картинки, таблицы, просто текст -- и все это надо корректно перенести в .htm -файл. Если перебирать коллекции объектов -- например, WordDocument.Paragraphs Сам вопрос. Есть ли некий класс объектов, который можно перебирать и обрабатывать объект по его типу? Если нет -- как еще можно организовать этот процесс? И еще один вопрос. Я слышал, что можно конвертировать сначала в .XML, а потом уже делать парсинг тегов. Сам вопрос -- есть ли стандартные функции перевода .doc -> .XML ? Если есть, то какие? Если нет -- есть ли компоненты для этого (желательно, со ссылкой). Спасибо. |
Сообщ.
#2
,
|
|
|
Цитата Shadowy,9.01.05, 11:05 @ выяснилось, что вокруг очень мало документации по структуре документов .doc И ты ее не сможешь найти, она закрыта . Структура документа строится на формате структурированных хранилищь, доступ к которым можно получить при помощи интерфейса IStorage, который в свою очередь строится на основе POIFS. Проще воспользоваться примером от jack128, не сильно вникая в подробности. Если есть желание и время могу рассказать подробности по форматам, но оно того думаю не стоит (в принципе 2 месяца назад краткое описание структуры POIFS я приводил на форуме) M Сообщения были разделены в тему "DOC -> HTML" |
Сообщ.
#3
,
|
|
|
Rouse_ спасибо за ответ. Проблема заключается в том, что мне нужно текст по мере записи в .htm еще и
править -- формы там вставлять заместо некоторых элементов, цвет менять... Я почитал описание IStorage, и возникло несколько вопросов: 1. Это стандартный компонент? Я не нашел его в списках компонент, его нет в хелпе, и (самое главное) компилятор не может его найти. А в сети о нем говорят как о чем-то само собой разумеющимся... Если это стандартный компонент -- подскажи слепому место, где он лежит, плиз Или модуль, который его объявляет. Если же нет -- пожалста кинься в меня ссылкой, где его можно скачать... 2. Перебор по объектам -- штука замечательная, но перебирая IStorage (опять-таки, не нашел его), я чувсвтую, что его придется как-то конвертить в удобочитаемую форму, проводя разбор по IStream. Правильно ли я понял? 3. Учитывая все это -- может проще и безгеморройнее будет сначала сконвертить все в .htm, а затем сделать парсинг? (какой кошмар! Парсинг тегов XML я себе представляю, но провести разбор того, что громоздит Word?.. ) Есть ли способ напрямую из Delphi законвертить документ в XML? что-нибудь в стиле "сохранить как, XML"? 4. Неужто нет более простого пути? Вроде ссылки в таблице/рисунке на номер параграфа, в котором они расположены, или еще что... Спасибо. |
Сообщ.
#4
,
|
|
|
Уря! Нашел решение данной проблемы (хоть и частичное)!
В долгом прроцессе поиска по сети выловил ссылку на файл VBAWRD9.CHM (в Офисе). Там подробно изложена структура документа. И как выяснилось, у объекта Range также есть перечисление Tables !!! То есть paragraph_current:=WordDocument.Paragraphs.Item(i); paragraph_current.Range.Tables.Item(j);// <--- Доступ к таблице по параграфу !!!! ЗЫЖ Но если есть еще какие методы, позволяющие сделать это еще менее напряжно -- буду рад узнать. Всем спасибо Удачи! |