IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Définir la largeur maximum d'une string


Sujet :

Langage PHP

  1. #1
    Membre émérite
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Par défaut Définir la largeur maximum d'une string
    Bonjour a tous
    je créer un document pdf grace a la classe fpdf

    ca fonctionne très bien soit dit en passant

    Il y a une méthode qui me retourne la largeur d'un string (width)

    Comme l'affichage graphique du pdf est fixe...lorsque j'inscrit des chose de manière dynamique a l'intérieur, j'aimerais que ca respect les largeurs de cellule

    ainsi je ne sais pas a l'avance mes string peuvent etre longue comme mais il ne faut pas qu'elle dépasse 80mm(largeur d'une colonne

    Alors voici ma question, est ce qu'il y a une maniere de tronquer une string si elle dépasse cette largeur?

    merci

  2. #2
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    tu regardes combien de "m" te font dépasser une certaines valeurs. (ce sont les plus larges en tant que caractères) et apres tu comptes le nombre de char dans ton string, et tu coupe apres, non ??

  3. #3
    Membre émérite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Par défaut
    wordwrap()

    @ tchaOo°

  4. #4
    Membre émérite
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Par défaut
    j'ai essayé avec wordwrap et ca semble pas marcher
    pourtant je crois que je fais correct

    bref tu peux m'aider?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ...
    $nomTotal = strtoupper($result['clientAssureNom'].' '.$result['clientAssurePrenom']);
    //ici je concatene la string seulement s'il y a un 2e nom au dossier dans clientAssureNom2
    $nomTotal .= ($result['clientAssureNom2'] != '') ? strtoupper(' ET '.$result['clientAssureNom2'].' '.$result['clientAssurePrenom2']) : '';
    $wid = $pdf->GetStringWidth($nomTotal);
     
    //Si le nom est trop long pour la cellule(40 mm de large) ca va tronquer le mot
    if($wid > 40){
     
    	$texte = wordwrap($nomTotal,40,"\n",1);
    	echo $texte;
    }
    ...
    Bon le "\n" devrait me faire un retour à la ligne
    mais rien de ca
    si je mets "" il me colle les mots...

    J'aimerais que si ma string $nomText était:
    "Paul-Émile DuRivage Beauregard ET Jean-Chrystophe Saint-Pierre"

    Le résultat serait du genre
    "Paul-Émile DuRivage Beauregard ET Jean-Chrystophe" //Tronquant St-Pierre
    dans l'affichage

    Merci beaucoup

  5. #5
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 140
    Par défaut
    Personnellement, j'ai un script qui analyse la phrase en la découpant en mots et en calculant au fur & à mesure la longueur (simulée) dans FPDF avec la taille & la police courante (GetStringWidth) puis quand la largeur max est dépassée, je fais revenir à la ligne le groupe de mots entier.

    Tu n'as qu'à faire pareil sauf qu'au lieu de revenir à la ligne tu fais un wordwrap...

    pour diviser ta phrase => explode()
    et à chaque mot tu rajoutes la longueur de ce dernier + celle d'un espace

  6. #6
    Membre émérite
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Par défaut
    oki ouais j'avais pas penser a cette manière
    je test ca et t'en redoinne des nouvelles
    merci

  7. #7
    Membre émérite
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Par défaut
    Oki merci bien ca fonctionne effectivement
    et je n'ai pas utilisé la fonction wordwrap non plus
    merci pour l'idée

    Bonne journée a toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Définir la largeur préférée d'une JTable
    Par Shankara dans le forum Débuter
    Réponses: 3
    Dernier message: 01/09/2010, 18h03
  2. [PHPExcel] Comment définir la largeur de toute une colonne ?
    Par flashphp dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/05/2009, 18h36
  3. [2.3.0] Définir la largeur d'une ligne d'un Gridhandle
    Par pascal_dev2 dans le forum BIRT
    Réponses: 4
    Dernier message: 21/08/2008, 10h57
  4. Définir la largeur d'une liste
    Par jpascal dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/03/2008, 09h11
  5. Réponses: 1
    Dernier message: 01/08/2006, 21h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo