RepairQDFFile

Отладка, восстановление документов

Описание

Чинит QDF PDF после ручных правок, изменивших длины потоков или позиции байтов объектов

Проход восстановления сканирует границы объектов, не доверяя устаревшим смещениям перекрестных ссылок, пересчитывает длины потоков, обновляет косвенные объекты длин, перестраивает список свободных объектов, таблицу перекрестных ссылок, trailer, startxref и /Size

Данные потока, содержащие строки endstream и endobj, сохраняются, если у объекта есть однозначный маркер потока QDF. Некорректный ввод QDF и повторные маркеры одного и того же объекта отклоняются до открытия целевого файла, поэтому существующий выходной файл сохраняется даже при восстановлении на месте

Синтаксис

Delphi

Function TPDFlib.RepairQDFFile(Const InputFileName, OutputFileName: WideString): Integer;

DLL

int DLRepairQDFFile(int InstanceID, const wchar_t* InputFileName, const wchar_t* OutputFileName);

ActiveX

Function PDFlib::RepairQDFFile(InputFileName As String, OutputFileName As String) As Long

Параметры

InputFileNameThe edited QDF PDF
OutputFileNameПуть восстановленного PDF; может совпадать со входным

Возвращаемые значения

1Отредактированный QDF восстановлен
0Вход не был восстанавливаемым QDF либо целевой файл не удалось записать

Ошибки

LastErrorCode 106 сообщает о некорректной структуре QDF, 107 о сбое восстановления, 305 о сбое записи вывода

Примечания

Восстановление на месте безопасно: полный источник прочитан до замены целевого файла