Использование 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 дня и с тех пор почти не обновлял ее. Так что, скорее всего, это не твоя вина, а ограничение библиотеки.

Другие вопросы по тегам