ОБСУЖДЕНИЕ

Изменение Ширины Вложенной Картинки

20 ответов 9,3 тыс.
AI-выжимка обсуждения скоро
Доброе время суток, господа! Простите, что спамлю, но ничего не нарыл в паутине по своей проблеме!
На форме есть поле RichText. И в нем хранятся отсканированне файлы. Проблема в том, что у многих пользователей при просмотре формы и печати, вложенная в форму ( в поле RichText ) выходит за рамки. Необходимо программно уменьшить масштаб картинки. Т.е. изменить параметр Scaling (width, height) в %. Помогите, плиз!
:lol:
 
выгружать в DXL, менять тег, загружать обратно
 
Вот здесь http://www.openntf.org/internal/home.nsf/r...6257616006C6D64 есть библиотека EmbeddedImage. С ее помощью какраз можно изменять картинки:
The EmbeddedImage library processes a Notes document (or a Form or related design element) and retrieves a list of the embedded images in the rich text fields or form body. You can then work with these images; retrieve the binary image data, determine the dimensions, adjust the scaling, or replace them with graphics copied from elsewhere.
 
выгружать в DXL, менять тег, загружать обратно

Эх, сколько бьюсь уже что-то не получается. Сделал таким образом. Выгрузил в DXL документ. Сохранил в xml. Вручную поменял некоторые поля в xml-ке. Загружаю, вижу изменения. Теперь пытаюсь поменять атрибут Width у вложенной картинки в xml-ке. Сохраняю в xml-ке. Загружаю обратно. Не работает :( . Народ помогите, ПУЛИИИИЗ!!!
Вот пример кода вызываемого агентом (который тупо берет готовый xml - и вгружает его в документ):

Sub Initialize
Dim stream As NotesStream
Dim session As New NotesSession
Dim db As NotesDatabase
Dim filename As String
Set db = session.CurrentDatabase
Set stream = session.CreateStream

Set stream = session.CreateStream
filename$ = "C:\Documents and Settings\galiyev\Мои документы\3archin.xml"

If Not stream.Open(filename$) Then
MessageBox "Cannot open " & filename$,, "Error"
Exit Sub
End If

Dim importer As NotesDXLImporter
Set importer = session.CreateDXLImporter(stream, db)
importer.DocumentImportOption = DXLIMPORTOPTION_UPDATE_ELSE_IGNORE
importer.ReplicaRequiredForReplaceOrUpdate = False
Call importer.Process
End Sub
 
для начала - выгрузить не масштабированный DXL, затем - поменять масштаб и тоже выгрузить, сравнить...
вот пример:
-оригинал
<picture height='127px' width='280px'><gif originalformat='notesbitmap'>
-масштаб 50%
<picture height='127px' width='280px' scaledheight='0.6667in'
scaledwidth='1.4583in'><gif originalformat='notesbitmap'>

для изменения реального размера:
-выгрузить (с опцией GIF)
-декодировать из base64 (соответ. картинке тег)
-масштабировать (куча кода на джава)
-вложить в тег
-загрузить
 
Вот здесь http://www.openntf.org/internal/home.nsf/r...6257616006C6D64 есть библиотека EmbeddedImage. С ее помощью какраз можно изменять картинки:
The EmbeddedImage library processes a Notes document (or a Form or related design element) and retrieves a list of the embedded images in the rich text fields or form body. You can then work with these images; retrieve the binary image data, determine the dimensions, adjust the scaling, or replace them with graphics copied from elsewhere.
всёбы ничего, но есть ряд нюанецов https://codeby.net/threads/35193.html?vi...st&p=168434
 
??? Я в нокауте huh.gif ! Imike, честно говоря я в ступоре)
Читайте внимательно — куча кода на джаве нужна, если Вы изменяете саму картинку. Если картинка не изменяется, а только изменяется её масштаб, то можно обойтись без джавы. Кстати, и без выгрузки на диск тоже, советую "покурить" XSLT.
 
как и сказал nvy много писать не нужно..., я привел результат, для сравнения (что поменять и в каких тегах)
ХСЛТ, для простых случаев можно и не использовать (просто поиском/вставкой), но правильно - именно ХСЛТ (в джава возможны и др. способы)
 
выглузить в стрим
подправить нужный тег
загрузить из стрима

всё правильно сверху привели - глядеть что поменялось
 
Тоже спрошу:
Что бы пропорционально уменьшить размер inline картинки в richtext, скажем в 5 раз, как расчитать значения scaledheight и scaledwidth? Как я понял они всегда разные в зависимости от изначального размера картинки?
 
ну типа узнать размер картинки и самому пересчитать, пропорционально

Добавлено: хотя более правильным былобы - уменьшить картинку (если допустимо)
 
вроде здесь были темы...
ДХЛ вытаскиваем файл, в java получаем размеры (штатным кодеком), ну и далее по схеме
 
возможно несколько вариантов отработки...
Это то что между тегами <jpeg></jpeg> например?
именно

Добавлено: еще перечисление методов и либа не использовал, не знаю как она в жизни :)

Добавлено: ну а по форуму - это (там упоминается jai, его развитие и поддержка вендором закончилась в 2006, требует нативных либ)
 
Вот это интересно и понятно.

Непонятно только вот что: содержимое между тегами <jpeg></jpeg> ведь не является содержимым файла jpeg, это все нужно как то закодировать и сохранить в файл на диск, только после этого применять изменение размера?
 
я не знаю что там между тегами, но есть предположение, что это в формате MIME64. преобразования достаточно простые, темболее в джаве. Тупо декодируете в бинарник, получается содержание джепег файла. Дальше, можете сохранять, хотя тупо, лучше прям в джаве передеать на изменения размеров и т.п.
 
Код:
Тупо декодируете в бинарник
Это base64 decode?
 

Статистика тем

Создано
imendan,
Последний ответ от
dimat,
Ответы
20
Просмотры
9 341