Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Анализ содержимого RTF-файлов

117 views
Skip to first unread message

Eugene Muzychenko

unread,
Feb 20, 2017, 2:24:58 AM2/20/17
to
Привет!

Я как-то давно привык сохранять и отправлять рабочие документы в формате RTF,
чтобы не париться с совместимостью форматов. И постепенно стал замечать, что
размеры файлов отличаются в десятки раз, хотя внутренняя структура весьма
похожа. Hапример, один файл из пары страниц чистого текста в стандартных стилях
может иметь размер в 10-15 кб, а другой файл с текстом такого же вида - 250-400
кб.

При сохранении документа в формате DOC размер предсказуемо уменьшается примерно
вдвое из-за частичного перевода в двоичный формат, но при обратном сохранении в
RTF снова распухает.

Hекоторые файлы получается сжать в 15-20 раз простым копированием всего текста
в пустой документ, с последующим его сохранением в RTF. С остальными такого не
получается.

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

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

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

Попытался найти какие-нибудь программы/утилиты для разбора структуры RTF, но
нашел только преобразователи в HTML и другие форматы.

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

Всего доброго!
Евгений Музыченко
eu-...@muzy-chen-ko.net (все дефисы убрать)

Vladimir Fyodorov

unread,
Feb 20, 2017, 3:04:58 AM2/20/17
to
Разнообразно приветствую тебя, Eugene!

20 Февраля 2017, Eugene Muzychenko писАл к All следующее:

EM> Я как-то давно привык сохранять и отправлять рабочие документы в
EM> формате RTF, чтобы не париться с совместимостью форматов. И постепенно
EM> стал замечать, что размеры файлов отличаются в десятки раз, хотя
EM> внутренняя структура весьма похожа. Hапример, один файл из пары
EM> страниц чистого текста в стандартных стилях может иметь размер в 10-15
EM> кб, а другой файл с текстом такого же вида - 250-400 кб.

EM> Понятно, что размер в пару-тройку сотен килобайт нынче совершенно не
EM> критичен, но стало любопытно, что Word туда насовывает, и никак не
EM> желает удалять.

Я не знаю, что делает Word, но, скажем, Адобовские программы (Illustrator,
например), сохраняют предыдущую версию документов и какое-то количество
операций над ней, видимо, для возможности отмены действий и бэкапа. Это очень
хорошо заметно, когда затягиваешь в документ большую растровую картинку на
сотню мегабайт, сохраняешь файл, а потом её из документа удаляешь и снова
сохраняешь. Размер при этом остаётся таким же большим, как был и с внедрённой
картинкой (хотя на самом деле после закрытия файла и открытия его снова уже
никакие Undo не помогут восстановить картинку). Чтобы "попуржить" файл от
подобной хрени достаточно вместо "Save" сделать "Save As" и переписать файл под
тем же или новым именем.

Всяческих благ. Искренне Ваш, Vladimir Fyodorov, эсквайр.
... А ну-ка поищите мой таглайн

Eugene Muzychenko

unread,
Feb 20, 2017, 3:24:58 AM2/20/17
to
Привет!

20 Feb 17 10:53, you wrote to me:

VF> Адобовские программы (Illustrator, например), сохраняют предыдущую
VF> версию документов и какое-то количество операций над ней, видимо, для
VF> возможности отмены действий и бэкапа.

Word совершенно точно такого не делает - по крайней мере, не делал до 2010-2013
(у меня вообще 2000).

VF> Чтобы "попуржить" файл от подобной хрени достаточно вместо "Save"
VF> сделать "Save As" и переписать файл под тем же или новым именем.

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

Denis Chernayev

unread,
Feb 20, 2017, 12:14:58 PM2/20/17
to
Hi, Eugene!

20 Фев 17 12:04, Eugene Muzychenko -> All:

