Jump to content
Sign in to follow this  
chistof

Texte multi-colonnes et PDF

Rate this topic

Recommended Posts

Bonjour,

Mon besoin est le suivant : un utilisateur tape un texte légèrement formaté (gras et italique, saut de ligne simple ou paragraphe par exemple) en mode WYSIWIG, il n'est contraint que par le nombre de mots maximum. On enregistre le message dans un champ texte d'une BD (MySQL). Puis il me faut une moulinette qui formate le texte dans une mise en page sur 3 colonnes justifiées dans un document PDF. L'utilisateur de l'appli ne devra pas se soucier du colonnage, la moulinette doit en fait passer automatiquement à la colonne suivante quand on arrive sur la dernière ligne et que le mot suivant ne rentre pas entièrement.

Actuellement j'ai uniquement un <textarea> pour écrire mon texte. Je pensais utiliser TinyMCE pour formater le texte et peut être la librairie FPDF pour enregistrer à la volée le texte dans plusieurs colonnes, mais je ne sais pas si FPDF sera assez puissant pour automatiser tout cela.

L'avantage est que le format de rendu final en PDF est prédéterminé, donc on peut le fixer une fois pour toute au début.

Avez vous déjà rencontré des problématiques similaires ? Un tuyau ?

Autrement dit quelles sont les solutions pour générer des PDF dans un format prédéfini avec du texte HTML dynamique ?

Edited by chistof

Share this post


Link to post
Share on other sites

J'utilise un composant dynamicpdf , il doit exister une librairie similaire en php.

Toutefois mes données à traiter sont formatées en XML et non en html.

Si ton HTML est basique (2 ou 3 balises différentes = il faudra que tu brides ton editeur area) et bien formé, tu peux faire un traitement de la chaîne constituée du code HTML à la recherche des balises.

= tu démarres la chaine à la recherche de "<", tu lis ce qui se trouve entre "<" et ">", si par exmeple tu trouves un saut de paragraphe tu fais de même dans pdf, sinon tu testes les autres balises, tu coupes la chaine à droite et tu continues jusqu'à la fin de la chaîne.

Tu comptes les colonnes + les lignes + les mots + les caractères, un fois arrivé à ton quota de caractère pour une ligne tu sautes de ligne sans couper le mot, une fois arrivé à ton quota de ligne tu sautes de colonnes, une fois arrivé à ton quota de colonne tu sautes de page.

Share this post


Link to post
Share on other sites

Oui ça peut être une piste intéressante cependant je crois qu'il faudrait prendre en compte la taille des lettres pour avoir un résultat très propre, si on ne fait que compter les caractères on aura des lignes de longueur différente. Et comment avoir l'info des dimensions de chaque lettre relativement à la police, à la taille, au style du texte en PDF ?

Share this post


Link to post
Share on other sites

salut,

tu as la fonction pdf_stringwidth() qui te retourne la largeur d'un texte avec la police courante.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...