1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load('Config.xlsx'); //Initialisation du chargement du fichier Excel
$spreadsheet->setActiveSheetIndex(0); //La feuille de travail Excel "0" est chargé
$dir = 'Visuel/*'; //Chemin où ce trouve les visuels
$files = glob($dir, GLOB_BRACE); //files = fichiers dans le dossier
$pdf = new PDF_Code39('p', 'mm', array(100, 240)); //creation d'un nouveau pdf avec code bar
$i = 2; // i commence à la deuxième ligne du tableau excel
while ($spreadsheet->getActiveSheet()->getCell('B' . $i)->getValue()) { //Tant que la page excel est chargé, on garde en variable les valeurs des cellules.
$telephone = $spreadsheet->getActiveSheet()->getCell('B' . $i)->getValue(); //La variable telephone prend pour valeur la cellule B
foreach ($files as $dir) { //Boucle sur chaque fichiers du dossier
$img = $dir;
$size = getimagesize($img); //Ajout de la taille du fichier à la variable "size"
$newtext = substr($img, 7); //Découpe le chemin et le nom des fichiers pour séléctionner uniquement le nom du fichier
$part = explode('-', $newtext); // Découpage du nom de l'image par des "-"
if ($part[2] == $telephone) { // si segment 2 du nom = Cellule B du tableau alors x et y prennent pour valeur C et D
if ($telephone == 'MUG') { // Si l'image est un MUG on continue MC-1234-MUG-.jpg
$y = $spreadsheet->getActiveSheet()->getCell('C' . $i)->getValue(); //La variable hauteur prend pour valeur la cellule C
$x = $spreadsheet->getActiveSheet()->getCell('D' . $i)->getValue(); //La variale largeur prend pour valeur la cellule D
$YPX = $y * 12.5; //Calcul du ratio pour les mugs
$XPX = $x * 11; //Calcul du ratio pour les mugs
$pdf->AddPage(); //Ajout d'une page sur le PDF
if ($size) { //Si le fichier a une taille
if ($size['mime'] == 'image/jpeg') { # Images en JPEG
$img_source = imagecreatefromjpeg($img); # On ouvre l'image d'origine
$img_dest = imagecreatetruecolor($XPX, $YPX);
imageresolution($img_dest, 300, 300); //Résolution de l'image a 300DPI
imagecopyresampled($img_dest, $img_source, 0, 0, 0, 0, $XPX, $YPX, $size[0], $size[1]); //l'image est redimensionné
imageflip($img_dest, IMG_FLIP_HORIZONTAL); //Image mise en miroir
imagejpeg($img_dest, $img, 100); // L'image est sauvegardé en JPEG avec une qualité de 100
}
}
$pdf->Image($img,5,8); //Ajout de l'image sur le PDF
}
if ($part[2] == $telephone) { // si segment 2 du nom = Cellule B du tableau alors x et y prennent pour valeur C et D
if ($telephone != 'MUG') { //Si le modele n'est pas un MUG on continue
$y = $spreadsheet->getActiveSheet()->getCell('C' . $i)->getValue(); //La variable hauteur prend pour valeur la cellule C
$x = $spreadsheet->getActiveSheet()->getCell('D' . $i)->getValue(); //La variale largeur prend pour valeur la cellule D
$YPX = $y * 14; //Calcul du ratio
$XPX = $x * 14; //Calcul du ratio
$pdf->AddPage(); //Ajout d'une page sur le PDF
$pdf->SetFont('Arial', '', 12); // Paramètrage de la police d'écriture
$pdf->SetTextColor(107, 107, 71); //Couleur du text en Gris
if ($size) { //Si le fichier a une taille
if ($size['mime'] == 'image/jpeg') { # Images en JPEG
$img_source = imagecreatefromjpeg($img); # On ouvre l'image d'origine
$img_dest = imagecreatetruecolor($XPX, $YPX);
imageresolution($img_dest, 300, 300); //Résolution de l'image a 300dpi
imagecopyresampled($img_dest, $img_source, 0, 0, 0, 0, $XPX, $YPX, $size[0], $size[1]); //l'image est redimensionné
imageflip($img_dest, IMG_FLIP_HORIZONTAL); //Met l'image en miroir
$color = imagecolorallocate($img_dest, 107, 107, 71);
drawBorder($img_dest, $color, 3); //Dessine une bordure à l'image
imagejpeg($img_dest, $img, 100); // L'image est sauvegardé en JPEG avec une qualité de 100
}
}
//////////////////////////////Ajout sur le PDF des éléments //////////////////////////////////////////////
$pdf->Image($img,3,5); //Ajout de l'image sur le PDF
$pdf->Text(5, 238, $part[0]); // Ajout du CLIENT
$pdf->Text(13, 238, $part[1]); // Ajout du NUMERO DE COMMANDE
$pdf->Text(28, 238, $part[2]); // Ajout MODELE DE TELEPHONE
$pdf->Text(80, 238, $part[3]); // Ajout de la MATIERE DE TELEPHONE
$pdf->Code39(30, 205, $part[1]); // Ajout du CODE BARRE
}
}
}
}
$i++;
}
$pdf->Output('Commandes du ' . date("d.m.y") . " de ". $part[0].'.pdf', 'I'); // Enregistrement du PDF avec pour nom la date du jour |
Partager