EM> Понятно, что размер в пару-тройку сотен килобайт нынче совершенно не
EM> критичен, но стало любопытно, что Word туда насовывает, и никак не
EM> желает удалять.

RTF - это текстовый формат. Его можно глазами просмотреть.


С приветом.

Eugene Muzychenko

unread,
Feb 20, 2017, 1:04:58 PM2/20/17
to
Привет!

20 Feb 17 19:50, you wrote to me:

DC> RTF - это текстовый формат. Его можно глазами просмотреть.

Браво, кэп! :) И что мы там увидим? :)

Sergey Kosaretskiy

unread,
Feb 20, 2017, 3:14:58 PM2/20/17
to
Hello Eugene!

Monday February 20 2017 15:02, Eugene Muzychenko sent a message to Vladimir
Fyodorov:

VF>> Адобовские программы (Illustrator, например), сохраняют предыдущую
VF>> версию документов и какое-то количество операций над ней, видимо, для
VF>> возможности отмены действий и бэкапа.
EM>
EM> Word совершенно точно такого не делает - по крайней мере, не делал до
EM> 2010-2013 (у меня вообще 2000).

пpавда что ли? а file->versions (файл->веpсии) что тогда делает?
и да, в 97 воpде уже пpисутствует. и там же и поудалять можно.

■ Exit light, Enter night...
See you,
Сергей.

Vitaliy Orekhov

unread,
Feb 20, 2017, 4:34:57 PM2/20/17
to
(/me разминает пальцы) Ох, напишу сейчас бредятину... XD

Hello, Eugene Muzychenko.
On 21.02.17 0:52 you wrote:

DC>> RTF - это текстовый формат. Его можно глазами просмотреть.
EM> Браво, кэп! :) И что мы там увидим? :)
БУКВЫ! %) А потом слова, соединяющиеся в предложения, из которых вырастает
документ в WTF^W RTF формате.
--
Ой, порвалось.

Eugene Muzychenko

unread,
Feb 21, 2017, 1:54:59 AM2/21/17
to
Привет!

20 Feb 17 20:30, you wrote to me:

SK> а file->versions (файл->веpсии) что тогда делает?

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

Eugene Muzychenko

unread,
Feb 21, 2017, 1:54:59 AM2/21/17
to
Привет!

21 Feb 17 00:13, you wrote to me:

VO> БУКВЫ! %) А потом слова, соединяющиеся в предложения, из которых
VO> вырастает документ в WTF^W RTF формате.

А если мы откроем файл DOC-файл в HEX-режиме, то увидим ЦИФРЫ! А потом - байты,
слова, двойные и четверные слова, соединяющиеся в записи, из которых вырастает
документ в "формате Word". :)

Дальше-то что? :) Или вы мне предлагаете садиться за изучение формата RTF, и
разбирать его вручную? А чем это будет проще ручной разборки любого из двоичных
форматов? :)

Интересно, по делу кто-нибудь ответить сможет, или все так и будут изощряться в
псевдоостроумии? :)

Andrew Kant

unread,
Feb 21, 2017, 2:24:57 AM2/21/17
to
Hello Vitaliy!

Tuesday February 21 2017 00:13, Vitaliy Orekhov wrote to Eugene Muzychenko:

DC>>> RTF - это текстовый формат. Его можно глазами просмотреть.
EM>> Браво, кэп! :) И что мы там увидим? :)
VO> БУКВЫ! %) А потом слова, соединяющиеся в предложения, из которых
VO> вырастает документ в WTF^W RTF формате.

А скажи-ка, в какое предложение складываются вот эти буквы? :)

