Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Системное программирование > работа с pdf |
Автор: burakov 24.5.2013, 22:53 | ||||
Добрый день. Задача: удалить последнюю страничку из ПДФ. написал скрипт. он работает.
но на некоторых PDF запинается (вылетает, останавливает работу), выдавая ошибку.
хотелось бы конечно, чтобы он везде обрезал., но как сделать хотя бы чтобы не вылетал.? то есть сначала проверить совместим ли ПДФ с АПИ2 или нет. спасибо. |
Автор: burakov 25.5.2013, 10:48 |
пробовал PDF::Parse $bool = $pdf->IsaPDF; по идее он должен вернуть 0, если это не PDF (или не валидный). но он отваливвается точно также как и PDF::API2 на моменте $pdf->TargetFile($filename) пишет Can't read cross-reference section, according to trailer мне нужно как то придумать, чтобы не валидные (или не те, с которыми модуль не может работать) файлы -- просто пропускало, а не останавливалось |
Автор: burakov 27.5.2013, 01:03 |
для того, чтобы работало вспомнил про eval {} выполняю теперь работу с объектом PDF eval { ...создание объекта... ... работа с объектом... } в принципе работает. то есть к примеру если PDF не валидный модуль дает ошибку. но скрипт не умирает, и файл пропускается. а если с PDF Все нормально, то и нормально все отрабатывает. |
Автор: Bulat 5.7.2013, 20:44 |
Я как-то пробовал работать с PDF, уже не посню в чем была проблема, но на некоторых PDF-файлах скрипты тоже падали с ошибкой. В конечном счете использовал библиотеки Java(они все pdf-файлы нормально обрабатывали), обернув их в виде враппера, при помощи Inline::Java. Правда там малость пришлось пошаманить с кодировкой, но это было меньшее из зол. А вот напрямую через перл докопаться до истины так и не удалось. |