Редактировать или удалить информацию заголовка PDF в C - PullRequest
2 голосов
/ 11 марта 2011

Мне нужно отредактировать информацию заголовка нескольких файлов PDF. Чего я хотел бы добиться, так это удалить все данные заголовка до %PDF-X.Y.Z.

В качестве возможного решения я придумал открыть PDF-файл в двоичном режиме, читать каждый символ, пока не будет найден %PDF-X.Y.Z. Затем продолжите чтение остальной части потока и сохраните его в новый файл. Я думал, что таким образом я получу точную двоичную копию PDF, просто с другой информацией заголовка.

Какой самый простой / лучший способ сделать это в C? Есть ли библиотеки, которые могли бы помочь мне сделать это? Мне также интересно услышать разные подходы к решению этой проблемы.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 11 марта 2011

На самом деле вы можете удалить всю информацию до тега %PDF, НО вы делаете таблицу внешних ссылок в конце файла недействительной. Эта таблица содержит смещенные ссылки на объекты PDF.

Проще всего было: убрать деталь до %PDF и посчитать, сколько вы отбрасываете, уменьшить значения в xref соответственно.

2 голосов
/ 11 марта 2011

Предполагая, что удаление начала файла действительно решит вашу проблему, все, что вам нужно, это fopen, fread, fwrite и fclose.

Вы открываете файл для чтения в двоичном режиме.Читайте, пока не найдете волшебную строку% PDF.Откройте выходной файл для двоичной записи.Запишите в этот файл, начиная с новой строки% PDF.Когда вы закончите писать, закройте оба файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...