Intereting Posts
Организация ошибок в списке опций с использованием вложенного расширения дерева после обновления Уведомление push iOS не работает при использовании планировщика crontab Объедините 2-3 прозрачных изображения PNG поверх друг друга с помощью PHP Ошибка установки Composer – требуется ext_curl, когда он включен PHP round ($ num, 2) и javascript toFixed (2) не дают правильного вывода для этого значения 53.955 скачать mp3 с веб-страницы с андроидом не удалось Получение имен файлов UTF-8 для работы с PHP ZipArchive Изменение размера шрифта текстового изображения, преобразованного из текста в функцию изображения динамически Есть ли способ PHP для проверки синтаксиса SQL без его выполнения? Почему я получаю mime-тип CSV-файла как «application / octet-stream»? как выполнить php-код в javascript Зачем считать (false) return 1? Проблема установки cake php Имена файлов автоматического прироста PHP Заказ MYSQL из другой таблицы

С PHP, как я могу проверить, есть ли в файле PDF ошибки

У меня есть система БД, встроенная в PHP / MySql. Я довольно новичок в этом. Система позволяет пользователю выставлять счет-фактуру. Другие дают разрешение на оплату счета. Учетный пользователь загружает чек. После того, как проверка загружена, он создает PDF в качестве обложки, затем использует PDFTK (используя PDFTK-PHP-библиотеку Ben Squire), чтобы объединить все файлы вместе и представить пользователю один PDF-файл для загрузки.

Некоторые пользователи загружают PDF-файлы, которые заставляют PDFTK зависать бесконечно, когда он пытается объединить PDF-файл с другими (но большую часть времени он отлично работает). Нет возвращенной ошибки, просто зависает. Чтобы вернуться в систему, пользователь должен очистить кеш и заново войти в систему. Нет сообщений об ошибках, зарегистрированных сервером, он просто зависает. Единственное различие, которое я могу найти в файлах, которые работают или не работают, глядя на них с помощью Acrobat, заключается в том, что плохие файлы имеют размер (8.5 x 14) … но если я создаю свой собственный размер юридического размера и попробую это, он отлично работает.

Использование Putty Я пошел в командную строку и реплицировал ту же проблему, PDFTK не может прочитать файл, он зависает и в командной строке. Я попытался использовать PDFMerge, который использует FPDF для объединения файлов и получения ошибки с этим файлом (ошибка, которую я получаю от этого: FPDF error: Невозможно найти объект (4, 0) в ожидаемом месте ). В командной строке я смог использовать ImageMagick для преобразования PDF в JPG, но он дает мне ошибку: «Предупреждение: файл имеет недопустимую запись xref: 2. Восстановление таблицы xref». и затем он преобразует его в jpg, но дает несколько других менее полезных предупреждений.

Если бы я мог заставить PHP проверять файл PDF, чтобы определить, действительно ли он не висит в системе, я могу использовать ImageMagick для преобразования файла, а затем преобразовать его обратно в PDF, но я не хочу делать это со всеми файлами. Как я могу получить его, чтобы проверить правильность файла при загрузке, чтобы увидеть, нужно ли его преобразовывать, не вызывая зависания системы?

Вот ссылка на файл, который вызывает проблемы: http://www.cssc-testing.org/accounting/school_9/20130604-a1atransportation-1.pdf

Заранее благодарим за любые рекомендации, которые вы можете предложить!

Мой код (который, как я предполагаю, не очень чистый, поскольку я новичок):

$pdftk = new pdftk(); if($create_cover) { $pdftk->setInputFile(array("filename" => $cover_page['server'])); } // Load a list of attachments $sql = "SELECT * FROM actg_attachments WHERE trans_id = {$trans_id}"; $attachments = Attachment::find_by_sql($sql); foreach($attachments as $attachment) { // Check if the file exists from the attachments $attachment->set_variables(); $file = $attachment->abs_path . DS . $attachment->filename; if(file_exists($file)){ // Use the pdftk tool to attach the documents to this PDF $pdftk->setInputFile(array("filename" => $file)); } } $pdftk->setOutputFile($save_file); $pdftk->_renderPdf(); 

класс $ pdftk, который он вызывает, – от: https://github.com/bensquire/php-pdtfk-toolkit