Php PDF разделить на страницы - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть PDF-файлы. Нужно импортировать их в систему и разбить по страницам. Отдельная страница = отдельный файл.

Я пытался использовать FPDF и FPDI:

  $pdf = new FPDI(); //FPDI extends TCPDF
  $pdf->AddPage();
  $pages = $pdf->setSourceFile($sLeadDirPath . $sImageName);
  //for first page...
  $page = $pdf->ImportPage(1);
  $pdf->useTemplate($page, 0, 0);
  $pdf->Output('newTest.pdf', 'F');    

Некоторые файлы работают хорошо, но для некоторых файлов я получил ошибку:

Неустранимая ошибка : необработанное исключение 'setasign \ Fpdi \ PdfParser \ CrossReference \ CrossReferenceException' с сообщением 'Этот документ PDF зашифрован и не может быть обработан с помощью FPDI.'

Как я понял, файл зашифрован (но ямогу открыть это без проблем). Как я могу решить это?

Или, может быть, есть другие способы разделения pdf в PHP без FPDI?

Спасибо!

1 Ответ

1 голос
/ 07 ноября 2019

PDF-файл может быть зашифрован, даже если вам не нужно вводить пароль для просмотра содержимого документа. Это может быть в том случае, если PDF-файл не имеет «пароля для открытия документа» (пароля пользователя), но имеет «пароль доступа» (мастер-пароль). В этом случае вы сможете открыть PDF без ввода пароля, но вы не сможете редактировать PDF (вручную или через FPDI) без ввода этого пароля. Вам придется расшифровать PDF, однако это не реализовано в FPDI:

FPDI не поддерживает импорт зашифрованных [sic] PDF-документов. В конце концов, это не имеет смысла, потому что полученный документ представляет собой совершенно новый документ, который может быть повторно зашифрован или нет.

(...)

Если вам нужно изменить существующий документ, который уже зашифрован, вы можете оформить заказ на любой продукт SetaPDF .

...