Эй, у меня странная ошибка в моем коде. Я пытаюсь запустить массив объектов, а затем добавить изображения на страницу. в чем проблема? Он не добавляет 2 изображения на одну страницу, но добавляет изображение на той же странице, но делит его на 2 страницы. Я пробую свой код без al oop, и он работает, но когда я пробую его с l oop, это не удастся.
Мой класс для создания массива объектов.
<?php
use setasign\Fpdi\Fpdi;
use \setasign\Fpdi\PdfParser\StreamReader;
require_once('fpdf/fpdf.php');
require_once('fpdi/src/autoload.php');
class Point {
public $x; // int
public $y; // int
function __construct($x, $y) {
$this->x = $x;
$this->y = $y;
}
}
class Rectangle {
public $width; // int
public $height; // int
function __construct($width, $height) {
$this->width = $width;
$this->height = $height;
}
}
class Signature {
public $id; // int
public $flowID; // int
public $fileID; // int
public $type; // string
public $page; // int
public $position; // Point
public $size; // Rectangle
}
$signature1 = new Signature();
$signature1->id = 5;
$signature1->flowID = 1;
$signature1->fileID = 1;
$signature1->type = 'partner';
$signature1->page = 1;
$signature1->position = new Point(50, 100);
$signature1->size = new Rectangle(20, 20);
$signature2 = new Signature();
$signature2->id = 3;
$signature2->flowID = 1;
$signature2->fileID = 1;
$signature2->type = 'identification';
$signature2->page = 1;
$signature2->position = new Point(50, 100);
$signature2->size = new Rectangle(20, 20);
$signatures = array($signature1, $signature2);
My l oop с FPDI:
$pdf = new Fpdi();
foreach ($signatures as $signa) {
$fileContent = file_get_contents('http://www.africau.edu/images/default/sample.pdf','rb');
$pdf->setSourceFile(StreamReader::createByString($fileContent));
$tplId = $pdf->importPage($signa->page);
$s = $pdf->getTemplatesize($tplId);
$pdf->AddPage($s['h'] > $s['w'] ? 'P' : 'L', array($s['w'], $s['h'])); // This gets it the right dimensions
$pdf->useTemplate($tplId, null, null, null, null, true);
$pdf->Image('signature.png', $signa->position->x, $signa->position->y, $signa->size->width, $signa->size->height);
}
$pdf->Output();