Page 1 sur 1

[FPDF]

Posté : 23 nov. 2016, 17:38
par LordNetronos
Bonjour,

J'ai crée un script php qui génere un pdf composé de multi cellule en majorité mais le problème c'est qu'elle se coupe en deux quand elle passe d'une page à l'autre.
Le set auto page break ne correspond pas à mes attentes car elle se coupe quand même mais plus haut et je ne peut pas le désactiver car mes multicell sont de taille variable.

Voici mon code HTML
<!doctype html>
<html lang="fr">
	<head>
	
		<meta charset="utf-8">
		
		<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" />
		
		<title>Lettre type</title>
		
		<link rel="stylesheet" href="css/bootstrap.css">
		
		<script language='javascript'>
		
			function ConfirmerEffacement()
			{
				if (confirm("Est tu sur de vouloir éffacer toute les données rentré dans le formulaire ?"))
					{
						formulaire.submit();
					}
			}
			
		</script>
		
	</head>
	
	<body>
	
		<form class="form-horizontal center-block" method="post" target="_blank" action="traitement.php">
		
			<div class="row">
			
				<fieldset class="col-lg-12">
				
					<div class="form-group">
				
						<label for="DOSSIER" class="control-label">Dossier</label>
					
						<input type="text" id="DOSSIER" name="DOSSIER" class="form-control" placeholder="Ex : MACHIN" required="required" />

					</div>
				
					<div class="form-group">
				
						<label for="RG" class="control-label">N° R.G</label>
					
						<input type="text" id="RG" name="RG" class="form-control" placeholder="Ex : 00/A/00000" required="required" />

					</div>
					
					<div class="form-group">
				
						<label class="control-label">Tribunal</label>
						
						<br />
					
						<select name="TRIBUNAL" class="form-control">
						
							<option value="Oublie pas de sélectionnez andouille">Séléctionnez</option>
						
							<option>Auch</option>
							
							<option>Condom</option>

						</select>

					</div>
					
					<div class="form-group">
				
						<label for="NAMEDOC1" class="control-label">Rubrique 1</label>
						
						<br />
					
						<select name="NAMEDOC1" class="form-control">
						
							<option value="">Séléctionnez</option>
						
							<option>LOGEMENT</option>
							
							<option>SANTE</option>
							
							<option>ENTOURAGE</option>
							
							<option>PROJET DE VIE</option>
							
							<option>BUDGET</option>
							
							<option>SITUATION PATRIMONIALE</option>
							
							<option>PROCEDURE ET ACTIONS EN COURS</option>
							
							<option>SUIVI TUTELAIRE ET RELATION AVEC LE MJPM</option>
							
							<option>SITUATION PROFESSIONELLE</option>

						</select>
						
						<br />
						
						<textarea id="CONTENTDOC1" name="CONTENTDOC1" class="form-control" placeholder="Votre contenu ...." rows="10"></textarea>

					</div>
					
					<div class="form-group">
				
						<label for="NAMEDOC2" class="control-label">Rubrique 2</label>
					
						<br />
					
						<select name="NAMEDOC2" class="form-control">
						
							<option value="">Séléctionnez</option>
						
							<option>LOGEMENT</option>
							
							<option>SANTE</option>
							
							<option>ENTOURAGE</option>
							
							<option>PROJET DE VIE</option>
							
							<option>BUDGET</option>
							
							<option>SITUATION PATRIMONIALE</option>
							
							<option>PROCEDURE ET ACTIONS EN COURS</option>
							
							<option>SUIVI TUTELAIRE ET RELATION AVEC LE MJPM</option>
							
							<option>SITUATION PROFESSIONELLE</option>

						</select>
						
						<br />
						
						<textarea id="CONTENTDOC2" name="CONTENTDOC2" class="form-control" placeholder="Votre contenu ...." rows="10"></textarea>

					</div>
					
					<div class="form-group">
				
						<label for="NAMEDOC3" class="control-label">Rubrique 3</label>
					
						<br />
					
						<select name="NAMEDOC3" class="form-control">
						
							<option value="">Séléctionnez</option>
						
							<option>LOGEMENT</option>
							
							<option>SANTE</option>
							
							<option>ENTOURAGE</option>
							
							<option>PROJET DE VIE</option>
							
							<option>BUDGET</option>
							
							<option>SITUATION PATRIMONIALE</option>
							
							<option>PROCEDURE ET ACTIONS EN COURS</option>
							
							<option>SUIVI TUTELAIRE ET RELATION AVEC LE MJPM</option>
							
							<option>SITUATION PROFESSIONELLE</option>

						</select>
						
						<br />
						
						<textarea id="CONTENTDOC3" name="CONTENTDOC3" class="form-control" placeholder="Votre contenu ...." rows="10"></textarea>

					</div>
					
					<div class="form-group">
				
						<label for="NAMEDOC4" class="control-label">Rubrique 4</label>
					
						<br />
					
						<select name="NAMEDOC4" class="form-control">
						
							<option value="">Séléctionnez</option>
						
							<option>LOGEMENT</option>
							
							<option>SANTE</option>
							
							<option>ENTOURAGE</option>
							
							<option>PROJET DE VIE</option>
							
							<option>BUDGET</option>
							
							<option>SITUATION PATRIMONIALE</option>
							
							<option>PROCEDURE ET ACTIONS EN COURS</option>
							
							<option>SUIVI TUTELAIRE ET RELATION AVEC LE MJPM</option>
							
							<option>SITUATION PROFESSIONELLE</option>

						</select>
						
						<br />
						
						<textarea id="CONTENTDOC4" name="CONTENTDOC4" class="form-control" placeholder="Votre contenu ...." rows="10"></textarea>

					</div>
					
					<div class="form-group">
				
						<label for="NAMEDOC5" class="control-label">Rubrique 5</label>
					
						<br />
					
						<select name="NAMEDOC5" class="form-control">
						
							<option value="">Séléctionnez</option>
						
							<option>LOGEMENT</option>
							
							<option>SANTE</option>
							
							<option>ENTOURAGE</option>
							
							<option>PROJET DE VIE</option>
							
							<option>BUDGET</option>
							
							<option>SITUATION PATRIMONIALE</option>
							
							<option>PROCEDURE ET ACTIONS EN COURS</option>
							
							<option>SUIVI TUTELAIRE ET RELATION AVEC LE MJPM</option>
							
							<option>SITUATION PROFESSIONELLE</option>

						</select>
						
						<br />
						
						<textarea id="CONTENTDOC5" name="CONTENTDOC5" class="form-control" placeholder="Votre contenu ...." rows="10"></textarea>

					</div>
					
					<div class="form-group">
				
						<label for="NAMEDOC6" class="control-label">Rubrique 6</label>
					
						<br />
					
						<select name="NAMEDOC6" class="form-control">
						
							<option value="">Séléctionnez</option>
						
							<option>LOGEMENT</option>
							
							<option>SANTE</option>
							
							<option>ENTOURAGE</option>
							
							<option>PROJET DE VIE</option>
							
							<option>BUDGET</option>
							
							<option>SITUATION PATRIMONIALE</option>
							
							<option>PROCEDURE ET ACTIONS EN COURS</option>
							
							<option>SUIVI TUTELAIRE ET RELATION AVEC LE MJPM</option>
							
							<option>SITUATION PROFESSIONELLE</option>

						</select>
						
						<br />
						
						<textarea id="CONTENTDOC6" name="CONTENTDOC6" class="form-control" placeholder="Votre contenu ...." rows="10"></textarea>

					</div>
					
					<div class="form-group">
				
						<label for="NAMEDOC7" class="control-label">Rubrique 7</label>
					
						<br />
					
						<select name="NAMEDOC7" class="form-control">
						
							<option value="">Séléctionnez</option>
						
							<option>LOGEMENT</option>
							
							<option>SANTE</option>
							
							<option>ENTOURAGE</option>
							
							<option>PROJET DE VIE</option>
							
							<option>BUDGET</option>
							
							<option>SITUATION PATRIMONIALE</option>
							
							<option>PROCEDURE ET ACTIONS EN COURS</option>
							
							<option>SUIVI TUTELAIRE ET RELATION AVEC LE MJPM</option>
							
							<option>SITUATION PROFESSIONELLE</option>

						</select>
						
						<br />
						
						<textarea id="CONTENTDOC7" name="CONTENTDOC7" class="form-control" placeholder="Votre contenu ...." rows="10"></textarea>

					</div>
					
					<div class="form-group">
				
						<label for="NAMEDOC8" class="control-label">Rubrique 8</label>
					
						<br />
					
						<select name="NAMEDOC8" class="form-control">
						
							<option value="">Séléctionnez</option>
						
							<option>LOGEMENT</option>
							
							<option>SANTE</option>
							
							<option>ENTOURAGE</option>
							
							<option>PROJET DE VIE</option>
							
							<option>BUDGET</option>
							
							<option>SITUATION PATRIMONIALE</option>
							
							<option>PROCEDURE ET ACTIONS EN COURS</option>
							
							<option>SUIVI TUTELAIRE ET RELATION AVEC LE MJPM</option>
							
							<option>SITUATION PROFESSIONELLE</option>

						</select>
						
						<br />
						
						<textarea id="CONTENTDOC8" name="CONTENTDOC8" class="form-control" placeholder="Votre contenu ...." rows="10"></textarea>

					</div>
					
					<div class="form-group">
				
						<label for="NAMEDOC9" class="control-label">Rubrique 9</label>
					
						<br />
					
						<select name="NAMEDOC9" class="form-control">
						
							<option value="">Séléctionnez</option>
						
							<option>LOGEMENT</option>
							
							<option>SANTE</option>
							
							<option>ENTOURAGE</option>
							
							<option>PROJET DE VIE</option>
							
							<option>BUDGET</option>
							
							<option>SITUATION PATRIMONIALE</option>
							
							<option>PROCEDURE ET ACTIONS EN COURS</option>
							
							<option>SUIVI TUTELAIRE ET RELATION AVEC LE MJPM</option>
							
							<option>SITUATION PROFESSIONELLE</option>

						</select>
						
						<br />
						
						<textarea id="CONTENTDOC9" name="CONTENTDOC9" class="form-control" placeholder="Votre contenu ...." rows="10"></textarea>

					</div>
					
				
					
					<div class="form-group">
				
						<label for="DATELETTRE" class="control-label">Date du document</label>
					
						<input type="text" id="DATELETTRE" name="DATELETTRE" class="form-control" placeholder="Ex : JJ/MM/AAAA" required="required" />

					</div>
					
					
					<button type="reset" class="btn btn-danger btn-lg" onClick='ConfirmerEffacement()'>
					
						<span class="glyphicon glyphicon-warning-sign" aria-hidden="true"></span> Réinitialise le formualire <span class="glyphicon glyphicon-warning-sign" aria-hidden="true"></span>
						
					</button>
					
										
					<br />
					
					<br />
					
					<button type="submit" class="btn btn-success btn-lg">
					
						<span class="glyphicon glyphicon-hand-right" aria-hidden="true"></span> Envoyé la sauce pour créer un super PDF de la mort qui tue <span class="glyphicon glyphicon-hand-left" aria-hidden="true"></span>
						
					</button>
				
				</fieldset>

			</div>
		
		</form>
		
	</body>
	
</html>
Le PHP :
<?php

	$h = ceil((strlen($_POST['ADRESSE'])) / 126 * 2.9); // Déclaration de la variable $h 

	if ($h <= 5) { // On set le minimum de l'adresse pour éviter les négatifs
		$h = 5;
	}
	else {
	}
	
	require('fpdf.php'); 
	
	$pdf = new FPDF(); // Debut du pdf

	$pdf->SetAuthor('Mme.D\'AQUINO Karine'); // je sais pas trop a quoi ça sert mais je le met quand même
	$pdf->SetCreator('M.MURCIA Charly');
	$pdf->SetSubject('INVENTAIRE');
	$pdf->SetTitle('INVENTAIRE DE DEBUT DE MISSION '.$_POST['NOM'].' '.$_POST['PRENOM'].'');
	$pdf->SetLineWidth(0.5);
	$pdf->AddPage(); // On ajoute la prémiere page
	
	$pdf->Image('logo.jpg'); // On ajoute l'entête

	$pdf->SetFont('Times','B',14);
	$pdf->MultiCell(0,5,utf8_decode(''),0);

	$pdf->Cell(0,5,utf8_decode('INVENTAIRE ÉTABLI LE '.$_POST['DATEINVENTAIRE'].''),0,2,'C');
	$pdf->MultiCell(0,5,utf8_decode(''),0); 
	 
	$pdf->Cell(0,5,utf8_decode("Par Mme D'AQUINO Karine, mandataire judiciaire à la protection des majeurs"),0,2,'C');
	$pdf->MultiCell(0,5,utf8_decode(''),0);
	
	$pdf->SetFont('Times','',11);
	$pdf->MultiCell(0,5,utf8_decode('En présence de '.$_POST['CIVILITER'].''.$_POST['NOM'].' '.$_POST['PRENOM'].', la personne protégé'),0);

	if ($_POST['PRESENCEINVENTAIRETEMOIN'] == 0) { // On débute la chaîne de conditions selon le choix utilisateur
		$pdf->MultiCell(0,5,utf8_decode(''),0);
		$pdf->MultiCell(0,5,utf8_decode('En présence de deux témoins : '.$_POST['CIVILITERTEMOIN1'].''.$_POST['TEMOIN1NOM'].' '.$_POST['TEMOIN1PRENOM'].' et '.$_POST['CIVILITERTEMOIN2'].''.$_POST['TEMOIN2NOM'].' '.$_POST['TEMOIN2PRENOM'].''),0);
		$pdf->MultiCell(0,5,utf8_decode(''),0);
	}
	elseif ($_POST['PRESENCEINVENTAIRETEMOIN'] == 1) { 
		$pdf->MultiCell(0,5,utf8_decode(''),0);
		$pdf->MultiCell(0,5,utf8_decode('En présence de '.$_POST['CIVILITERCOMIS'].''.$_POST['NOMCOMIS'].' '.$_POST['PRENOMCOMIS'].', commissaire-priseur'),0);
		$pdf->MultiCell(0,5,utf8_decode(''),0);
	}
	elseif ($_POST['PRESENCEINVENTAIRETEMOIN'] == 2) {
		$pdf->MultiCell(0,5,utf8_decode(''),0);
		$pdf->MultiCell(0,5,utf8_decode('En présence de '.$_POST['CIVILITERHUISSIER'].''.$_POST['NOMHUISSIER'].' '.$_POST['PRENOMHUISSIER'].', huissier de justice'),0);
		$pdf->MultiCell(0,5,utf8_decode(''),0);
	}
	else {
	}

	$pdf->MultiCell(0,5,utf8_decode(''),0);
	$pdf->SetFont('Times','B',14);
	$pdf->Cell(0,5,utf8_decode("MAJEUR PROTÉGÉ"),0,2,'C');
	$pdf->MultiCell(0,5,utf8_decode(''),0);
	$pdf->SetFont('Times','',11);
	$pdf->MultiCell(0,5,utf8_decode('N° DE RG : '.$_POST['RG'].''),0);
	$pdf->MultiCell(0,5,utf8_decode(''),0);
	
	$pdf->MultiCell(0,5,utf8_decode('Nom : '.$_POST['NOM'].''),0);
	$pdf->MultiCell(0,5,utf8_decode(''),0);

	if ($_POST['NOMUSAGE'] == '') {
			
	}
	else {
		$pdf->MultiCell(0,5,utf8_decode('Nom d\'usage : '.$_POST['NOMUSAGE'].''),0);
		$h += 10;
		$pdf->MultiCell(0,5,utf8_decode(''),0);
	}

	$pdf->MultiCell(0,5,utf8_decode('Prénom : '.$_POST['PRENOM'].''),0);
	$pdf->MultiCell(0,5,utf8_decode(''),0);
	$pdf->MultiCell(0,5,utf8_decode('Adresse : '.$_POST['ADRESSE'].''),0); 
	$pdf->MultiCell(0,5,utf8_decode(''),0);
	$pdf->MultiCell(0,5,utf8_decode('Situation : '.$_POST['SITUATION'].''),0);
	
	if ($_POST ['REGIME'] == 'Aucun') {
	
	}
	else {
		$pdf->MultiCell(0,5,utf8_decode(''),0);
		$pdf->MultiCell(0,5,utf8_decode('Régime matrimonial institué : '.$_POST['REGIME'].''),0);
		$h += 10;
	}

	$pdf->Rect(10,69.8,190,$h += 60); // On trace le premier réctangle dépendant de la taille adresse

	$pdf->MultiCell(0,10,utf8_decode(''),'LR');
	$pdf->SetFont('Times','B',14);
	$pdf->Cell(0,5,utf8_decode("MESURE DE PROTECTION"),'LR',2,'C');
	$pdf->MultiCell(0,5,utf8_decode(''),'LR');
	$pdf->SetFont('Times','',11);
	$pdf->MultiCell(0,5,utf8_decode('Nature de la mesure : '.$_POST['MESURE'].''),'LR');
	$pdf->MultiCell(0,5,utf8_decode(''),'LR');
	$pdf->MultiCell(0,5,utf8_decode('Date du jugement : '.$_POST['DATEJUGEMENT'].''),'LR');
	$pdf->MultiCell(0,5,utf8_decode(''),'LR');
	$pdf->MultiCell(0,5,utf8_decode('Nom du mandataire : Mme.D\'AQUINO Karine'),'LR');
	$pdf->MultiCell(0,5,utf8_decode(''),'LR');
	$pdf->MultiCell(0,5,utf8_decode('Adresse : BP 70045 32110 NOGARO'),'LR');
	$pdf->MultiCell(0,5,utf8_decode(''),'LR');
	$pdf->MultiCell(0,5,utf8_decode('Téléphone : 06 74 19 40 51'),'LR');
	$pdf->MultiCell(0,5,utf8_decode(''),'LR');
	$pdf->MultiCell(0,5,utf8_decode('Adresse de méssagerie : [email protected]'),'LR');
	$pdf->MultiCell(0,5,utf8_decode(''),'LRB'); 

	// Fin de la prémière page

	$pdf->AddPage(); // On ajoute la deuxième page

	

	$pdf->Output('I','INVENTAIRE DE DEBUT DE MISSION '.$_POST['NOM'].' '.$_POST['PRENOM'].'.pdf');
