ppeasy/public/pdfcreation/photobook.php

79 lines
2.7 KiB
PHP

<?php
// La tua query per ottenere le foto
$additionalphotoslist = new WA_MySQLi_RS("additionalphotoslist", $cmctrfdb, 0);
$additionalphotoslist->setQuery("SELECT * FROM additionalphotos WHERE additionalphotos.idtrf='$idtrf'");
$additionalphotoslist->execute();
// Verifica se ci sono foto da includere
if (count($additionalphotoslist->Results) > 0) {
// Aggiungi una nuova pagina per il Photo Book
$pdf->AddPage();
$pdf->SetFont('Arial', 'B', 20);
$pdf->Cell(0, 10, 'Photo Book', 0, 1, 'C');
$pdf->Ln(10); // Spazio dopo il titolo
// Margini iniziali
$x_initial = 10;
$y_initial = 40;
// Posizione corrente delle immagini
$x = $x_initial;
$y = $y_initial;
// Contatore per il numero di immagini
$image_counter = 0;
// Larghezza e altezza delle celle della tabella
$cell_width = 90;
$cell_height = 70;
// Larghezza e altezza massime dell'immagine
$max_width = 70;
$max_height = 50;
// Itera attraverso le foto e aggiungile al PDF
while (!$additionalphotoslist->atEnd()) {
$image_path = 'uploadimages/' . $additionalphotoslist->getColumnVal("filenameadditionalphotos");
// Ottieni le dimensioni dell'immagine originale
list($original_width, $original_height) = getimagesize($image_path);
// Calcola le nuove dimensioni mantenendo le proporzioni
$img_width = $max_width;
$img_height = ($original_height / $original_width) * $img_width;
// Se l'altezza calcolata supera l'altezza massima, ridimensiona in base all'altezza massima
if ($img_height > $max_height) {
$img_height = $max_height;
$img_width = ($original_width / $original_height) * $img_height;
}
// Aggiungi la cella della tabella con bordo
$pdf->Cell($cell_width, $cell_height, '', 1, 0, 'C');
// Calcola la posizione x e y dell'immagine per centrarla nella cella
$x = $pdf->GetX() - $cell_width + (($cell_width - $img_width) / 2);
$y = $pdf->GetY() + (($cell_height - $img_height) / 2);
// Aggiungi l'immagine al centro della cella
$pdf->Image($image_path, $x, $y, $img_width, $img_height);
// Incrementa il contatore e la posizione x
$image_counter++;
// Se abbiamo aggiunto due immagini, resettiamo x e incrementiamo y
if ($image_counter % 2 == 0) {
$pdf->Ln($cell_height); // Nuova riga
} else {
$pdf->SetX($x_initial + $cell_width); // Spostati alla prossima cella della riga
}
$additionalphotoslist->moveNext();
}
// Se il numero di immagini è dispari, aggiungi una cella vuota per completare la riga
if ($image_counter % 2 != 0) {
$pdf->Cell($cell_width, $cell_height, '', 1, 0, 'C');
}
}