• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Выгрузить inline картинки из notesRichtextItem

Gandliar

Lotus Team
16.02.2004
560
26
BIT
85
Здравствуйте!

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

Пошел по пути dxl, копирую нужное поле во временный документ, выгружаю в его дхл, нахожу сакс парсером тэги, декодирую из base64 в файл через mime.
если файлы маленькие, например jpeg - работает быстро. вставляю пару фоток 150кб - думает секунд 10 - как то очень долго
а самое печальное, что в некоторых документах дхл возращает среди тэгов какой то совсем маленький кусочек кода который никак не соответствует картинке

Использую поля ричтекст лайт (ради отображения сразу в нем кнопки выбора)

Может надо отказаться от кнопки выбора и использовать ричтекст и хранить там как html и mime ?

Что то я совсем запутался. Помогите пожалуйста.
 

Gandliar

Lotus Team
16.02.2004
560
26
BIT
85
С тормозами вроде разобрался.
Тормозил SAXParser, почему то. На вход ему подавал стринг, который получал из dxl экспортера.
Отказался от sax парсера, просто работаю со стрингом.

а вот так выглядить часть dxl которая кривая

Код:
<item name='Drawing' sign='true' seal='true'><richtext>
<pardef id='2' keepwithnext='true' keeptogether='true'/>
<par def='2'><picture width='1564px' height='1563px' scaledheight='6.5104in'
 scaledwidth='6.5208in'><bitmap/></picture><compositedata type='82' prevtype='125'
 nexttype='124'>
UhQEAFX4AgAUAAAAAAAAAAAAAAA=
</compositedata></par>
<par def='2'/></richtext></item>
<item name='$WebFlags'><textlist><text>V</text></textlist></item>
<item name='$ConflictAction'><textlist><text>3</text></textlist></item>
<item name='files'><richtext>
<pardef id='1' keepwithnext='true' keeptogether='true'/>
<par def='1'/></richtext></item>
<item name='$EncryptionStatus'><textlist><text>0</text></textlist></item>
<item name='$SignatureStatus'><textlist><text>0</text></textlist></item>
<item name='type'><textlist><text>article</text></textlist></item>
 
Последнее редактирование:

oshmianski

Достойный программист
Lotus Team
25.04.2012
711
59
BIT
4
EmbeddedImage пробовали?
 

VladSh

начинающий
Lotus Team
11.12.2009
1 792
158
BIT
158
@oshmianski
Он тяжеловесный. Я от него как раз отказался в пользу ручного разбора dxl, производительность отличная.
 

Gandliar

Lotus Team
16.02.2004
560
26
BIT
85
Голд коллекшн смотрел, взял оттуда раскодировку. не увидел там особенностей

Проблема в том, что если добавлен инлайн из файла, из чего-то "корректного" то на выходе имеем номральный jpeg, или сконвертированный гиф, и работает ожидаемо и нормально.

но некоторые файлы конвертируются вот так

Код:
<item name='Drawing' sign='true' seal='true'><richtext>
<pardef id='2' keepwithnext='true' keeptogether='true'/>
<par def='2'><picture width='1564px' height='1563px' scaledheight='6.5104in'
 scaledwidth='6.5208in'><bitmap/></picture><compositedata type='82' prevtype='125'
 nexttype='124'>
UhQEAFX4AgAUAAAAAAAAAAAAAAA=
</compositedata></par>
<par def='2'/></richtext></item>

и как оттуда достать картинку хз, но она то видна

возможно в это поле скопипастили картинку которая была раньше в экселе
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 967
611
BIT
322
Голд коллекшн смотрел, взял оттуда раскодировку. не увидел там особенностей

Проблема в том, что если добавлен инлайн из файла, из чего-то "корректного" то на выходе имеем номральный jpeg, или сконвертированный гиф, и работает ожидаемо и нормально.

но некоторые файлы конвертируются вот так

Код:
<item name='Drawing' sign='true' seal='true'><richtext>
<pardef id='2' keepwithnext='true' keeptogether='true'/>
<par def='2'><picture width='1564px' height='1563px' scaledheight='6.5104in'
 scaledwidth='6.5208in'><bitmap/></picture><compositedata type='82' prevtype='125'
 nexttype='124'>
UhQEAFX4AgAUAAAAAAAAAAAAAAA=
</compositedata></par>
<par def='2'/></richtext></item>

и как оттуда достать картинку хз, но она то видна

возможно в это поле скопипастили картинку которая была раньше в экселе
base64 decode
мб где-то здесь код мой был, не помню
 

Vertolet

Lotus Team
06.08.2018
8
0
BIT
23
Похоже, обсуждается сходная проблема.
Т.е. в закодированном фрагменте может храниться как непосредственно само изображение, так и ссылка - в частности на элемент file (STG62657 в примере).
PS Но в примере закодированная строка прилично отличается по размеру, надо сказать. Возможно и ссылаться можно по-разному.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 967
611
BIT
322
в виде ОДП выложил либу (давно здесь выкладывал как архив nsf)
дергает все картинки и сохраняет на диск
2-ух канальная выгрузка
всё это собиралось ещё для 7-ой нотусни
многие либы и их возможности можно взять в современной жвм
 
Последнее редактирование:

Gandliar

Lotus Team
16.02.2004
560
26
BIT
85
пытался вникнуть, но по-моему там все равно используется dxl?

база по выгрузке картинок с кривой картинкой внутри
 

Вложения

  • inlineImage.zip
    219 КБ · Просмотры: 130

p7he

New member
14.01.2022
1
0
BIT
13
картинка png же.
вставить:
tag = "<png>"
fileExt = "png"
GoSub process
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!