L'obtention de la hauteur de texte à savoir remplir hauteur qu'en TCPDF
Je suis en train de passer à travers le code de TCPDF à comprendre comment on calcule la hauteur du texte à être rendus, mais c'est trop pour moi à gérer sans vous le demander.
Ce que je veux savoir: dans le fichier PDF à partir de l'exemple 5 http://www.tcpdf.org/examples/example_005.pdf il donne à la cellule un fond jaune. Je suppose qu'au niveau de base, il attire d'abord une boîte avec cette couleur de remplissage, puis ajoute le texte, de sorte que la méthode est-elle appel pour obtenir la hauteur du texte de connaître la hauteur de la zone à remplir?
Je peux le voir dans l'exemple de code que MultiCell()
est le point d'entrée, mais il n'est pas clair quelle est la méthode qu'il appelle pour obtenir la hauteur du texte. J'ai collé le code pour MultiCell()
dans ce pastebin
Quelqu'un sait comment tracer ce, parce que le faire à la main et en regardant le code ne fonctionne pas du tout pour moi.
L'exemple de code montre que Multicellulaire est le point d'entrée, mais quand vous regardez Multicellulaires, il n'est pas clair comment la hauteur du texte est calculé. J'ai peut-collez le code là-haut.
Voulez-vous dire la taille de la police? C'est également défini....
Ajout d'une deuxième réponse comme un point de départ/preuve de concept.. Même si elle requies un ensemble font-size, line-height, et l'utilisation d'une police à chasse fixe w/ connu largeur.. Mais si vous êtes de la conception avec une police et une taille...+
OriginalL'auteur sami | 2011-01-08
Vous devez vous connecter pour publier un commentaire.
La cellule est en cours d'élaboration par Multicellulaire:
http://www.tcpdf.org/examples/example_005.phps
et de: http://api.joomla.org/com-tecnick-tcpdf/TCPDF.html
Donc, comme vous pouvez le voir, les deux premières valeurs sont statiquement l'affectation d'une largeur (55) et une hauteur (5) de la Multicellulaire
En outre:
Vous pouvez voir l'unité de mesure est le programme/la classe par défaut PDF_UNIT
La taille de la police est alors définie par
(ou simplement l'utiliser SetFontSize pour la taille seulement)
J'ai collé le code pour Multicellulaire() dans ce pastebin pastebin.com/A1niGrQG Êtes-vous familier avec TCPDF?
Tirant le code maintenant... Alors que c'est juste la méthode pour multicellulaires ? Droit?
Vous êtes à essayer de comprendre comment obtenir la taille du texte pour remplir la cellule? Vraiment: vous n'avez pas.. Vous définissez la taille de votre texte que vous voulez qu'il soit (en points)... Puis vous définissez votre multicellulaire à tout ce que vous voulez qu'il soit (dans PDF_UNIT ou quelle que soit l'échelle utilisée pour le document)... Puis vous entrez votre texte.. Dans l'exemple je crois qu'ils ont eu leur multicellulaire demensions inférieure à la quantité de texte de sorte que la cellule automaticallyi élargie à encompase le texte... (multicellulaire taille est un minumum de taille - c'est à dire dans le cas où le contenu était plus petite que la cellule..)
Non, je ne suis pas à essayer de comprendre comment obtenir la taille du texte pour remplir la cellule. Je suis juste en utilisant cela comme un exemple pour obtenir le code que je veux. Je suis en train de travailler sur un autre cas d'utilisation, qui, fondamentalement, m'oblige à trouver la hauteur du texte. Si la largeur est de 300 et j'ai 2 paragraphes (facteur dans le type de police), quelle est la hauteur de ce texte? Quelque part dans cette lib code, il sait comment calculer cette hauteur. Si vous regardez les commentaires des Multicellulaires() est dit que $h est la hauteur minimale, mais il s'étend automatiquement au besoin. Donc, je pense que le code est plus intelligent que d'avoir besoin de la hauteur de la fed à la main.
OriginalL'auteur CarpeNoctumDC
TCPDF (au moins la version la plus récente) comprend la méthode
getStringHeight()
pour obtenir l'estimation de la hauteur nécessaire pour l'impression d'une simple chaîne de texte à l'aide de laMulticell()
méthode.En outre, la
getNumLines()
vous donne la méthode de estimatad nombre de lignes.Vérifiez la documentation du code source à http://www.tcpdf org pour plus d'informations.
OriginalL'auteur Nicola Asuni
Juste un simple preuve de concept pour ce que j'ai dit dans mon dernier commentaire sur mon autre réponse...
** Vous devez utiliser un monospaced police et une ligne de hauteur égale à votre hauteur du texte (ou de modifier le code de la ligne de hauteur à la place du texte de hauteur) assez simple à résoudre...
Vous avez également de comprendre votre approximative à chasse fixe en largeur ... la Meilleure chose à faire est d'utiliser un capitole M (M est le plus char - afin de caractères à espacement fixe sont réglés à cette largeur..)
OriginalL'auteur CarpeNoctumDC