Надеюсь, вы поможете мне решить проблему, с которой я столкнулся. Я работаю над PHP-скриптом, который обрабатывает PDF-файл в кодировке Base64, разбивает его на отдельные PDF-файлы на страницах, содержащих указанный QR-код, и возвращает полученные PDF-файлы вместе с подробными журналами для отладки. Однако я сталкиваюсь с ошибкой «Шаблон не существует!» при попытке импортировать страницы PDF с помощью FPDI.
Ниже приведен мой код. Я добавил подробное ведение журнала, чтобы помочь диагностировать проблему. Мы будем очень признательны за любые идеи или предложения по решению этой проблемы.
Заранее благодарим вас за помощь!
Я пытаюсь обработать PDF-файл в кодировке Base64 в PHP, разделить его на отдельные PDF-файлы на страницах, содержащих указанный QR-код, и вернуть полученные PDF-файлы вместе с подробными журналами для отладки. Однако я сталкиваюсь с ошибкой «Шаблон не существует!» при попытке импортировать страницы PDF с помощью FPDI.
Что я пробовал:
- Base64 Преобразование в PDF:
- Успешно преобразовал строку PDF в кодировке Base64 в файл и записал ее во временный каталог. PDF-файл создан, и его можно без проблем открыть.
- Загрузка PDF-файла:< /strong>
- Использовал библиотеку FPDI для загрузки исходного PDF-файла. PDF-файл успешно загружается, количество страниц определяется правильно.
- Импорт страниц:< /strong>
- Попытка импортировать каждую страницу PDF-файла с помощью метода importPage FPDI. Журналы показывают, что процесс импорта страницы запускается, но завершается с ошибкой «Шаблон не существует!» ошибка.
- Извлечение содержимого страницы:
- Попробовал использовать TCPDF, чтобы сохранить каждую страницу в виде изображения для проверки QR-кода. Изображения успешно создаются и сохраняются во временной папке.
- Обнаружение QR-кода:
- Использовал библиотеку Zxing для чтения и декодирования QR-кода из сохраненного изображения. Обнаружение QR-кода работает правильно при создании изображения.
Решения, которые я пробовал :
- Подробное ведение журнала:
- Добавлено обширное ведение журнала для регистрации каждого этапа процесса, включая преобразование, загрузку, импорт страниц, сохранение изображений и обнаружение QR-кодов. Это помогло определить, что ошибка возникает на этапе importPage.
- Проверка Идентификатор шаблона:
- Проверил идентификатор шаблона, возвращенный importPage, чтобы убедиться, что он действителен. Журналы показывают, что идентификатор шаблона кажется действительным, но все равно приводит к ошибке.
- Создание нового Экземпляры FPDI:
- Создан новый экземпляр FPDI для каждого импорта страницы, чтобы избежать любых потенциальных конфликтов или проблем с кэшированием. Это не устранило ошибку.
- Сохранение временных файлов:
- Временные файлы сохранены в каталоге для дальнейшей проверки и отладки. Проверено, что файлы записаны правильно и доступны.
- Проверка существования страницы:< /strong>
- Добавлены проверки, гарантирующие существование страницы перед попыткой импорта. Проверки подтверждают, что страницы существуют, но импорт все равно не удается.
- Я ожидал, что сценарий разделит PDF-файл на несколько частей везде, где находится указанный QR-код, и вернет эти части в кодировке Base64 вместе с подробными журналы.
- Получаемые журналы должны предоставлять четкое представление о каждом этапе процесса и помогать в диагностике любых проблем.
Вот полученный ответ:
{
"error": "Error processing page 1: Template does not exist!",
"logs": [
"Starting PDF processing...",
"PDF written to temporary file: /temp/original.pdf",
"PDF loaded successfully. Page count: 3",
"Attempting to import page 1.",
"Page 1 imported successfully. Template ID: /temp/original.pdf|1|1|0|CropBox.",
"Processing page 1. Template ID: /temp/original.pdf|1|1|0|CropBox. Size: {\"width\":210.01567019444443,\"height\":297.01068077777774,\"0\":210.01567019444443,\"1\":297.01068077777774,\"orientation\":\"P\"}",
"Error processing page 1: Template does not exist!"
]
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... -code-spli