Mettre un chiffre en exposant

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Mettre un chiffre en exposant

Re: Mettre un chiffre en exposant

par sirakawa » 07 juin 2011, 20:18

Bonjour,
Et si en FPDF pour afficher 500 cm3
au lieu de les balancer par pdf->write(); comme je suppose que tu fais;
tu tentais :
<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="fr">
	<LINK rel="stylesheet" href="../gestion/ressources.css" type="text/css">
<head>
<?php

	require 'fpdf.php';
error_reporting(E_ALL);
// Quelques variables qu'on suppose extraites de la base de données...
	$cylindree = "500";
	$unite = "cm";
	$exposant = "3";
	
	// creation de l'objet je choisis les points à cause des tailles de fonte qui sont forcément en points
	$pdf = new FPDF('P', 'pt', 'A4');
	// ajout d'une page
	$pdf->addPage();
	
	// 28 points pour un centimètre
	$marge = 12 /0.35;
	$taille_fonte_courante = 10;
	$increment_v_courant = ceil ($taille_fonte_courante*1.25);
	$taille_fonte_grande = 14;
	$taille_fonte_moyenne = 12;
	$taille_fonte_petite = 8;
	$nom_fonte = "Arial";
	$increment_v_grand =ceil ($taille_fonte_grande*1.25);
	$largeur_page = (210/0.35) - ($marge*2);
	$hauteur_page = (297/0.35) - ($marge*2);
	
	$hauteur_ligne = ceil ($taille_fonte_courante*1.1);	
	
	$pdf->SetFont('Arial','I',$taille_fonte_courante);
	
	$longueur_cylindree  = $pdf->GetStringWidth($cylindree);
	$longueur_unite  = $pdf->GetStringWidth($unite);
	$longueur_exposant =  $pdf->GetStringWidth($exposant);
	$y = 100; // arbitraire
	$pdf->SetXY ($marge, $y);
	$pdf->Cell($longueur_cylindree,$hauteur_ligne,$cylindree,0,0,'R');	
	$x =  $marge+ ($longueur_cylindree*1.2);
	$pdf->SetXY ($x, $y);
	$pdf->Cell($longueur_unite,$hauteur_ligne,$unite,0,0,'R');	
	$y = $y - ($hauteur_ligne/4);
	$x += $longueur_unite*.6;
	$pdf->SetXY ($x, $y);
	$pdf->SetFont('Arial','I',6);
	$pdf->Cell($longueur_exposant,$hauteur_ligne,$exposant,0,0,'L');	
	$nom_fic = "/var/www/htdocs/sibyllin/execution/annexes/questionnaire_27/essai.pdf";

	
	$pdf->Output($nom_fic,'F');
	
?>
J'espère ne pas m'être trompé en copiant/ collant; je garde l'original un temps
Le fichier résultat ne peutb pas être joint (pdf interdits)...
à tout hasard
[email protected]

Re: Mettre un chiffre en exposant

par loic20h28 » 07 juin 2011, 19:22

Je sais bien que PHP n'est pas pour la mise en page mais alors comment puis-je faire ?

Cordialement.

Re: Mettre un chiffre en exposant

par momox » 06 juin 2011, 21:09

PHP ne sert pas a faire de la mise en page.
Les caractères en exposant ne font pas partie des caractères présents dans les charset (que ce soit les charset iso ou utf).

Cordialement ;)

Re: Mettre un chiffre en exposant

par loic20h28 » 06 juin 2011, 20:28

Bonjour,

Tout d'abord merci pour ta réponse.
Je n'utilise pas de HTML avec FPDF.
Avec FPDF je sait qu'il y a la méthode 'subWrite' mais je n'arrive pas à l'utiliser vu que je peux avoir 1 ou plusieurs ois à mettre "cm3".
C'est pour cela que je souhaiterais utilisé une fonction en pur PHP.

Cordialement.

Re: Mettre un chiffre en exposant

par ouckileou » 06 juin 2011, 19:57

C'est de l'affichage donc rien a voir avec MySQL. Pour afficher dans le html:

Code : Tout sélectionner

cm<sup>3</sup>
Je ne sais plus comment marche FPDF, tu lui envoyes du html ou c'est un syntaxe speciale?

Mettre un chiffre en exposant

par loic20h28 » 06 juin 2011, 18:41

Bonjour,

Je suis actuellement entrain de réaliser un site marchand vendant des moto pour mon propre plaisir.
Je suis plus précisément entrain de créer la génération d'une facture via FPDF. Pour cette Facture, j'affiche donc quelques détails de chaque produit commandé tel que la couleur, le cylindre...
Mon problème est le suivant, pour le cylindre j'aimerais pouvoir écrire centimètre cube de la manière suivante : "cm3" avec le 3 en exposant.
Voici la partie de mon code concerné par mon souci :
$designation = "CONCAT(ArtNeuf_marque,' ',ArtNeuf_modele,'\n   * Coloris : ',Col_lib,'\n   * Poids : ',ArtNeuf_poids,' Kg\n   * Cylindre : ',ArtNeuf_cylindre,' cm3') AS description";
	$sql = "SELECT Art_id, ".$designation.", LCde_quantite, CONCAT(LCde_prixHT,' ','".chr(128)."') AS LCde_prixHT, CONCAT((LCde_quantite*LCde_prixHT),' ','".chr(128)."') AS montant
			FROM ligne_commande
			LEFT JOIN article_neuf ON Art_id = ArtNeuf_id
			LEFT JOIN coloris ON ligne_commande.Col_id = coloris.Col_id
			WHERE Cde_id = '".$cde."'";
	$res = mysql_query($sql);
	$i = 0;
	$montantHT = 0;
	$lib_cols = array_keys($cols);  
	while($ligne = mysql_fetch_assoc($res)){
	   ++$i;
	   $lib_ligne = array_keys($ligne); 
	   for($j=0;$j<count($lib_cols);$j++) {
			$donnee[$lib_cols[$j]] = $ligne[$lib_ligne[$j]];
		}
		$size = $pdf->addLine($y, $donnee);
		$y   += $size + 2;
		$montantHT = ($montantHT + $ligne['montant']);
	}	
	$pdf->addCadreEurosFrancs($montantHT);
Au départ, j'avais pensé qu'une fonciton existait peut être sous mysql mais après des heures de recherche j'ai pensé me résigner à utiliser PHP pour mettre un texte en exposant mais après plusieurs recherche je ne trouve aucune fonction, c'est pour cela que je vient vers vous, en existe-t'il une bien caché ou dois-je la créer moi-même ?(si je doit la faire moi-même, quelqu'un pourrait-il m'aider s'il vous plait car je voit pas du tout comment faire).

Merci d'avance!!