Привет Равиш,
Я также столкнулся с этой проблемой. На самом деле мой сценарий таков. У меня есть оригинальный файл размером Legal (8,5 x 14 мм) . Когда я отображаю его, используя вывод FPDI, как вы это сделали, он отображает только размер буквы (8,5 мм x 11 мм) . В результате получается: CROPPED PDF-файл.
Я сделал несколько поисковиков и нашел несколько ответов из разных постов. Вот самое подходящее решение, которое я нашел.
Сначала приведем следующий фрагмент кода функции: useTemplate
$this->useTemplate($templateIndex, null, null, 0, 0, true);
Обычно некоторые разработчики устанавливают это как ИСТИНА для последнего аргумента. Да, это правильно, если вы не установите ширину и длину. Однако я хотел бы подчеркнуть, что 4-й и 5-й аргументы определяют ширину и длину импортируемого PDF. Поэтому, если вы примете или получите фактический размер импортируемого документа, установите последний аргумент на FALSE , так как это скажет, что он примет фактический или конкретный заданный вами размер.
Пожалуйста, возьмите этот пример кода, который я сделал:
$pdf = new FPDI();
$pdf -> setSourceFile('birform2316.pdf');
$tplIdx = $pdf -> importPage(1);
$size = $pdf->getTemplateSize($tplIdx);
$pdf -> AddPage();
$pdf ->useTemplate($tplIdx, null, null, $size['w'], 310, FALSE);
$pdf -> SetFont('Arial');
$pdf -> SetTextColor(0, 0, 0);
$pdf -> SetXY(18, 174);
$pdf -> Write(0, $employer_address);
$pdf -> Output('myOwn.pdf', 'D');
С этим кодом я создал новый PDF БЕЗ ОБРЕЗКИ импортированного файла, который я установил. Это означает, что все детали шаблона ( исходный файл ) были отображены.
Обратите также внимание, что я что-то заметил при настройке размера моего PDF:
Во-первых, исходная ширина моего файла - 215,6 мм, а длина - 350,9 мм. Теперь, когда я устанавливаю размер моего PDF с помощью функций getTemplateSize и useTemplate , таких как:
$size = $pdf->getTemplateSize($tplIdx);
$pdf ->useTemplate($tplIdx, null, null, $size['w'], $size['h'],FALSE);
или просто:
$pdf ->useTemplate($tplIdx, null, null, 215.6, 350.9,FALSE);
В результате мой новый PDF-файл имеет вид CROPPED внизу, и я не знаю почему.
С этим наблюдением я сделал несколько тестов, чтобы выяснить причину. И в результате получается, что при создании файла PDF с использованием FPDI существует ограничение длины . Как вы можете видеть в моем коде выше, я не использовал фактическую длину моего файла. Вместо того чтобы использовать 350,9 мм, которые могут быть получены из $size[h']
, я не использовал его, поскольку он даст обрезанный файл. Я просто передал числовое значение рядом с ним и фактическую ширину, чтобы получить желаемый результат.
$pdf->useTemplate($tplIdx, null, null, $size['w'], 310, false);
Кстати, 310 мм (длина) - это наибольшее числовое значение, которое я использовал для создания нового PDF-файла, который НЕ ОБРЕЗАН .
Надеюсь, я предоставил некоторые материалы всем разработчикам, использующим FPDI, который сталкивается с проблемой результатов CROPPED PDF.
Спасибо всем ...
Леви Палмер