Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.17;
Скачать: CL | DM;

Вниз

Подскажите, где найти описание формата *.doc?   Найти похожие ветки 

 
rts111 ©   (2008-01-16 19:49) [0]

Подскажите, где найти описание формата *.doc? ( binary ) ( Word Office )
Читал где-то, что мол MS выкладывали на MSDN, но найти не могу?


 
ketmar ©   (2008-01-16 20:00) [1]

официального нет. только rtf и новомодный OOXML (или как там оно?)


 
OSokin   (2008-01-16 20:06) [2]

Можно выдрать из исходников OpenOffice ;)


 
rts111 ©   (2008-01-16 20:13) [3]


> ketmar ©   (16.01.08 20:00) [1]
> официального нет. только rtf и новомодный OOXML (или как
> там оно?)


А может что "не официальное" подскажите?
Можно и не самое современное,
подойдет и описание формата *.doc для Office97.

Мне нужно программно формировать документ,
там бывают, например, огромные таблицы,
и через TWordApplication очень медленно получается.
Хотелось бы непосредственно в программе это все делать.


 
Piter ©   (2008-01-16 20:16) [4]

rts111 ©   (16.01.08 20:13) [3]
там бывают, например, огромные таблицы,
и через TWordApplication очень медленно получается


копай в эту сторону, быстрее ворда ты 99% не сделаешь. Видимо, неоптимально работаешь с вордом (хотя таблицы это вроде EXCEL получается) через COM.


 
Mystic ©   (2008-01-16 20:21) [5]

> копай в эту сторону, быстрее ворда ты 99% не сделаешь

А обосновать?


 
Александр Иванов ©   (2008-01-16 20:22) [6]

В сторону WordML посмотри.
С его помощью делал отчеты. Через COM огромный отчет формировался несколько часов. С помощью WordML - десятки секунд.


 
rts111 ©   (2008-01-16 20:25) [7]


> Piter ©   (16.01.08 20:16) [4]
> rts111 ©   (16.01.08 20:13) [3]
> там бывают, например, огромные таблицы,
> и через TWordApplication очень медленно получается
>
> копай в эту сторону, быстрее ворда ты 99% не сделаешь. Видимо,
>  неоптимально работаешь с вордом (хотя таблицы это вроде
> EXCEL получается) через COM.


Да сами то таблицы формируются мгновенно,
но вот когда я их вставляю в Word,
начинаются тормоза.
Или например если удаляю первую строчку из большой таблицы,
документ начинает весь перестраиваться,
и опять все очень медленно получается.


 
Семен Сурков   (2008-01-16 20:26) [8]

Раньше было описание на сайте openoffice.
Убрали, наверное по требования MS :)


 
Семен Сурков   (2008-01-16 20:30) [9]

2Автор. Имей в виду - формат очень непростой. Я серьезно сомневаюсь, что ты с ним справишься. Я в свое время его смотрел.


 
rts111 ©   (2008-01-16 20:32) [10]


> Семен Сурков   (16.01.08 20:26) [8]
> Раньше было описание на сайте openoffice.
> Убрали, наверное по требования MS :)


А вы не в курсе, сам этот формат очень трудный?
Может в нем разобраться скажем средний программист за неделю?


 
rts111 ©   (2008-01-16 20:33) [11]


> Семен Сурков   (16.01.08 20:30) [9]
> 2Автор. Имей в виду - формат очень непростой. Я серьезно
> сомневаюсь, что ты с ним справишься. Я в свое время его
> смотрел.


Ну и как, понял что к чему?


 
Александр Иванов ©   (2008-01-16 20:36) [12]

Мне формат показался простым. По крайней мере простые элементы типа параграфов, таблиц. Разбирался без справочника, простым сохранением в формат XML и просмотром получившегося кода.


 
rts111 ©   (2008-01-16 20:38) [13]


> Семен Сурков   (16.01.08 20:30) [9]
> 2Автор. Имей в виду - формат очень непростой. Я серьезно
> сомневаюсь, что ты с ним справишься. Я в свое время его
> смотрел.


А у Вас случайно не заволялось это описание? :)


 
ketmar ©   (2008-01-16 20:41) [14]

>[3] rts111 ©(16.01.08 20:13)
вроде бы старый в районе wotsid видел. или то rtf был?

кстати. а что, rtf нельзя по реигиозным причинам? оно отлично держит практически всё, что держит .doc.


 
ketmar ©   (2008-01-16 20:44) [15]

>[10] rts111 ©(16.01.08 20:32)
>А вы не в курсе, сам этот формат очень трудный?

это compound document. внутри лежат ещё несколько файлов -- сам документ, объекты всякие, etc. разобраться можно (вон, AbiWord и OO читают же %-), но смысл?


 
rts111 ©   (2008-01-16 20:47) [16]


> ketmar ©   (16.01.08 20:41) [14]


Вот описание *.rtf мне тоже уже встречалось,
и даже кажется где-то у меня есть, а *.doc - это требование заказчика.


 
Amoeba ©   (2008-01-16 20:52) [17]

