procedure LoadDocument;
procedure LoadDocument(Data: Pointer; Size: Integer; Buffered: Boolean = True);
| Data | Pointer. Указатель на необработанные данные PDF в памяти |
| Size | Integer. Размер буфера данных в байтах |
| Buffered | Boolean. При True (по умолчанию) PDFium немедленно копирует данные. При False буфер должен оставаться действительным до выгрузки документа |
procedure LoadDocument(const Data: TBytes; Buffered: Boolean = True);
| Data | TBytes. Содержимое PDF-файла в виде массива байтов |
| Buffered | Boolean. При True (по умолчанию) PDFium немедленно копирует данные. При False буфер должен оставаться действительным до выгрузки документа |
procedure LoadDocument(Data: TMemoryStream; Buffered: Boolean = True);
| Data | TMemoryStream. TMemoryStream, содержащий данные PDF |
| Buffered | Boolean. При True (по умолчанию) PDFium немедленно копирует данные. При False буфер должен оставаться действительным до выгрузки документа |
Перегрузка без аргументов читает из пути, сохраненного в FileName. Перегрузки Pointer, TBytes и TMemoryStream загружают данные напрямую из памяти, минуя файловую систему
При Buffered = True (по умолчанию) PDFium сразу копирует переданные данные в собственный буфер. При False буфер вызывающего кода должен оставаться действительным и неизменным до UnloadDocument или Active := False. Это позволяет избежать дополнительного копирования, но требует аккуратного управления временем жизни
При успехе Active становится True, а все свойства страницы отражают первую страницу (PageNumber = 1). При ошибке возникает исключение EPdfError
// Из файла
Pdf.FileName := 'C:\docs\file.pdf';
Pdf.LoadDocument;
// Из TBytes
var Bytes: TBytes;
Bytes := TFile.ReadAllBytes('file.pdf');
Pdf.LoadDocument(Bytes);
// Из TMemoryStream (без буфера)
Pdf.LoadDocument(FStream, False);