security_check(); if ($resultat_session == 'c') { header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); die(); } else if ($resultat_session == '0') { header("Location: ../logout.php?auto=1"); die(); } $sql="SELECT 1=1 FROM droits WHERE id='/mod_trombinoscopes/trombino_decoupe.php';"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0) { $sql="INSERT INTO droits SET id='/mod_trombinoscopes/trombino_decoupe.php', administrateur='V', professeur='F', cpe='F', scolarite='V', eleve='F', responsable='F', secours='F', autre='F', description='Génération d une grille PDF pour les trombinoscopes,...', statut='';"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); } //====================================================================================== // Section checkAccess() à décommenter en prenant soin d'ajouter le droit correspondant: if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } //====================================================================================== //debug_var(); $msg=""; $mode=isset($_POST['mode']) ? $_POST['mode'] : (isset($_GET['mode']) ? $_GET['mode'] : NULL); $generer_pdf=isset($_POST['generer_pdf']) ? $_POST['generer_pdf'] : NULL; $parametrer_pdf=isset($_POST['parametrer_pdf']) ? $_POST['parametrer_pdf'] : NULL; $id_grille=isset($_POST['id_grille']) ? $_POST['id_grille'] : (isset($_GET['id_grille']) ? $_GET['id_grille'] : NULL); $id_classe=isset($_POST['id_classe']) ? $_POST['id_classe'] : NULL; //================================================= $mysql_collate=getSettingValue("mysql_collate") ? getSettingValue("mysql_collate") : ""; $chaine_mysql_collate=""; if($mysql_collate!="") {$chaine_mysql_collate="COLLATE $mysql_collate";} $sql="CREATE TABLE IF NOT EXISTS trombino_decoupe ( id_grille INT(11) NOT NULL, classe VARCHAR(100) NOT NULL default '', elenoet VARCHAR(50) $chaine_mysql_collate NOT NULL default '', x TINYINT(1) NOT NULL, y TINYINT(1) NOT NULL, page TINYINT(1) NOT NULL, page_global SMALLINT(6) NOT NULL, PRIMARY KEY (id_grille, elenoet) ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; $create_table=mysqli_query($GLOBALS["mysqli"], $sql); $test=mysqli_query($GLOBALS["mysqli"], "SHOW COLUMNS FROM trombino_decoupe LIKE 'id_grille';"); if(mysqli_num_rows($test)==0) { $query=mysqli_query($GLOBALS["mysqli"], "ALTER TABLE trombino_decoupe ADD id_grille INT(11) NOT NULL;"); } $test=mysqli_query($GLOBALS["mysqli"], "SHOW index FROM trombino_decoupe WHERE Key_name='PRIMARY';"); if(mysqli_num_rows($test)<2) { $query=mysqli_query($GLOBALS["mysqli"], "ALTER TABLE trombino_decoupe DROP PRIMARY KEY, ADD PRIMARY KEY ( id_grille,elenoet );"); } $sql="CREATE TABLE IF NOT EXISTS trombino_decoupe_param ( id_grille INT(11) NOT NULL, nom VARCHAR(255) NOT NULL default '', valeur VARCHAR(255) NOT NULL default '', PRIMARY KEY (id_grille, nom) ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; $create_table=mysqli_query($GLOBALS["mysqli"], $sql); //================================================= //================================================= if(isset($parametrer_pdf)) { check_token(); $trombino_pdf_nb_lig=isset($_POST['trombino_pdf_nb_lig']) ? $_POST['trombino_pdf_nb_lig'] : 0; $trombino_pdf_nb_lig=my_ereg_replace("[^0-9]","",$trombino_pdf_nb_lig); $trombino_pdf_nb_col=isset($_POST['trombino_pdf_nb_col']) ? $_POST['trombino_pdf_nb_col'] : 0; $trombino_pdf_nb_col=my_ereg_replace("[^0-9]","",$trombino_pdf_nb_col); if(($trombino_pdf_nb_lig>0)&&($trombino_pdf_nb_col>0)) { if (!saveSetting("trombino_pdf_nb_col", $trombino_pdf_nb_col)) { $msg .= "Erreur lors de l'enregistrement de trombino_pdf_nb_col !"; } if (!saveSetting("trombino_pdf_nb_lig", $trombino_pdf_nb_lig)) { $msg .= "Erreur lors de l'enregistrement de trombino_pdf_nb_lig !"; } if($msg=="") {$msg="Enregistrement des paramètres effectué.";} } } //================================================= if(isset($_POST['suppr_grille'])) { check_token(); $suppr_grille=$_POST['suppr_grille']; for($i=0;$i\n"; // Il ne faut pas aller plus loin... } elseif(!isset($id_grille)) { $msg="Aucun id_grille n'a été choisi.
\n"; } else { //echo "2"; $sql="SELECT page_global FROM trombino_decoupe WHERE id_grille='$id_grille' ORDER BY page_global DESC LIMIT 1;"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { $msg="L'id_grille n°$id_grille ne correspond à aucun enregistrement dans la table 'trombino_decoupe'.
\n"; } else { //echo "3"; // Récuperer les paramètres et calculer les dimensions des cadres d'après les nombres de colonnes et de lignes $sql="SELECT * FROM trombino_decoupe_param WHERE id_grille='$id_grille';"; //$msg.="$sql
"; $res_param=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_param)==0) { $msg="Aucun paramètre n'a été trouvé pour l'id_grille n°$id_grille dans la table 'trombino_decoupe_param'.
\n"; } else { while($lig_param=mysqli_fetch_object($res_param)) { //echo "\$lig_param->nom=$lig_param->nom
"; //echo "\$lig_param->valeur=$lig_param->valeur"; $nom=$lig_param->nom; $$nom=$lig_param->valeur; //if($lig_param->nom=='trombino_pdf_nb_lig') {$trombino_pdf_nb_lig=$lig_param->value;} //elseif($lig_param->nom=='trombino_pdf_nb_col') {$trombino_pdf_nb_col=$lig_param->value;} } // Nombre de cases par page $nb_cell=$trombino_pdf_nb_lig*$trombino_pdf_nb_col; // Hauteur d'un cadre $haut_cadre=Floor($hauteur_page-$MargeHaut-$MargeBas-$hauteur_classe-$ecart_sous_classe-($trombino_pdf_nb_lig-1)*$dy)/$trombino_pdf_nb_lig; // Largeur d'un cadre $larg_cadre=Floor($largeur_page-$MargeDroite-$MargeGauche-($trombino_pdf_nb_col-1)*$dx)/$trombino_pdf_nb_col; /* $msg.="\$trombino_pdf_nb_lig=$trombino_pdf_nb_lig
"; $msg.="\$trombino_pdf_nb_col=$trombino_pdf_nb_col
"; $msg.="\$nb_cell=$nb_cell
"; $msg.="\$haut_cadre=$haut_cadre
"; $msg.="\$larg_cadre=$larg_cadre
"; */ $msg.="Traitement des découpes avec une grille de $trombino_pdf_nb_col colonnes sur $trombino_pdf_nb_lig lignes (id_grille n°$id_grille).
"; if (isset($GLOBALS['multisite']) AND $GLOBALS['multisite'] == 'y') { // On récupère le RNE de l'établissement $repertoire2=$_COOKIE['RNE']."/"; } else { $repertoire2=""; } $lig=mysqli_fetch_object($res); for($i=0;$i<=$lig->page_global;$i++) { if($_FILES["image_".$i]['type']!='') { //$image=isset($_FILES["image_".$i]) ? $_FILES["image_".$i] : NULL; $image=$_FILES["image_".$i]; $post_max_size=ini_get('post_max_size'); $upload_max_filesize=ini_get('upload_max_filesize'); if(!is_uploaded_file($image['tmp_name'])) { $msg.="L'upload du fichier n°$i a échoué.
\n"; $msg.="Les variables du php.ini peuvent peut-être expliquer le problème:
\n"; $msg.="post_max_size=$post_max_size
\n"; $msg.="upload_max_filesize=$upload_max_filesize
\n"; } else{ if(!file_exists($image['tmp_name'])){ $msg.="Le fichier n°$i aurait été uploadé... mais ne serait pas présent/conservé.
\n"; $msg.="Les variables du php.ini peuvent peut-être expliquer le problème:
\n"; $msg.="post_max_size=$post_max_size
\n"; $msg.="upload_max_filesize=$upload_max_filesize
\n"; $msg.="et le volume de ".$image['name']." serait
\n"; $msg.="\$image['size']=".volume_human($image['size'])."
\n"; } //echo "