Еще могу добавить ко всему вышесказанному, что формат MSWord (по 2003 включительно) завязан на такую штуку в MS Windows (не знаю, насколько открыт он), как Structured Storages (доступ через  ф-ии WinAPI, относящиеся  к IStorage + IStream). А то, что внутри того, что похоже на дерево папок в файлами (структура легко доступна через вышеназванное API) - пес его знает. Так что понятие формата здесь неоднозначно и имеет немного общего, например, с RTF и т.п.. Вобщем, утешительного мало.


 
Kerk ©   (2008-01-16 20:56) [18]

Примеры работы с Structured Storages есть на http://code.progler.ru :)


 
Семен Сурков   (2008-01-16 20:57) [19]

2Автор

Мой совет - не берись писать сам. Выкрутись, тот же rtf использовй, потому его открывай в word и сохраняй как doc. Сам не пиши.

Описания не завалялось, т.к. моей задачей был XLS. Я его тогда сделал. В принципе уровень нужен выше среднего, т.к. описано было не все, что-то пришлось имперически "поднимать".

Когда доделал был удивлен изрядно, что для XLS есть уже компонент, причем много мощнее моего - XLSReadWrite. Если бы знал, что есть, то его бы использовал. Могу тебе сказать совершенно точно, что достичь уровня XLSReadWrite вообще нереально (я его исподники видел - в осле лежали).

О чем это я? Да о том, что поищи придирчиво - может и для Word есть аналогичный компонент. Потрать время, ВОЗМОЖНО, что оно окупится.


 
TStas ©   (2008-01-16 21:04) [20]

Вообще-то СОМ тешнология торомзная от природы. ВордАппликейшн - не придел совершениства. Есть книжка, притом она продавалась еще недавно в БИблиоГлобусе "ПРограммирование документов и приложений МС офис в Дельфи". Конечно, возможностей там намного больше, чем TWordApplication. Писать самому не лучший выход, т. к. огромное кол-во сил будет убито на отладку т. е. зря.
Если речь идет о таблицах в ворде, то в этой книжке они как раз очень хорошо описаны.


 
Семен Сурков   (2008-01-16 21:06) [21]

2tstas
там как раз отлаживать нечего, ибо единственный выход - точно знать формат. иного не дано. формат очень замороченный. сужу по xls, но полагаю, что в ворде схожий. как точно в ворде не помню, но дока страниц 200 была.


 
Правильный_Вася   (2008-01-16 21:10) [22]

7zip понимает этот формат, а он - в исходниках


 
rts111 ©   (2008-01-16 21:16) [23]

Эх, мне бы описание! :)


 
TStas ©   (2008-01-16 21:41) [24]

И делалась минут 20 верно? Я по свойе проге сужу: докУмент на 10 страниц делает около минуты, ну, от компа, конечно, сильно зависит.


 
rts111 ©   (2008-01-16 21:45) [25]

У меня докамент генерится страниц эдак на 250. :)


 
ketmar ©   (2008-01-16 21:46) [26]

>[16] rts111 ©(16.01.08 20:47)
>*.doc — это требование заказчика.

хинт: если дать rtf-у раширение .doc — ворд его чудно слопает.


 
rts111 ©   (2008-01-16 21:47) [27]


> ketmar ©   (16.01.08 21:46) [26]
> >[16] rts111 ©(16.01.08 20:47)
> >*.doc — это требование заказчика.
> хинт: если дать rtf-у раширение .doc — ворд его чудно слопает.
>


А это идея!!!
Нужно будет попробовать.


 
rts111 ©   (2008-01-16 22:57) [28]


> ketmar ©   (16.01.08 21:46) [26]
> >[16] rts111 ©(16.01.08 20:47)
> >*.doc — это требование заказчика.
> хинт: если дать rtf-у раширение .doc — ворд его чудно слопает.
>


Сейчас проверил, все отлично работает!
И все структуры ( документ сложный ) и форматирование полностью сохраняются.
Если заказчика такой вариант устроит, то так наверное и сделаю.
Спасибо за подсказку!


 
rts111 ©   (2008-01-16 23:01) [29]

В принципе, *.rtf можно будет просто сохранить во временную папку,
потом открыть програмно в Word, и самим Word"ом уже сохранить как *.doc


 
Piter ©   (2008-01-17 01:19) [30]

Mystic ©   (16.01.08 20:21) [5]
А обосновать?


Word - достаточно грамотный продукт, я считаю. Действительно, грамотный, он управляет документами на десятки и даже сотни мегабайт и не тормозит. В общем, по многим признакам и мнениям Word - грамотный текстовый редактор. Поэтому сильно сомнительно, что обычный программер "за неделю" разборов сделал бы что-то более быстро работающее, даже пусть и в узкой области.

Тормоза связаны или с тем, что неправильно идет работа с Word"ом, неоптимально (скорее всего) или это действительно просто затратная операция и.


 
korneley ©   (2008-01-17 01:33) [31]


