Я использую Zend PDF для создания PDF-файла,
Я использовал ниже, чтобы создать изображение или логотип в левом верхнем углу страницы,
$image = Zend_Pdf_Image::imageWithPath('my_image.jpg');
$pdfPage->drawImage($image, 100, 100, 400, 300);
Но изображения, показанные в левом нижнем углу, когда бы я ни увеличивал или уменьшал значение с плавающей точкой, менялся только размер изображения, а не перемещался в верхний левый угол.
Спасибо!!
Попытка визуализировать изображения непосредственно с Zend_Pdf
разочаровывает, главным образом потому, что вы должны предоставить функции drawImage () координаты всех четырех углов области, в которую вы хотите поместить изображение, и помните, что система координат имеет свое начало в нижнем левом углу, не верхний левый угол. Если вы неправильно укажете координаты, вы получите изображения, перевернутые с ног на голову, с неправильным соотношением сторон и т. Д.
У меня есть обертка, которую я использую при работе с Zend_Pdf
, Я вырвал приведенный ниже код из оболочки и попытался настроить его так, чтобы он работал автономно для вас. Я не тестировал этот код, но, надеюсь, он все еще служит полезной иллюстрацией того, как решить вашу проблему.
function image( $page, $filename, $x_mm, $y_mm, $w_mm = 0 )
{
$paperHeight = 297; // For this example, we're using a paper size of A4 in portrait
$size = getimagesize( $filename );
$width = $size[0];
$height = $size[1];
if ( $w_mm == 0 )
{
$w_mm = pointsToMm( $width );
}
$h_mm = $height / $width * $w_mm;
$x1 = mmToPoints( $x_mm );
$x2 = mmToPoints( $x_mm + $w_mm );
$y1 = mmToPoints( $paperHeight - $y_mm - $h_mm );
$y2 = mmToPoints( $paperHeight - $y_mm );
$page->drawImage( Zend_Pdf_Image::imageWithPath( $filename ), $x1, $y1, $x2, $y2 );
return $h_mm;
}
function pointsToMm( $points )
{
return $points / 72 * 25.4;
}
function mmToPoints( $mm )
{
return $mm / 25.4 * 72;
}
Других решений пока нет …