{\shp{\*\shpinst\shpwr2\shpwrk3\shpbypara\shpbyignore\shptop0\shpbottom705\shpb
xcolumn\shpbxignore\shpleft4009\shpright5629{\sp{\sn shapeType}{\sv
75}}{\sp{\sn wzDescription}{\sv }}{\sp{\sn wzName}{\sv }}{\sp{\sn pib}{\sv
{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw10
8\pich47\picwgoal1620\pichgoal705\pngblip
89504e470d0a1a0a0000000d494844520000006c0000002f080200000089c8b858000001f849444
154789ced9ad192c3200845db99feff2f671fb2935a4104bc
626a394fbb3b1af08244ccbe8ee3782463bc563bb0032922801411408a08204504902202481101a
4880044119fcff7cf79263f3935f954a32d62a9e0f9ebde3a
5eeb1596798df954a32162a52037b31ed3b27d854ee3a51ed6438ad256f9347bba186ba2e03a6bb
b0c9d3c12e586c62bf4ac868857e294190464242badfe7055
ac862ed3a2633b13adcbf325973553dc11ed1a1a4897de76ee3e77dc33bd8ef451f2446b7279755
41f712a636e5847e5e501dd9893f8ea23ce882b15e75c659a
8c286832a4374d58d7b18cd5f25b19d29d13d9903aa85c9ff4ea67edce34b4ba77ee2eaf3540737
0311992e79646099c88ca56240c61fdf0ee9eda523c9688a8
0c17aa1330756ff2e0191b56b7c6de7686a7614c118cc552137d65453f6b79dd3051ec2a51c4bb5
db7b0f17084161dad81b7b3f5fdd862c68d0e4aa6aa883702
367cc47134a4f06e87f50a624e0711b1bc04a38c9fbae30b9ff52051aed1ff76be7f81b7c6d2712
06b8de792ccb59dab1dbaeaf38bfc4182fe11e52479ceeab6
6f06ad2e6d5ab0bd22da0bc73f91691b75c13196895f513de7579e90ed1c76e5b5881d6b6205fc9
337e107447c4c2f3bbf21e2645244002922801411c00a11b7
fb2fbdcc440051226e7ddece4c041028a27cddfbcdc466e276f29dfc015271f5b01342c76f00000
00049454e44ae426082}}}}}

Good bye!
Andrew

Denis Chernayev

unread,
Feb 21, 2017, 1:04:57 PM2/21/17
to
Hi, Andrew!

21 Фев 17 09:07, Andrew Kant -> Vitaliy Orekhov:

VO>> БУКВЫ! %) А потом слова, соединяющиеся в предложения, из которых
VO>> вырастает документ в WTF^W RTF формате.
AK> А скажи-ка, в какое предложение складываются вот эти буквы? :)
AK> {\shp{\*\shpinst\shpwr2\shpwrk3\shpbypara\shpbyignore\shptop0\shpbotto
AK> m705 \ shpb xcolumn\shpbxignore\shpleft4009\shpright5629{\sp{\sn
AK> shapeType}{\sv 75}}{\sp{\sn wzDescription}{\sv }}{\sp{\sn wzName}{\sv
AK> }}{\sp{\sn pib}{\sv
AK> {\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccrop
AK> b0\p i cw10 8\pich47\picwgoal1620\pichgoal705\pngblip

Тут даже крайнему ламеру будет понятно, что идёт картинка.
О каком предложении идёт речь?

С приветом.

Denis Chernayev

unread,
Feb 21, 2017, 1:04:57 PM2/21/17
to
Hi, Eugene!

21 Фев 17 00:52, Eugene Muzychenko -> Denis Chernayev:

DC>> RTF - это текстовый формат. Его можно глазами просмотреть.
EM> Браво, кэп! :) И что мы там увидим? :)

дифф натравим, и увидим, что поменялось в разных версиях файлов.

С приветом.

Sergey Kosaretskiy

unread,
Feb 21, 2017, 3:14:58 PM2/21/17
to
Hello Eugene!

Tuesday February 21 2017 13:36, Eugene Muzychenko sent a message to Sergey
Kosaretskiy:

SK>> а file->versions (файл->веpсии) что тогда делает?
EM>
EM> У меня в 2000 - ничего, его там никогда не было, ни в одной из установок.
EM> Хотя в справке пишут, что должно быть. Возможно, это какая-то
EM> надстройка из дополнительных, которых я никогда не ставил.

у меня и в 2003 и в 97 - есть. ставилось то и дpугое по умолчанию. на 97 точно
ничего не доставлялось.

Eugene Muzychenko

unread,
Feb 21, 2017, 11:54:57 PM2/21/17
to
Привет!

21 Feb 17 20:42, you wrote to Andrew Kant:

DC> Тут даже крайнему ламеру будет понятно, что идёт картинка.

Если я тебе закину файл в двести килобайт - разберешь за пару минут? :)

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

Eugene Muzychenko

unread,
Feb 21, 2017, 11:54:57 PM2/21/17
to
Привет!

21 Feb 17 20:39, you wrote to me:

DC> дифф натравим, и увидим, что поменялось в разных версиях файлов.

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

Denis Chernayev

unread,
Feb 22, 2017, 12:54:57 PM2/22/17
to
Hi, Eugene!

22 Фев 17 11:47, Eugene Muzychenko -> Denis Chernayev:

DC>> Тут даже крайнему ламеру будет понятно, что идёт картинка.
EM> Если я тебе закину файл в двести килобайт - разберешь за пару минут?

А что, у тебя нет под рукой нормального диффа?

С приветом.

Eugene Muzychenko

unread,
Feb 23, 2017, 12:14:57 AM2/23/17
to
Привет!

22 Feb 17 20:17, you wrote to me:

DC> у тебя нет под рукой нормального диффа?

Дифф у меня есть. А что с чем ты предлагаешь сравнивать? Я ж написал, что у
меня нет подходящего образца, и я не знаю, как его можно изготовить.

Denis Chernayev

unread,
Feb 23, 2017, 3:14:57 AM2/23/17
to
Hi, Eugene!

23 Фев 17 11:00, Eugene Muzychenko -> Denis Chernayev:

DC>> у тебя нет под рукой нормального диффа?
EM> Дифф у меня есть. А что с чем ты предлагаешь сравнивать? Я ж написал,
EM> что у меня нет подходящего образца, и я не знаю, как его можно
EM> изготовить.

Придумай, если для тебя это важно.

С приветом.

Eugene Muzychenko

unread,
Feb 23, 2017, 5:34:57 AM2/23/17
to
Привет!

23 Feb 17 08:56, you wrote to me:

DC> Придумай, если для тебя это важно.

А если бы я спрашивал про чисто двоичный формат - ты бы советовал мне
использовать байтовый дифф? :)

Denis Chernayev

unread,
Feb 23, 2017, 7:44:57 AM2/23/17
to
Hi, Eugene!

23 Фев 17 17:20, Eugene Muzychenko -> Denis Chernayev:

DC>> Придумай, если для тебя это важно.
EM> А если бы я спрашивал про чисто двоичный формат - ты бы советовал мне
EM> использовать байтовый дифф? :)

Я бы посоветовал взять подходящий инструмент. И не более.

С приветом.

Eugene Muzychenko

unread,
Feb 23, 2017, 8:34:58 AM2/23/17
to
Привет!

23 Feb 17 15:25, you wrote to me:

DC> Я бы посоветовал взять подходящий инструмент.

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

Denis Chernayev

unread,
Feb 23, 2017, 9:14:57 AM2/23/17
to
Hi, Eugene!

23 Фев 17 20:21, Eugene Muzychenko -> Denis Chernayev:

DC>> Я бы посоветовал взять подходящий инструмент.
EM> Если ты перечитаешь мое первое сообщение, то сообразишь, что я
EM> спрашивал именно о наличии подходящего инструмента. :)

Hу, ты же понимаешь, что диффать бмп, двг или 1сд - это три совершенно разные
разницы?

С приветом.

Eugene Muzychenko

unread,
Feb 23, 2017, 9:44:58 AM2/23/17
to
Привет!