> Тормоза связаны или с тем, что неправильно идет работа с
> Word"ом, неоптимально (скорее всего) или это действительно
> просто затратная операция

Любая операция на 250 (rts111 [25])листов в Ворде - "затратная". Через COM запаришься ждать... Вот когда заказчик хочет Экселевский документ (простой), кто делает *.xls, а не файл, разделённый запятыми/табуляцией/точкой с запятой ?


 
ketmar ©   (2008-01-17 02:12) [32]

>[28] rts111 ©(16.01.08 22:57)
а чего бы не устроило? я почти уверен, что .doc они хотят лишь для уменьшения «геморроя» — «чтобы я клацнул, а оно открыло». и для возможных пересылок куда-либо без конвертации. обе задачи «rtf с расширением doc» решает отлично. на это и делай упор (и ещё упор на то, что бинарный doc может «полететь» под разными версиями офиса, а rtf — нет) — тогда с 99.9% гарантией заказчик согласится.


 
Семен Сурков   (2008-01-17 02:27) [33]


> rts111 ©   (16.01.08 23:01) [29]
> В принципе, *.rtf можно будет просто сохранить во временную
> папку,потом открыть програмно в Word, и самим Word"ом уже
> сохранить как *.doc


внимательный ты аднака читатель.
тебе это несколько раз уже говорили, и я в том числе.


 
rts111 ©   (2008-01-17 02:29) [34]

Одна проблемма, файл(*.rtf) получается очень большой 100-150 Мб.
А вот если в формате *.doc - то на порядок меньше.


 
ketmar ©   (2008-01-17 02:34) [35]

>[34] rts111 ©(17.01.08 02:29)
ты от этого не спишь по ночам? посоветуй заказчикам брать винты побольше. имо, требование наличия на машине ворда (причём конктретных версий) или создание руками файла с недокументированым форматом — верх идиотизма, когда есть решение проще и универсальней.


 
Германн ©   (2008-01-17 02:35) [36]


> Piter ©   (17.01.08 01:19) [30]
>
> Mystic ©   (16.01.08 20:21) [5]
> А обосновать?
>
> Word - достаточно грамотный продукт, я считаю. Действительно,
>  грамотный, он управляет документами на десятки и даже сотни
> мегабайт и не тормозит. В общем, по многим признакам и мнениям
> Word - грамотный текстовый редактор. Поэтому сильно сомнительно,
>  что обычный программер "за неделю" разборов сделал бы что-
> то более быстро работающее, даже пусть и в узкой области.
>

Ты видишь разницу между "текстовым редактором" и "COM технологией"?
По-моему нет.


 
ketmar ©   (2008-01-17 02:35) [37]

кстати, что это за файлы такого объёма? количество выпавешго за зиму снега с детальным описанием каждой снежинки? по-моему кто-то очень болен…


 
rts111 ©   (2008-01-17 02:45) [38]


> Семен Сурков   (17.01.08 02:27) [33]
...
> внимательный ты аднака читатель.
> тебе это несколько раз уже говорили, и я в том числе.


Да мне что-то и в голову не пришло,
что *.rtf полностью форматирование сохранит,
т.к. документ по структуре очень сложный,
разные там рамочки, вертикальные надписи, формулы, таблицы , рисунки, колонтитулы и т.д. ...


 
rts111 ©   (2008-01-17 02:51) [39]


> ketmar ©   (17.01.08 02:35) [37]
> кстати, что это за файлы такого объёма? количество выпавешго
> за зиму снега с детальным описанием каждой снежинки? по-
> моему кто-то очень болен…


Это расчет зоны влияния антенн.
Там куча разных графиков(рисунков) и таблиц.


 
Семен Сурков   (2008-01-17 02:53) [40]


> rts111 ©   (17.01.08 02:45) [38]


Поверь - забудь идею, написать сам.

Это очень непросто. Я в свое время взялся писать для XLS. Мне просто по кайфу было сказать, что за 2 недели. Сделал за 3. Это челендж бил - я ночами не спал. Просто перло. Не знаю, как это описать понятней и культурней:)

Сейчас бы я за такое не взялся, ибо непросто это.

Резюм:
1. Останавливайся на RTF.
2. Иши open source компоненты для экспорта в *.doc.

PS. Если найдешь, то, пожалуйста, скинь информацию сюда.



Страницы: 1 2 3 вся ветка

Текущий архив: 2008.02.17;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.024 c
6-1180565481
samael6
2007-05-31 02:51
2008.02.17
Работа с TIdConnectionIntercept


2-1201500506
psa247
2008-01-28 09:08
2008.02.17
получить ListView.Data ?


1-1194369137
Евгений Р.
2007-11-06 20:12
2008.02.17
Форма без заголовка


2-1200951161
zeroed
2008-01-22 00:32
2008.02.17
HashMap на Delphi?


2-1201165926
Mariya
2008-01-24 12:12
2008.02.17
Клик на DBGrid