nesco писал(а):
Он не работает в FPCnesco, а в каком формате подаются данные картинки в RichEdit? и как перегнать ее в этот формат
Ответов: 413
Рейтинг: 57
|
|||
nesco писал(а): Он не работает в FPCnesco, а в каком формате подаются данные картинки в RichEdit? и как перегнать ее в этот формат |
|||
карма: 0 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Poputchik писал(а): а в каком формате подаются данные картинки в RichEditЕпть, ты как читаешь nesco писал(а): картинка должна быть bmpУ Rich даже точка есть для этого специальная
|
|||
карма: 22 |
|
Ответов: 413
Рейтинг: 57
|
|||
nesco писал(а): ты как читаешьЯ не верно выразился. Меня интересует не то, что в bmb должна быть картинка при подаче ее на соответствующую точку компонента RichEdit, а то в каком виде (формате) эта картинка сохраняется в rtf. Если я правильно понял, то RichEdit ее конвертирует в иной формат при сохранении файла (Или еще когда не знаю). На просторе интернета пишут про .wmf. И про различные способы перегона в этот формат. Но примеры, что нашел на С++. Вот и спрашиваю. Может я чего не понял про этот формат, может данные двоичными сохраняются или еще какими. При открытии в блокноте вообще показывает что в файле 2 картинки и они представлены в разном формате (каком не знаю) (Правда это при сохранении rtf из word). Цель перебрать метки в документе и где нужно вставить картинки не прибегая к RichEdit. Я предположил, раз RichEdit принимает картинки, значит люди разбирающиеся в его устройстве возможно знают в каком виде сохраняется картинка в нем (или в самом файле .rtf). |
|||
карма: 0 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Poputchik писал(а): в каком виде (формате) эта картинка сохраняется в rtfА вот это не поможет -- http://articles.org.ru/docum/rtf.php Похоже, что там действительно метафайл. Надо смотреть, как шифруется этот метафайл. |
|||
карма: 22 |
|
Ответов: 413
Рейтинг: 57
|
|||
Подобную спецификацию находил, но эта полнее.
nesco писал(а): Похоже, что там действительно метафайл. Надо смотреть, как шифруется этот метафайлЗначит картинку предворительно нужно зашифровать по какому-то алгоритму? Мда. Чем дальше в лес, тем больше палок. |
|||
карма: 0 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Poputchik писал(а): Мне нужно понять в какой формат перегнать картинку, прежде чем ее поместить в rtfКодирование довольно простое, надо просто в IC перенести метод BitmapToRTF из юнита KOLOleRE.pas. Там действительно bmp используется А вот декодирование после сохранение, там уже метафйаловые данне получаются |
|||
карма: 22 |
| ||
Голосовали: | Poputchik |
Ответов: 413
Рейтинг: 57
|
|||
nesco писал(а): А вот декодирование после сохранениеНу это уже чтоб прочитать эту картинку при открытии документа? Это уже не важно. Готовый документ будет в word открываться. Пусть word декодирует. nesco писал(а): надо просто в IC перенести метод BitmapToRTF из юнита KOLOleRE.pasНе лазил еще в компоненты и куски не выдирал - попробую. ------------ Дoбавленo в 02.11: nesco, не поможешь правильно вставить требуемый кусочек кода в IC. Думал с налета методом тыка, но знаний на уровне if then end явно маловато. |
|||
карма: 0 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Как-то так -- bitmaptortf.sha
|
|||
карма: 22 |
| ||
файлы: 1 | bitmaptortf.sha [20.9KB] [674] | ||
Голосовали: | Poputchik |
Ответов: 413
Рейтинг: 57
|
|||
В word не хочет открываться, а в wordPade картинка нормально открывается при сохранении в rtf. Это уже очень хорошо!
------------ Дoбавленo в 16.23: Чтобы word открывал картинку используемую nesco в примере вставил такую строку: \pict\picwgoal960\pichgoal960\dibitmap0\wbmwidthbytes192\picw64\pich64 вместо: {\pict\dibitmap здесь picwgoal - ширина рисунка в twips ( по умолчанию в word 1 пиксель = 15 twips; Если кому пригодится, то А4=12240x15840 twips или 210х297 мм или 8,3x11,7 дюйма; разрешение картинки 220 пикселей на дюйм настройки word по умолчанию) pichgoal - высота рисунка в twips picw - высота рисунка в пикселях pich - ширина рисунка в пикселях wbmwidthbytes - определяет длину битовой карты в байтах Как посчитать длину битовой карты в байтах? ------------ Дoбавленo в 20.05: Не разобрался как определяет длину битовой карты в байтах, но если указать wbmwidthbytes1, то word и NotePad открывает. Ниже привел пример как в rtf добавил рисунок. В компоненте IC изменил строку-> rtf := rtf + hexpict + ' }}'; на строку -> rtf := hexpict; Чтобы вне IC сформировать строку с кортинкой. В принципе все в IC можно сделать, но я пока не умею. Вроде бы нормально вставляются не только bmp, но и другие форматы. Если вставлять картинку в уже существующий файл .rtf, нужно из FormatStr убрать "{\\rtf1" в начале и "}" в конце. Недостаток - libreOfice такие картинки не понимает.
|
|||
карма: 0 |
|
Ответов: 413
Рейтинг: 57
|
|||
nesco писал(а): Как-то такПри перекодировании больших картинок (приблизительно 670х940px)иногда происходит какая то "ошибка" и информация записывается в виде нулей. В word это выглядит как черная область. Не подскажите с чем это может быть связано и есть ли спсобы борьбы с этим. Может в отдельном потоке делать перегонку картинки или заведомо есть какие то ограничения, или еще какой то важный нюанс? |
|||
карма: 0 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 3 раз(а), последний 2021-05-21 06:16:07 |
|||
карма: 0 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Poputchik писал(а): Не подскажите с чем это может быть связано и есть ли спсобы борьбы с этим.Без понятия почему так происходит. В нэте рыть надо |
|||
карма: 22 |
|
Ответов: 413
Рейтинг: 57
|
|||
Возможно кому то тоже будет полезно.
Вычитал, что в rtf можно вставлять ссылки на изображения вместо вставки этого изображения внутрь файла. Попробовал - word понимает нормально. {field {*fldinst {fs36 INCLUDEPICTURE "image.jpg" \* MERGEFORMAT \d }} {fldrslt {fs36lang1024 }}} Недостаток в том, что, при необходимости перенести файл rtf на другой ПК, вместе с файлом rtf придется переносить и изображения, которые должны в нем отображаться. |
|||
карма: 0 |
|
Ответов: 2
Рейтинг: 0
|
|||
Может у кого есть рабочая ссылка на компонент для работы с Word, который выкладывал Вячеслав 12 лет назад?
|
|||
карма: 0 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Может у кого есть рабочая ссылка на компонент для работы с Word, который выкладывал Вячеслав 12 лет назад? EVV, Круче сформулировать просто невозможно! Откуда она возьмётся? https://yadi.sk/d/PWKJj2oSk6N3JA Редактировалось 6 раз(а), последний 2020-06-13 18:52:07 |
|||
карма: 6 |
|