Le fichier ".$image['name']." sous ".$image['tmp_name']." a été uploadé.

\n"; if($image['name']=="") {$msg.="Il s'est passé un problème lors de l'upload/traitement.
Le fichier uploadé était-il bien de type JPEG? (type trouvé : ".$image['type'].")
";} $source_file=$image['tmp_name']; $dest_file="../temp/".$tempdir."/image_$i.jpg"; $res_copy=copy("$source_file" , "$dest_file"); if(!$res_copy) { $msg.="Erreur lors du transfert de ".$image['name']." vers le dossier temporaire de l'utilisateur.
\n"; } else { $num_page=$i+1; //$msg.="Traitement de la page n°$i
\n"; $msg.="Traitement de la page n°$num_page
\n"; if (isset($GLOBALS['multisite']) AND $GLOBALS['multisite'] == 'y') { $sql="SELECT t.*, e.login FROM trombino_decoupe t, eleves e WHERE t.page_global='$i' AND t.id_grille='$id_grille' AND t.elenoet=e.elenoet;"; } else { $sql="SELECT * FROM trombino_decoupe WHERE page_global='$i' AND id_grille='$id_grille';"; } $res2=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res2)>0) { $img_source=imagecreatefromjpeg($dest_file); // Dimensions de l'image scannée $larg_img=imagesx($img_source); $haut_img=imagesy($img_source); // Il est indispensable que la découpe de l'image scannée soit aux bords de la page imprimée $ratio=$larg_img/$largeur_page; $larg_cadre_img=round($larg_cadre*$ratio); $haut_cadre_img=round($haut_cadre*$ratio); while($lig2=mysqli_fetch_object($res2)) { // Coordonnées dans le PDF multipliées par le ratio $x=round(($x0+$lig2->x*($larg_cadre+$dx))*$ratio); $y=round(($y0+$lig2->y*($haut_cadre+$dy)+$hauteur_classe+$ecart_sous_classe)*$ratio)*$correctif_vertical; $img=imagecreatetruecolor($larg_cadre_img,$haut_cadre_img); imagecopy($img,$img_source,0,0,$x,$y,$larg_cadre_img,$haut_cadre_img); if (isset($GLOBALS['multisite']) AND $GLOBALS['multisite'] == 'y') { imagejpeg($img, "../photos/eleves/$repertoire2".encode_nom_photo($lig2->login).'.jpg'); } else { imagejpeg($img, "../photos/eleves/".encode_nom_photo($lig2->elenoet).'.jpg'); } imagedestroy($img); } } } } } } } } } } //================================================= //================================================= if(isset($generer_pdf)) { check_token(); if(!isset($id_classe)) { $msg="ERREUR : Aucune classe n'a été sélectionnée.
\n"; unset($mode); } else { //trombino_pdf($id_classe); //die(); //====================================== header('Content-Type: application/pdf'); Header('Pragma: public'); require('../fpdf/fpdf.php'); //define('FPDF_FONTPATH','../fpdf/font/'); define('LargeurPage',$largeur_page); define('HauteurPage',$hauteur_page); session_cache_limiter('private'); //====================================== class trombino_PDF extends FPDF //class rel_PDF extends FPDF { function Header() { global $MargeHaut, $MargeBas, $MargeGauche, $MargeDroite, $largeur_utile_page; //global $id_grille; $this->SetXY($MargeGauche,5); $this->SetFont('DejaVu','',7.5); $texte=getSettingValue("gepiSchoolName")." "; $this->Cell($largeur_utile_page,5,$texte,0,0,'L'); //$texte=strftime("Grille ".$id_grille." - %d/%m/%Y - %H:%M:%S"); $texte=strftime("%d/%m/%Y - %H:%M:%S"); $lg_text=$this->GetStringWidth($texte); $this->SetXY($MargeGauche,5); $this->Cell($largeur_utile_page,5,$texte,0,0,'R'); } function Footer() { global $no_footer; global $hauteur_page; global $MargeHaut, $MargeBas, $MargeGauche, $MargeDroite, $largeur_utile_page; global $id_grille; if($no_footer=='n') { $this->SetXY($MargeGauche,$hauteur_page-$MargeBas); $this->SetFont('DejaVu','',7.5); $texte="Grille n°".$id_grille; $this->Cell($largeur_utile_page,5,$texte,0,0,'L'); $this->SetFont('DejaVu','',7.5); $this->SetXY($MargeGauche, $hauteur_page-$MargeBas); $this->Cell($largeur_utile_page, 5, 'Page '.$this->PageNo(), "0", 1, 'R'); } } } //====================================== $pdf=new trombino_PDF("P","mm","A4"); //$pdf=new rel_PDF("P","mm","A4"); //$pdf=new FPDF("P","mm","A4"); $pdf->SetTopMargin($MargeHaut); $pdf->SetRightMargin($MargeDroite); $pdf->SetLeftMargin($MargeGauche); $pdf->SetAutoPageBreak(true, $MargeBas); // Couleur des traits $pdf->SetDrawColor(0,0,0); $pdf->SetLineWidth(0.2); $fonte='DejaVu'; $fonte_size=10; $fonte_size_classe=14; $sc_interligne=1.3; //====================================== //$sql="TRUNCATE trombino_decoupe;"; //$menage=mysql_query($sql); //====================================== // Nouvel id_grille $sql="SELECT id_grille FROM trombino_decoupe ORDER BY id_grille DESC LIMIT 1;"; $res_grille=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_grille)==0) { $id_grille=1; } else { $lig_grille=mysqli_fetch_object($res_grille); $id_grille=$lig_grille->id_grille+1; } //====================================== $sql="INSERT INTO trombino_decoupe_param SET id_grille='$id_grille', nom='trombino_pdf_nb_lig', valeur='$trombino_pdf_nb_lig';"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); $sql="INSERT INTO trombino_decoupe_param SET id_grille='$id_grille', nom='trombino_pdf_nb_col', valeur='$trombino_pdf_nb_col';"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); //====================================== $nb_total_pages=0; for($i=0;$i0) { $cpt=0; while($lig_ele=mysqli_fetch_object($res_ele)) { $tab_ele[$cpt]=array(); $tab_ele[$cpt]['login']=$lig_ele->login; $tab_ele[$cpt]['elenoet']=$lig_ele->elenoet; $tab_ele[$cpt]['nom']=$lig_ele->nom; $tab_ele[$cpt]['prenom']=$lig_ele->prenom; $cpt++; } $classe=get_class_from_id($id_classe[$i]); $nb_pages=Ceil($cpt/$nb_cell); //echo "\$nb_pages=$nb_pages
"; $cpt=0; for($j=0;$j<$nb_pages;$j++) { $pdf->AddPage("P"); $pdf->SetXY($x0,$y0); $bordure='LRBT'; //$bordure=''; $pdf->SetFont('DejaVu','B',$fonte_size_classe); $texte="Classe de $classe"; $pdf->Cell($largeur_utile_page,$hauteur_classe,$texte,$bordure,1,'C'); $pdf->SetFont('DejaVu','',$fonte_size); // Paramètres pour cell_ajustee() // On n'arrive pas à centrer avec cell_ajustee() // Difficulté avec le mode de remplissage avec myWriteHTML() $largeur_dispo=$larg_cadre; /* $h_cell=$hauteur_info_eleve; $hauteur_max_font=$fonte_size; $hauteur_min_font=4; $bordure=''; $v_align='C'; $align='C'; */ for($m=0;$m<$trombino_pdf_nb_lig;$m++) { for($k=0;$k<$trombino_pdf_nb_col;$k++) { $x=$x0+$k*($larg_cadre+$dx); $y=$y0+$m*($haut_cadre+$dy)+$hauteur_classe+$ecart_sous_classe; $pdf->SetXY($x,$y); // Cadre de la photo $texte=""; $pdf->Cell($larg_cadre,$haut_cadre,$texte,'LRBT',1,'L'); $y=$y0+$m*($haut_cadre+$dy)+($haut_cadre-$hauteur_info_eleve)+$hauteur_classe+$ecart_sous_classe; $pdf->SetXY($x,$y); $texte=""; if(isset($tab_ele[$cpt])) { //$texte=$tab_ele[$cpt]['login']; $texte=mb_strtoupper($tab_ele[$cpt]['nom'])." ".casse_mot($tab_ele[$cpt]['prenom'],'majf2'); $sql="INSERT INTO trombino_decoupe SET id_grille='$id_grille', classe='$classe', elenoet='".$tab_ele[$cpt]['elenoet']."', x='$k', y='$m', page='$j', page_global='$nb_total_pages';"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); } //cell_ajustee($texte,$x,$y,$largeur_dispo,$h_cell,$hauteur_max_font,$hauteur_min_font,$bordure,$v_align,$align); $hauteur_temp=$fonte_size; $pdf->SetFont('DejaVu','',$hauteur_temp); $largeur_texte=$pdf->GetStringWidth($texte); //$hauteur_temp=$fonte_size; $test_taille_texte='test'; while($test_taille_texte!='ok') { if($largeur_texte>$largeur_dispo) { $hauteur_temp=$hauteur_temp-0.3; //$hauteur_caractere_appreciation = $hauteur_caractere_appreciation-0.1; $pdf->SetFont('DejaVu','',$hauteur_temp); $largeur_texte=$pdf->GetStringWidth($texte); } else { $test_taille_texte='ok'; } } $pdf->Cell($largeur_dispo,$hauteur_info_eleve,$texte,'',1,'C'); $cpt++; } } $nb_total_pages++; } } else { // Classe vide } } $pref_output_mode_pdf=get_output_mode_pdf(); $date=date("Ymd_Hi"); $nom_fich='Trombino_'.$date.'.pdf'; header('Content-Type: application/pdf'); $pdf->Output($nom_fich, $pref_output_mode_pdf); die(); } } //================================================= //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if(!isset($mode)) { //**************** EN-TETE ***************** $titre_page = "Grille PDF pour les trombinoscopes"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** //debug_var(); echo "

