Какую библиотеку для PHP 8 можно использовать для редактирования метадаты в PDF файлах?

Ссылка скопирована
PHP
1 ответ

Нужно изменить метадату в PDF файлах, искал либу под это дело, но всё, что удаётся найти, либо на 8-ке не запустится, либо для генерации PDFок, а мне нужно работь с готовыми файлами. Подскажите, через какую библиотеку такое можно сделать?

Дополнительно:

Ghostscript через командную строку. Он все равно должен быть установлен, чтобы работать с PDF.

  • Adamos как-то не особо понял как через него изменить метаданные в PDF? И вариант с командной строкой не годится, нужна функция либо метод
  • JastaFly, гуглим "ghostscript pdf metadata change".
    Копируем рецепты с SO, кропаем функцию либо метод, который сформирует нужную строчку и вызовет exec.
  • Adamos, а нет како-то менее костыльного метода?
  • JastaFly, ЭТО и есть самый прямой и не костыльный метод.
    Если кому-то массово требовалось заниматься подделкой метаданных, да еще и с другими делиться этим кодом - возможно, кто-то уже сделал это за вас и выложил в виде какой-нибудь библиотеки. Но я бы на это не очень рассчитывал.
  • Adamos, нашёл на данном ресурсе метод вставки метаданных в PDF, при помощи слияния двух файлов. Команду, для exec():
    gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=output.pdf no_marks.pdf pdfmarks

    gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=output.pdf no_marks.pdf pdfmarks

    взял от туда. В плане вставки метаданных, всё прекрасно работает, но вот обнаружилась проблема, что после генерации из результирующего PDFа, могут пропадать картинки. Не подскажите в чём может быть проблема?

  • JastaFly, в кривизне исходной PDF, возможно.
    У меня не было случаев, чтобы GhostScript портил файлы при обработке, так что конкретнее не подскажу.
    Можно же попробовать прогнать файл без замены метаданных - если и он сломается, то проблема не в них.
    Да, и выполните эту команду в терминале без -dBATCH и -dNOPAUSE - пусть GS покажет проблемы, если они происходят в процессе. Скажем, для обработки картинки могло не найтись нужных фильтров...
  • Adamos,

    в кривизне исходной PDF, возможно

    Судя по всему Вы правы. Попробовал прогнать файл через консоль, как раз таки на проблемной странице получаю ошибки:

    **** Error reading a content stream. The page may be incomplete.                Output may be incorrect.    **** Error: Form stream has unbalanced q/Q operators (too many q's)                Output may be incorrect.    **** Error reading a content stream. The page may be incomplete.                Output may be incorrect.    **** Error: File did not complete the page properly and may be damaged.                Output may be incorrect.

    **** Error reading a content stream. The page may be incomplete. Output may be incorrect. **** Error: Form stream has unbalanced q/Q operators (too many q's) Output may be incorrect. **** Error reading a content stream. The page may be incomplete. Output may be incorrect. **** Error: File did not complete the page properly and may be damaged. Output may be incorrect.

    И итоговый отчёт:

    **** This file had errors that were repaired or ignored.    **** The file was produced by:    **** >>>> iLovePDF <<<<    **** Please notify the author of the software that produced this    **** file that it does not conform to Adobe's published PDF    **** specification.     **** The rendered output from this file may be incorrect.

    **** This file had errors that were repaired or ignored. **** The file was produced by: **** >>>> iLovePDF <<<< **** Please notify the author of the software that produced this **** file that it does not conform to Adobe's published PDF **** specification. **** The rendered output from this file may be incorrect.

  • JastaFly, для получения дополнительной информации можно прогнать проблемный файл через бесплатный VeraPdf - но, скорее всего, по его выводу информации будет больше, чем понимания, что с ней делать ;)
  • JastaFly, ну, и ребятам из iLovePDF можно подогнать этот файл и этот выхлоп, пусть разбираются, почему у них вывод кривой.
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Артём Dev Ответ

Для редактирования метаданных в PDF файлах на PHP 8, вы можете использовать библиотеку FPDI. FPDI (Fettig PDF Document Import) позволяет импортировать существующие PDF документы в другие документы. Она также поддерживает изменение метаданных PDF файлов, таких как заголовок, автор, ключевые слова и другие.

Для начала установите библиотеку FPDI через Composer, используя следующую команду:

composer require setasign/fpdi

composer require setasign/fpdi

После установки библиотеки вы можете использовать следующий пример кода для редактирования метаданных в PDF файле:

require_once('vendor/autoload.php');
 
use setasign\Fpdi\Fpdi;
 
$pdf = new Fpdi();
$pdf->AddPage();
 
// Установка метаданных
$pdf->SetTitle('Новый заголовок');
$pdf->SetAuthor('Автор документа');
$pdf->SetSubject('Тема документа');
$pdf->SetKeywords('ключевые слова, для, поиска');
 
$pdf->Output('новый_документ.pdf', 'F');

require_once('vendor/autoload.php'); use setasign\Fpdi\Fpdi; $pdf = new Fpdi(); $pdf->AddPage(); // Установка метаданных $pdf->SetTitle('Новый заголовок'); $pdf->SetAuthor('Автор документа'); $pdf->SetSubject('Тема документа'); $pdf->SetKeywords('ключевые слова, для, поиска'); $pdf->Output('новый_документ.pdf', 'F');

Этот код создаст новый PDF файл с указанными метаданными. Вы можете также добавлять другие элементы в PDF файл, такие как текст, изображения и т.д., используя функционал FPDI.

Надеюсь, что это поможет вам редактировать метаданные в ваших PDF файлах на PHP 8 с помощью библиотеки FPDI.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно