Документация PDFiumPas

AddJpegImage Метод

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

Синтаксис

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

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

Return Value

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

Описание

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

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

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

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

Пример

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;

См. также

AddImage, AddPicture