Retour Retour"; echo "

\n"; echo "

Choisissez :

\n"; echo "\n"; echo "

NOTES :

\n"; echo "\n"; } elseif($mode=='parametrer') { //**************** EN-TETE ***************** $titre_page = "Grille PDF pour les trombinoscopes"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** //debug_var(); echo "

Retour Accueil trombinoscopes"; echo " | Accueil découpe\n"; echo "

\n"; $trombino_pdf_nb_col=getSettingValue("trombino_pdf_nb_col"); if($trombino_pdf_nb_col=="") {$trombino_pdf_nb_col=4;} $trombino_pdf_nb_lig=getSettingValue("trombino_pdf_nb_lig"); if($trombino_pdf_nb_lig=="") {$trombino_pdf_nb_lig=5;} echo "
\n"; echo "
\n"; echo add_token_field(); echo "

Paramétrage :

\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo "Nombre de colonnes :\n"; echo "\n"; echo "\n"; echo "
\n"; echo "Nombre de lignes :\n"; echo "\n"; echo "\n"; echo "
\n"; echo "\n"; echo "\n"; echo "

\n"; echo "
\n"; echo "
\n"; echo "
\n"; } elseif($mode=='generer_grille') { //**************** EN-TETE ***************** $titre_page = "Grille PDF pour les trombinoscopes"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** //debug_var(); echo "

