Я использую этот скрипт для импорта как PDF, так и JPEG в один PDF. Он работает нормально и работает как надо, за исключением: изображения не отображаются в том же масштабе / размере, что и PDF.
Изображения (все в альбомной ориентации) имеют диапазон от 1280 x 960 до 4912 x 3264, и я не могу контролировать размеры. Сценарий выполняет AddPage () для одного изображения в верхней части PDF.
В конечном итоге размер файла JPEG составляет около 50% от размера файла PDF. Как заставить их масштабироваться с одинаковым размером, будь то вывод на экран или вывод файла?
$GLOBALS['txt'] = 'Cover Text';
$GLOBALS['mid_x'] = 11/2;
// iterate through the files
$files = glob('pdfs/*.{pdf,PDF}', GLOB_BRACE);
$imagefiles = glob('pdfs/*.{jpg,JPG,jpeg,JPEG}', GLOB_BRACE);
require('fpdf17/fpdf.php');
require('fpdi/fpdi.php');
$pdf = new FPDI("L","in","Letter");
$pdf->SetMargins(.1,.1,.1);
$pdf->AddPage();
$pdf->Image('newimages/03-March-2013.jpg', 0, 0, 11, 8.5, "JPG");
$pdf->SetFont('Arial','',48);
$pdf->SetTextColor(255,255,255); // White
// Centering a cell with unknown text length
$pdf->Text($GLOBALS['mid_x']-$pdf->GetStringWidth($GLOBALS['txt'])/2,7,$GLOBALS['txt']);
$im = 0;
$pageNo = 0;
foreach ($files AS $filename) {
// get the page count
$pageCount = $pdf->setSourceFile($filename);
// iterate through all pages
$pdf->AddPage('L', array("11", "8.5"));
$pdf->Image('newimages/' . basename($imagefiles[$im]), 0, 0, 11, 8.5, "JPG");
$pdf->Text(1.5,7,basename($imagefiles[$im]));
for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
// import a page
$templateId = $pdf->importPage($pageNo);
// get the size of the imported page
$size = $pdf->getTemplateSize($templateId);
// create a page (landscape or portrait depending on the imported page size)
if ($size['w'] > $size['h']) {
$pdf->AddPage('L', array($size['w'], $size['h']));
} else {
//$pdf->AddPage('P', array($size['w'], $size['h']));
}
// use the imported page
$pdf->useTemplate($templateId);
}
$im = ($im + 1);
}
// Output the new PDF
$pdf->Output();
Задача ещё не решена.
Других решений пока нет …