PDFium Delphi Component Docs

AddJpegImage Метод

Компонент: TPdf  ·  Модуль: PDFium
Добавляет JPEG-изображение на текущую страницу PDF по указанным координатам

Syntax

function AddJpegImage(JpegImage: TStream; X, Y, Width, Height: Double): Boolean;

JpegImageTStream. Поток с сырыми JPEG-сжатыми данными. На момент вызова метода позиция потока должна стоять в начале JPEG-данных

Return Value

Возвращает True, если JPEG-данные были успешно декодированы и встроены на страницу. Возвращает False, если поток не содержит корректных JPEG-данных или если операция внедрения завершается с ошибкой

Description

AddJpegImage встраивает JPEG-изображение, переданное сырым байтовым потоком, на текущую страницу PDF. Данные JPEG идут напрямую, без перекодирования, поэтому качество остается ровно таким, каким оно сохранено в исходном потоке. Благодаря этому метод хорошо подходит для массовой генерации документов, где декодирование и повторное сжатие изображений дали бы лишнюю потерю качества и нагрузку на CPU

Поток JpegImage должен содержать полный валидный JPEG-файл, начиная с маркера SOI. Перед вызовом метода текущая позиция потока должна стоять в начале JPEG-данных. Подходит любой потомок TStream — TFileStream, TMemoryStream, blob-потоки из базы данных и так далее

Параметры X и Y задают левый нижний угол прямоугольника размещения в пользовательских единицах PDF (начало координат в левом нижнем углу страницы, ось Y направлена вверх). Width и Height определяют размер изображения на странице; JPEG масштабируется до нужных габаритов независимо от своих пиксельных размеров

При успехе метод возвращает True. Если поток не содержит валидных JPEG-данных, метод возвращает False, не выбрасывая исключения, поэтому проверяйте возвращаемое значение при работе с данными сомнительного происхождения

Example

var
  Stream: TFileStream;
begin
  Stream := TFileStream.Create('C:\Images\photo.jpg', fmOpenRead or fmShareDenyNone);
  try
    Pdf1.NewPage(595, 842);
    if not Pdf1.AddJpegImage(Stream, 72, 400, 300, 225) then
      ShowMessage('Failed to embed JPEG image.');
  finally
    Stream.Free;
  end;
end;

See Also

AddImage, AddPicture