Retour Accueil trombinoscopes"; echo " | Accueil découpe\n"; echo "

\n"; $sql="SELECT classe, id FROM classes ORDER BY classe;"; $call_classes=mysqli_query($GLOBALS["mysqli"], $sql); $nb_classes=mysqli_num_rows($call_classes); if($nb_classes==0) { echo "

ERREUR : Il n'existe encore aucune classe.

\n"; require("../lib/footer.inc.php"); die(); } echo "
\n"; echo "
\n"; echo add_token_field(); echo "

Générer les grilles PDF pour :

\n"; // Affichage sur 3 colonnes $nb_classes_par_colonne=round($nb_classes/3); echo "\n"; echo "\n"; $cpt = 0; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
     \n"; while($lig_clas=mysqli_fetch_object($call_classes)) { //affichage 2 colonnes if(($cpt>0)&&(round($cpt/$nb_classes_par_colonne)==$cpt/$nb_classes_par_colonne)){ echo "\n"; } echo ""; echo "
\n"; $cpt++; } echo "
\n"; echo "

Tout cocher / Tout décocher

\n"; echo "\n"; echo "

\n"; echo "
\n"; echo "
\n"; echo "
\n"; echo "\n"; } elseif($mode=='uploader') { //**************** EN-TETE ***************** $titre_page = "Grille PDF pour les trombinoscopes"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** //debug_var(); echo "

