PHP TCPDF - Comment puis-je verticales aligner du texte dans une cellule de tableau?
Par défaut, les valeurs dans les tables de cellules (à l'intérieur de tableaux généré par TCPDF) sont alignés verticalement à la surface de la cellule.
Quelqu'un a trouvé une méthode simple pour aligne verticalement le texte au milieu de la cellule?
J'ai trouvé un certain nombre de propositions de solutions en ligne, mais celles-ci ne me paraît idéal.
Par exemple une suggestion (http://sourceforge.net/projects/tcpdf/forums/forum/435311/topic/4385696) est de définir le contenu de chaque cellule en utilisant TCPDF du Multicellulaire() la méthode, mais c'est une douleur lorsque vous voulez simplement écrire votre code HTML, puis générer le fichier PDF.
Une autre suggestion (http://bytethinker.com/blog/tcpdf-and-vertical-alignment-of-table-cells) est à la place s'étend à l'intérieur de chaque cellule et de créer des lignes vides avec des sauts de ligne dans ces travées de l'ordre à la force de votre texte vers le bas (et donc à la verticale au centre), mais c'est un peu un hack.
Quelqu'un a trouvé mieux /le moyen le plus propre pour y parvenir? Sûrement une bibliothèque populaire, serait répondre à une telle exigence commune?
valign
attribut css ou sur les cellulesHeya. J'aurais du le mentionner dans le texte ci-dessus, mais oui, j'ai essayé de la norme HTML / CSS approche.
Il existe de nombreuses façons de faire cela en css. Avez-vous tout essayé?
Au meilleur de ma connaissance, oui. Je ne serais pas poser cette question si je n'avais pas 🙂 Pour être juste, j'espère que c'est simplement une affaire de ma connaissance limitée, par opposition à TCPDF limitée de la fonctionnalité, ce qui m'empêche d'verticalement l'alignement du texte dans TCPDF cellules d'un tableau. Donc si je comprends vos raisons pour l'interroger mes connaissances CSS, a quelqu'un ici fait cette dans TCPDF?
OriginalL'auteur Kosta Kontos | 2012-05-28
Vous devez vous connecter pour publier un commentaire.
Rappelez-vous que TCPDF ne peut pas gérer de plein fouet l'HTML et le CSS à la manière d'un navigateur. Nicolas a fait un bon travail de rendu la plus utilisée les codes HTML. CSS ne peut pas être placé en haut du document, il doit être mis en ligne.
Tables doit être formaté complètement manuellement-les cellules ne sont pas auto-taille de la façon dont ils le font dans un navigateur. De même, vous devez comprendre quelle est la taille de quelque chose et ajouter
<BR>
s ou de la taille d'une image invisible à pousser vers le bas si vous le souhaitez.Peut-être qu'un jour il va ajouter plus de cette fonctionnalité. Comme il est, je trouve la classe incroyable.
OriginalL'auteur JayEdgar
L'une des manières suivantes travaillé pour moi.
1. Écrire le code ci-dessous juste au dessus de la balise table.
Remarque:la Hauteur doit être le double de la hauteur de la ligne.
Utiliser l'attribut cellpadding au niveau de la table. Par exemple,
cellpadding="5"
Dans les deux sens, vous devez régler la hauteur.
OriginalL'auteur Sahana
Si son un tableau statique... vous pouvez ajouter de texte invisible au-dessus du contenu de pousser le texte vers le bas:
Ajuster la taille de police de la pour augmenter ou diminuer le texte... c'est un hack, mais il fonctionne. <br />'s trop de travail... mais ils seront moins précis...
OriginalL'auteur Nawlbergs
Je voulais en bas-align certains - mais pas tous - les cellules. J'ai trouvé que le simple remplissage avec
<br>
n'a pas fonctionné.Au lieu de cela, vous devez utiliser
<br>
- ce alors poussé le texte vers le bas.OriginalL'auteur Steve Lockwood
J'ai une table avec une colonne ayant une taille de police différente (cause, les chiffres sont gros et ne pas rester sur une seule ligne si pas plus petit) et le client veut être centrée verticalement dans les cellules.
Après avoir essayé tous les hacks que j'ai appris dans mon histoire de l'HTML et le CSS et le TCPDF chaque fois se moquant de moi, j'ai enfin deviced une telle solution intelligente qui n'a pas anticipat et enfin je suis arrivé à la verticale de l'alignement des cellules plus ou moins dans la place, c'est à dire dans le milieu de la cellule.
J'ai découvert que si il y a une image dans la même cellule, TCPDF aligne le texte sur la ligne de fond de l'image. J'ai donc fait un script pour me servir avec une image blanche de paramétrées, la largeur et la hauteur et placez-la devant le texte. On peut aussi simplement faire une image blanche de voulu dimensions et de l'utiliser mais je l'ai trouvé plus facile d'expérimenter avec le script et des divers paramètres. Dans mon cas, le wwidth est juste 1px, mais en théorie, on pourrait aussi pousser de texte à la droite de l'image.
Bien sûr, il y a quelques problèmes avec cette approche en tant que bien, mais dans mon cas, tous les chiffres sont très bien se comporter. Si la hauteur de la soit le texte centré ou d'autres colonnes varient fortement, il est très difficile de trouver une bonne valeur (même si avec le paramétrage, on pourrait essayer de calculer la hauteur nécessaires à partir de la longueur de chaque cellule sur la ligne).
Je préfère encore s'il pouvait au moins être en haut de rembourrage ou de haut en marge que l'on peut mettre dans la cellule de travail (vertical-align serait encore plus souhaitable mais même après avoir tout outil permettrait de rendre la vie plus facile)
Espère que cela aide même à d'autres mauvais codeur
hank
OriginalL'auteur hank
Ajoutant style="line-height:50%;" dans la balise d'image fonctionne pour moi. Veuillez donner à ceci un essai. Dans mon cas, je voulais vertical align image dans une cellule de tableau. Vous pouvez ajouter des div dans la cellule de la table et vous pouvez ajouter l'image ou de texte à l'intérieur. Ci-dessous fonctionne pour moi.
<div align="center"><img src="images/logo_example.png" border="0" height="30" width="30" style="line-height:50%;"/></div>
OriginalL'auteur Aman
Peut-être avec les petits de la hauteur de ligne c'est une solution de contournement:
<table width="100%" cellpadding="5" cellspacing="0">
cellpadding est la valeur de la hauteur de la cellule /2 . N'a pas l'air bien si vous avez besoin de plus d'espace en hauteur
sinon, ce sera la meilleure des solutions: http://bytethinker.com/blog/tcpdf-and-vertical-alignment-of-table-cells
OriginalL'auteur Silvan
Nid d'une autre TABLE et ajouter une autre LIGNE. Ajouter un vide TD avant le contenu que vous souhaitez alignés verticalement, et ajouter un attribut hauteur. Cela devrait vous donner un contrôle granulaire sur l'espacement vertical.
Voici un exemple:
OriginalL'auteur mmoore500
Utiliser inline style pour la
<td>
balise, puis faire varier le pourcentage de définir le texte à la position que vous voulez sur la visualisation des pdf.e.g
OriginalL'auteur Ibrahim Isa
Vous pouvez ajouter de l'espace pour votre
<td>
table à l'aide de <br/>
j'ai trouvé ce lien peut-être peut vous aider à
OriginalL'auteur wahmal