Использование CAM::PDF для Perl - могу ли я прочитать текст из PDF-файла, защищенного паролем (v1.7)?
Я заметил, что модуль CAM::PDF Perl создан для чтения текста из файла PDF. Прямо сейчас у меня установлен CAM::PDF v1.59. Я успешно использовал его для чтения текста из (v1.2) PDF-файла, который не защищен паролем, но когда я пытаюсь открыть (v1.7) защищенный паролем PDF-файл, используя этот код...
use strict;
use warnings;
use PDF::API2;
use CAM::PDF;
use CAM::PDF::PageText;
my $file = 'C:\Users\gwilliams\Documents\PWS20130517new.pdf';
my $pdf = CAM::PDF->new($file, '-', '-', 's3cretpasswd', fault_tolerant => 1)
or die "$CAM::PDF::errstr\n";
my $pageone_tree = $pdf->getPageContentTree(1);
print CAM::PDF::PageText->render($pageone_tree);
... я получаю сообщение об ошибке:
Invalid xref stream: could not decode objstream 3085
Атрибуты самого файла PDF:
- Версия: 1.7
- Метод безопасности: защита паролем
- Печать: не допускается
- Заполнить форму: не разрешено
- Комментирование: не разрешено
- Страницы управления: не разрешены
- Изменить документ: не разрешено
- Копирование контента: не разрешено
- Извлечь содержание: не позволено
- Подписание: не разрешено
Для чего это стоит - похоже, что рассматриваемый PDF был создан с помощью Adobe PDFMaker 10.1 для Excel.
Что дает? Я делаю это правильно - или PDF несовместим с CAM::PDF?
С уважением, Смущенный
1 ответ
Я автор CAM::PDF. Вероятно, это более новая функция PDF, которую CAM:: PDF не поддерживает. Я написал поддержку шифрования в PDF 1,2 дня и с тех пор почти не обновлял ее. Так что, скорее всего, это не твоя вина, а ограничение библиотеки.