?>
Je vous épargne le CSS je ne pense pas qu'ils vous soit trés utile mais je vous met un éxemple du fichier génerer :


https://mega.nz/#!r0Mj3QIa!0OfiiDZJYPST ... RHA14FmWuA

Merci par avance,

Re: [FPDF]

Posté : 27 nov. 2016, 04:32
par Patriboom
Il y a beaucoup trop de code présenté. Je lance la serviette. Il faudrait que tu nous donnes ce qui cloche seulement.

Aussi, afin de simplifier ton code, je te suggère de définir des variables.
Ceci
if ($_POST['PRESENCEINVENTAIRETEMOIN'] == 0) { // On débute la chaîne de conditions selon le choix utilisateur
    $pdf->MultiCell(0,5,utf8_decode(''),0);
    $pdf->MultiCell(0,5,utf8_decode('En présence de deux témoins : '.$_POST['CIVILITERTEMOIN1'].''.$_POST['TEMOIN1NOM'].' '.$_POST['TEMOIN1PRENOM'].' et '.$_POST['CIVILITERTEMOIN2'].''.$_POST['TEMOIN2NOM'].' '.$_POST['TEMOIN2PRENOM'].''),0);
    $pdf->MultiCell(0,5,utf8_decode(''),0);
  }
  elseif ($_POST['PRESENCEINVENTAIRETEMOIN'] == 1) { 
    $pdf->MultiCell(0,5,utf8_decode(''),0);
    $pdf->MultiCell(0,5,utf8_decode('En présence de '.$_POST['CIVILITERCOMIS'].''.$_POST['NOMCOMIS'].' '.$_POST['PRENOMCOMIS'].', commissaire-priseur'),0);
    $pdf->MultiCell(0,5,utf8_decode(''),0);
  }
  elseif ($_POST['PRESENCEINVENTAIRETEMOIN'] == 2) {
    $pdf->MultiCell(0,5,utf8_decode(''),0);
    $pdf->MultiCell(0,5,utf8_decode('En présence de '.$_POST['CIVILITERHUISSIER'].''.$_POST['NOMHUISSIER'].' '.$_POST['PRENOMHUISSIER'].', huissier de justice'),0);
    $pdf->MultiCell(0,5,utf8_decode(''),0);
  }
  else {
  }