23 Feb 17 16:55, you wrote to me:

DC> Hу, ты же понимаешь, что диффать бмп, двг или 1сд - это три совершенно
DC> разные разницы?

При наличии готового парсера - никакой разницы. При его отсутствии, геморрой от
изучения форматов и ковыряния в них руками примерно одинаковый.

Andrey Chebanov

unread,
Mar 18, 2017, 11:44:57 PM3/18/17
to
Здpавствуй, Eugene!

Hарыл в Инете

Check File/Properties and on the Summary tab make sure "Save Preview
Picture" is not selected.
Проверьте файл / свойства и на вкладке <Сводка> убедитесь что <Сохранить
предварительный просмотр
Изображение "не выбрано.

I checked Word settings - Format - Options - Save tab, "Always create
backup copy" is unchecked, "Allow fast saves" is unchecked, "Embed TrueType
fonts" is unchecked. Files - Versions... option is grayed out for RTF file.


Симптомы
При сохранении документа Microsoft Word содержащего графический объект EMF PNG
GIF или JPEG
в качестве другого формата файла (например Word 6.0 / 95 (* .doc) или
Rich Text Format (* .rtf)) файл Размер документа может значительно
увеличиться.

Hапример документ Microsoft Word 2000 содержащий графику JPEG который
сохраняется как документ Word 2000
может иметь размер файла 45 568 байт (445 КБ). Однако при сохранении этого
файла в формате Word 6.0 / 95 (* .doc)
или в формате Rich Text Format (* .rtf) размер файла может увеличиться до
1289728 байт (122 МБ).

Причины
Эта функциональность разработана в Microsoft Word.
Если в документ Word вставляется EMF PNG GIF или JPEG при сохранении документа
в документе сохраняются две копии рисунка.
Графика сохраняется в соответствующем формате EMF PNG GIF или JPEG и также
преобразуется в формат WMF (Windows Metafile).


разрешение



Чтобы запретить Word сохранять две копии изображения в документе и уменьшить
размер файла документа добавьте строковое значение
ExportPictureWithMetafile = 0
в реестр Microsoft Windows.

Quit Word.
Click Start, click Run, type regedit in the Open box, and then click OK.
Locate and then click to select one of the following registry keys,
depending on your version of Word:
For Microsoft Office Word 2007, locate and then click
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Word\Options
For Microsoft Office Word 2003, locate and then click
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Word\Options.
For Microsoft Word 2002, locate and then click
HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Word\Options.
For Word 2000, locate and then click
HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Options.
For Word 97, locate and then click
HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Word\Options
After you select the key that is specified in step 3, point to New on the
Edit menu, and then click String.
Type ExportPictureWithMetafile, and then press ENTER.
Right-click ExportPictureWithMetafile, and then click Modify.
In the Value data box, type 0, and then click OK.
On the File menu, click Exit to quit Registry Editor.

Еще нашел скрипт разбора rtf
http://interglacial.com/rtf/rtf_book_examples/utils/rtf2rtf.bat



С уважением - Andrey

Eugene Muzychenko

unread,
Mar 19, 2017, 1:04:57 AM3/19/17
to
Привет!

19 Mar 17 06:21, you wrote to me:

AC> Check File/Properties and on the Summary tab make sure "Save Preview
AC> Picture" is not selected.

Именно так.

AC> I checked Word settings - Format - Options - Save tab, "Always create
AC> backup copy" is unchecked, "Allow fast saves" is unchecked, "Embed
AC> TrueType fonts" is unchecked.

Тоже так.

AC> Files - Versions... option is grayed out for RTF file.

Такого параметра у меня в Word 2000 нет.

AC> При сохранении документа Microsoft Word содержащего графический объект

Графических объектов в файлах нет, только текст с разметкой.

AC> Еще нашел скрипт разбора rtf

Спасибо, попробую.
0 new messages