Вставка рисунка в DOC без использования COM
От: fast_tony  
Дата: 06.03.13 13:38
Оценка:
Всем привет.

Собственно, задача отлично описывается названием темы. Необходимо вставить рисунок в DOC-файл на бинарном уровне. При этом куда вставить -- неважно, допустим, в конец.

Открытая спецификация DOC есть на офсайте -- это плюс. Более того, есть даже описание того, как найти картинку: http://msdn.microsoft.com/en-us/libr...InlinePictures. А вот на тему того как вставить картинку я ничего не нашел. Хотелось бы для начала осознать общий алгоритм действий. Понятно, что нужно разобрать поток 0Table(1Table), найти piece table, по нему найти в потоке WordDocument конец, и вставить туда символ 0x0001 (который, как я понимаю, обозначает inline-картинку). Дальше уже не так понятно. Каким образом теперь зарегистрировать эту картинку? Информация о картинках находится в OfficeArtContent, который находится в 0Table(1Table). Соответственно, нужно будет добавлять информацию туда (сил разобрать всю структуру данных OfficeArtContent у меня пока не хватило, но я на пути к успеху!). Кроме того, в FIB хранятся свойства картинок => и туда тоже нужно будет что-то добавлять. В каждом из шагов я не уверен (разве что кроме процедуры добавления символа), и каждый из шагов до конца мне не понятен. И самое главное -- что делать со смещениями? Изменятся ли они от таких манипуляций?

Буду крайне рад любой помощи по этой теме, так как вопросов очень много!
Заранее спасибо.
Re: Вставка рисунка в DOC без использования COM
От: Eugene Radius США  
Дата: 13.03.13 08:05
Оценка:
Джоэл Спольски небезосновательно рекомендует избегать работать с бинарным форматом DOC)

Здравствуйте, fast_tony, Вы писали:

_>Собственно, задача отлично описывается названием темы. Необходимо вставить рисунок в DOC-файл на бинарном уровне. При этом куда вставить -- неважно, допустим, в конец.


Можно попробовать использовать более простой формат rtf. Самому не доводилось работать на бинарном уровне с DOC но если верить Спольски то: всё что есть в Word можно записать в rtf. А rtf не бинарный формат — работать с ним проще..
Re[2]: Вставка рисунка в DOC без использования COM
От: fast_tony  
Дата: 15.03.13 16:12
Оценка:
Здравствуйте, Eugene Radius, Вы писали:

ER>Джоэл Спольски небезосновательно рекомендует избегать работать с бинарным форматом DOC)


ER>Здравствуйте, fast_tony, Вы писали:


_>>Собственно, задача отлично описывается названием темы. Необходимо вставить рисунок в DOC-файл на бинарном уровне. При этом куда вставить -- неважно, допустим, в конец.


ER>Можно попробовать использовать более простой формат rtf. Самому не доводилось работать на бинарном уровне с DOC но если верить Спольски то: всё что есть в Word можно записать в rtf. А rtf не бинарный формат — работать с ним проще..


Далеко небезосновательно . DOC -- ужасный и мерзкий формат, но задание поставлено строго.
И, кстати, задание решено. Хотел отписаться здесь о решении, но оно слишком объемное для одного сообщения
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.