THotPDF.LoadFromFile

THotPDF

 

Вверх  Назад  Далее

Загружает существующий PDF-файл

 

Синтаксис Delphi:

function LoadFromFile ( FileName: TFileName ): Integer;

function LoadFromFile ( FileName: TFileName; const Password: AnsiString ): Integer;

function LoadFromFile ( FileName: TFileName; AutoDecrypt: Boolean ): Integer;

 

Синтаксис C++:

int __fastcall LoadFromFile ( AnsiString FileName );

int __fastcall LoadFromFile ( AnsiString FileName, System::AnsiString Password );

int __fastcall LoadFromFile ( AnsiString FileName, bool AutoDecrypt );

 

Описание

Вызывайте LoadFromFile, чтобы загрузить существующий PDF-файл. Функция LoadFromFile возвращает число страниц в загруженном файле. Файл, в котором не находится ни одна страница, — например пустой или не-PDF — возвращает 0 или выбрасывает исключение. Зашифрованный файл, чьи страницы лежат в зашифрованных object streams, без корректного пароля не может дать пригодных результатов по страницам; используйте перегрузку с паролем

Конфигурация xref-потока читается из ключей его собственного словаря, включая escape-последовательности имён PDF. Вложенный прямой словарь /Encrypt поставляет параметры security handler, не переопределяя /Length, /Filter, /W, /Index внешнего потока и ссылки trailer. Это поддерживает настоящие документы AES-256 revision 6 с нефильтрованными xref-потоками и зашифрованными object streams

Параметры PNG-предиктора в /DecodeParms тоже разрешают escape-имена PDF и отвергают дублирующиеся семантические ключи. Маркер xref-потока ищется после полного внешнего словаря, поэтому имена, строки и комментарии со словом stream не становятся границами полезной нагрузки. Чтение поглощает только обязательный перевод строки после маркера и сохраняет первый байт полезной нагрузки, если он оказался пробельным

Локальные файлы размером от LocalFileMappingThreshold используют ограниченное оконное отображение в память с общим оконным кэшем LRU для чтений парсера и неизменяемых lazy-диапазонов stream. Геометрию отображения настраивают параметры LocalFileMappingWindowSize и LocalFileMappingCacheWindows; установите порог в ноль, чтобы остаться на TFileStream -пути. Сбои отображения автоматически откатываются. Более мелкие файлы, как и все файлы, когда отображение выключено или не удалось, читаются через буфер чтения 64 КБ поверх файлового потока

Используйте перегрузку с паролем для поддерживаемых зашифрованных PDF с RC4 и AES Standard. HotPDF проверяет пароль user или owner, восстанавливает файловый ключ из ограниченных диапазонов trailer, xref, document-ID и словаря шифрования, расшифровывает загруженные строки и stream в памяти, очищает состояние шифрования и позволяет SaveLoadedDocument записать незашифрованную копию. Загрузка без пароля захватывает сырой объект шифрования по его авторитетному xref-смещению, чтобы последующий DecryptLoadedDocument вызов может использовать точные двоичные значения security handler без повторного открытия файла. Неподдерживаемые ревизии шифрования выбрасывают исключение. Ограниченное восстановление ключа доступно с HotPDF v2.489.0, а отложенная расшифровка без повторных чтений — с HotPDF v2.490.0

Перегрузка с AutoDecrypt открывает документы так, как это делают просмотрщики. Когда AutoDecrypt равен True, а документ зашифрован с пустым паролем user — так записывают документы, которые лишь ограничивают разрешения, — он расшифровывается в памяти в точности так, как это сделала бы перегрузка с паролем при пустом пароле, поэтому его текст можно извлекать, рендерить и экспортировать; IsEncrypted затем равен False, и последующий SaveLoadedDocument записывает незашифрованную копию. Документ, которому нужен пароль, как и незашифрованный документ, загружается так, как его загружает обычная перегрузка. Открывает ли документ пустой пароль, сначала проверяется по тем же ограниченным диапазонам, без повторной загрузки документа. При AutoDecrypt равном False перегрузка является обычной

При импорте существующих PDF-объектов HotPDF декодирует escape-последовательности #XX имён PDF по ISO 32000-1 до внутреннего хранения значений имён. Имена вроде /PANTONE#20216#20CVC, /lime#20Green и /The_Key_of_F#23_Minor сохраняются с задуманными значениями байтов, когда документ позже копируется или сохраняется

 

 

См. также: Windowed Local File Mapping, LoadFromStream, DecryptLoadedDocument