2016-08-26 9 views
2

Я хочу добавить png-образ в существующий pdf-файл. Поэтому я пытаюсь интегрировать FPDI/FPDF в свой проект, основанный на базе SLIM с ELOQUENT.

FPDI/FPDF добавлен с композитором (composer require setasign/fpdi-fpdf).

Я успешно testet следующий код в единый файл PHP («pdf_test.php») непосредственно открыт в браузере:

require_once('../vendor/setasign/fpdf/fpdf.php'); 
require_once('../vendor/setasign/fpdi/fpdi.php'); 

$pdf = new FPDI(); 
$filename = '1005236946.pdf'; 
$pageCount = $pdf->setSourceFile($filename); 
$templateId = $pdf->importPage(1); 
$pdf->useTemplate($templateId); 
$pdf->Image('9959544245.png',268,184,20, 'PNG'); 
$pdf->Output('F', '1005236946_PNG.pdf'); 

Но когда я использую этот код в SLIM маршрута («/») php_test Я получаю «500 Внутренняя ошибка сервера» на данный момент:

$pageCount = $pdf->setSourceFile($filename); 

Я проверил, что $ PDF-объект создается хорошо.

Я искал в Интернете, но ничего не нашел, что могло бы помочь. Возможно, он должен что-то сделать с сервером Apache и файлом .htaccess ...?

Любая помощь очень ценится :-)

+0

Общее правило: если вы получаете 500, перейдите на страницу error_log для получения более подробной информации. –

+0

check Slim support fpdf или нет? –

+0

error_log: PHP Предупреждение: require (../ app/models/pdf_parser.php): не удалось открыть поток: нет такого файла или каталога. Поэтому, похоже, это относится к автозагрузчику ... – PeteMeier

ответ

0

error_log: PHP Предупреждение: требуется (../ приложение/модели/pdf_parser.php):

Это означает, что реализация автозагрузку Безразлично» t проверить, существует ли файл и просто требует его. Из-за такой странной реализации простой вызов класса_exist() (который здесь имеет место) в не существующем классе вызовет эту ошибку.

Так исправить реализацию автозагрузку или требуют парсер отдельно:

require_once('../vendor/setasign/fpdi/pdf_parser.php'); 

Кроме того, я не уверен, почему вы требуете как скрипт вручную, и почему вы не используете автозагрузчик композитора. (Не изменил бы поведение, но имел бы смысл)