Pourrait devenir cela :
$Texte = array(
0=> 
'En présence de deux témoins : '.$_POST['CIVILITERTEMOIN1'].''.$_POST['TEMOIN1NOM'].' '.$_POST['TEMOIN1PRENOM'].' et '.$_POST['CIVILITERTEMOIN2'].''.$_POST['TEMOIN2NOM'].' '.$_POST['TEMOIN2PRENOM'],
1=> 'En présence de '.$_POST['CIVILITERCOMIS'].''.$_POST['NOMCOMIS'].' '.$_POST['PRENOMCOMIS'].', commissaire-priseur',
2=> 'En présence de '.$_POST['CIVILITERHUISSIER'].''.$_POST['NOMHUISSIER'].' '.$_POST['PRENOMHUISSIER'].', huissier de justice',
);
    $pdf->MultiCell(0,5,utf8_decode(''),0);
    $pdf->MultiCell(0,5,utf8_decode($Texte[$_POST['PRESENCEINVENTAIRETEMOIN']]),0);
    $pdf->MultiCell(0,5,utf8_decode(''),0);

Re: [FPDF]

Posté : 27 nov. 2016, 04:43
par Patriboom
Durant une certaine période, FPDF semblait orphelin. L'équipe s'est remise au travail récemment, mais TCPF me semble encore dépassé par TCPDF qui a ma faveur dans les projets les plus exigents. Dans ton cas précis, TCPDF permet de définir une hauteur maximale de cellule (donc pas de débordement sur la page suivante) et même de corriger la police de caractère s'il faut forcer du texte à entrer dans un espace restreint.
Si t'es pas trop engagé avec FDPF, tu pourrais passer TCPDF facilement.
https://tcpdf.org/docs/source_docs/clas ... c983ed3ece