TCustomRichView.OnHTMLSaveImage

<< Нажмите, чтобы показать Содержание >>

TCustomRichView.OnHTMLSaveImage

Событие происходит, когда TRichView сохраняет элемент документа, содержащий изображение, в HTML-файл или поток. Это событие позволяет изменить процедуру сохранения для всех (или некоторых) изображений.

type

  TRVHTMLSaveImageEvent =

    procedure (Sender: TCustomRichView; RVData: TCustomRVData;

      ItemNo: Integer; const Path: TRVUnicodeString;

      BackgroundColor: TRVColorvar Location: String;

      var DoDefault: Boolean) of object;

 

property OnHTMLSaveImage: TRVHTMLSaveImageEvent;

Данное событие вызывается для следующих типов элементов:

рисунки, интерактивные рисунки,

значки, интерактивные значки,

маркеры списка с изображениями,

таблицы (сохранение фонового изображения),

для фонового изображения документа и фоновых изображений ячеек таблиц.

Имеется более лёгкое для использование событие: OnSaveImage2.

Обработка по умолчанию:

Изображения сохраняются в отдельных файлах. Изображения в форматах PNG, GIF, JPEG (и других форматах, зарегистрированных как веб-форматы) сохраняются в соответствующем формате. Изображения не веб-форматов сохраняются как изображения JPEG. Если вы не хотите преобразовывать какой-либо дополнительный класс изображения в JPEG, вы можете зарегистрировать его как графический формат HTML, используя RVGraphicHandler. Имена файлов сохранённых изображений формируются как НачалоИмени + Число + '.' + РасширениеФайла, где

НачалоИмени HTMLSaveProperties.ImagesPrefix;

Число некоторое число, делающее это имя файла уникальным (файлы изображений могут затирать существующие файлы или нет, в зависимости от наличия опции rvhtmlsioOverrideImages в HTMLSaveProperties.ImageOptions).

Значки и интерактивные значки, имеющие одинаковый TImageList, номер изображения и цвет фона, сохраняются в одном и том же файле (аналогично для маркеров списка).

Прозрачный цвет значков и интерактивных значков, а также полупрозрачных форматов изображений (TIcon, TMetafile, gif) заменяется цветом фона (которым может быть цвет компонента (TRichView.Color/TRVStyle.Color), цвет ячейки (TRVTableCellData.Color) или цвет фона абзаца (TRVBackroundRect.Color).

Входные параметры:

RVData документ, содержащий сохраняемое изображение (RVData основного TRichView, ячейка, или RVData редактора ячейки).

ItemNo номер этого элемента в RVData. Если событие вызывается для фонового изображения (документа или ячейки), ItemNo=-1.

Path путь к файлу HTML (или параметр Path метода SaveHTMLToStream).

BackgroundColor фоновый цвет (может быть проигнорирован, если вы можете сохранить прозрачность изображения)

Location если rvhtmlsioUseItemImageFileNames в HTMLSaveProperties.ImageOptions, это путь к файлу изображения, заданный в свойстве элемента rvespImageFileName, относительно Path. В противном случае инициализирован пустой строкой.

Выходные параметры:

Location имя файла сохранённого изображения. Эта строка будет записана в HTML.

DoDefault установите в False, если вы уже сохранили изображение, чтобы отключить сохранение, выполняемое по умолчанию. Если DoDefault = True, то после вызова этого события:

если rvhtmlsioUseItemImageFileNames в HTMLSaveProperties.ImageOptions и значение свойства элемента rvespImageFileName  не пустое, это значение будет записано в HTML (относительно пути Path); иначе

вызывается событие OnSaveImage2 (если его обработчик назначен); если его обработчик не назначен, или параметр DoDefault события OnSaveImage2 установлен в True, вызывается стандартный метод сохранения изображения.

 

В обработчике этого события можно использовать:

Sender.imgSaveNo значение, которое было использовано как Число для сохранения предыдущего файла изображения;

RVData.GetNextFileName функция, возвращающая имя файла с заданным НачалоИмени и РасширениеФайла:

function GetNextFileName(

  const ImagesPrefix, Path, Ext: TRVUnicodeString;

  var imgSaveNo: Integer; OverrideFiles: Boolean): TRVUnicodeString;

где

ImagesPrefix начало имени файла изображения, НачалоИмени (например, можно использовать HTMLSaveProperties.ImagesPrefix);

Path путь для изображения (например, можно использовать параметр Path этого события);

Ext расширение файла, РасширениеФайла, например '.jpg' (можно использовать RVGraphicHandler.GetGraphicExt() или GetGraphicExtByType());

imgSaveNo функция будет использовать это число, увеличенное один или более раз, для составления имени файла; возвращает увеличенное значение;

OverrideFiles если False, функция проверяет существующие файлы и возвращает уникальное имя (увеличивая imgSaveNo несколько раз)

Возвращаемое значение: полное имя файла. Его можно использовать для сохранения изображения и присвоения параметру Location этого события (так как это имя включает путь, используйте ExtractFileName или ExtractRelativePath).

 

Или можно использовать метод SavePicture.

 

См. также события:

OnSaveImage2;

OnSaveItemToFile.

See also

Экспорт HTML.