Retour Accueil trombinoscopes"; echo " | Accueil découpe\n"; echo "

\n"; echo "

Les images uploadées doivent être de type JPEG.

\n"; if(!isset($id_grille)) { $sql="SELECT DISTINCT id_grille FROM trombino_decoupe ORDER BY id_grille;"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0) { echo "

ERREUR : Aucune grille n'a encore été générée.

\n"; require("../lib/footer.inc.php"); die(); } elseif(mysqli_num_rows($test)==1) { $lig=mysqli_fetch_object($test); $id_grille=$lig->id_grille; } else { echo "

Pour quelle grille souhaitez-vous uploader des photos?

\n"; echo "\n"; require("../lib/footer.inc.php"); die(); } } echo "

Grille n°$id_grille

\n"; $sql="SELECT DISTINCT classe, page, page_global FROM trombino_decoupe WHERE id_grille='$id_grille' ORDER BY page_global, page;"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0) { echo "

ERREUR : Aucune classe n'est associée à la grille n°$id_grille.

\n"; } else { echo "
\n"; echo "
\n"; echo add_token_field(); echo "\n"; echo "\n"; //echo "

Une grille a été éditée.
Vous avez la possibilité de d'uploader les pages scannées.

\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $alt=1; while($lig=mysqli_fetch_object($test)) { $alt=$alt*(-1); echo "\n"; $indice=$lig->page_global+1; echo "\n"; echo "\n"; $num_page=$lig->page+1; echo "\n"; echo "\n"; echo "\n"; } echo "\n"; echo "\n"; echo "\n"; echo "
Page de la grilleClassePage de la classeFichier scanné
$indice$lig->classe".$num_page."
\n"; //echo "\n"; //echo "\n"; //echo "\n"; $correctif_vertical=1; if(isset($_SESSION['trombi_decoupe_correctif_vertical'])) { $correctif_vertical=$_SESSION['trombi_decoupe_correctif_vertical']; } echo "

Il arrive qu'il y ait un décalage vertical s'amplifiant ligne après ligne sur les découpes.
Par défaut, on ne décale pas :
Si vos découpes sont un peu décalées vers le bas (il manque le haut des cranes), essayez de corriger avec 0.97
Aucun correctif n'est proposé pour la largeur.
Veillez à ce que vos images scannées aient les bords taillés à la largeur de la page.

\n"; echo "

\n"; echo "\n"; echo "
\n"; echo "
\n"; echo "
\n"; echo "

Notes :

\n"; echo "\n"; } } elseif($mode=='suppr_grille') { //**************** EN-TETE ***************** $titre_page = "Grille PDF pour les trombinoscopes"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** //debug_var(); echo "

Retour Accueil trombinoscopes"; echo " | Accueil découpe\n"; echo "

\n"; $sql="SELECT DISTINCT id_grille FROM trombino_decoupe ORDER BY id_grille;"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0) { echo "

ERREUR : Aucune grille n'a encore été générée.

\n"; require("../lib/footer.inc.php"); die(); } else { echo "
\n"; echo "
\n"; echo add_token_field(); echo "

Quelles grilles souhaitez-vous supprimer?

\n"; while($lig=mysqli_fetch_object($test)) { echo "
\n"; } echo "\n"; echo "

\n"; echo "
\n"; echo "
\n"; echo "
\n"; require("../lib/footer.inc.php"); die(); } } require("../lib/footer.inc.php"); ?>