developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Opened 13 years ago

Closed 12 years ago

Last modified 12 years ago

#403 closed enhancement (fixed)

upgrade de tcpdf à la version 2.0

Reported by: bastnic Owned by: Julien
Priority: normal Milestone: jelix 1.1
Component: jelix:core response Version: 1.0RC2
Severity: minor Keywords:
Cc: Blocked By:
Blocking: Documentation needed: no
Hosting Provider: Php version:

Change History (35)

comment:1 Changed 13 years ago by Julien

  • Documentation needed unset
  • Owner changed from laurentj to Julien

Je n'ai pas regardé dans le détail, mais apparemment y a pas de changement d'API manifeste pour les 2-3 instructions que nous exécutons à partir de jTcpdf, donc il suffit a priori de remplacer le répertoire dans les libs.

Je peux faire un test ce soir si ça t'intéresse, pour vérifier que tout va bien, y compris au niveau des fontes pour le build.

Je testerai que mon contrôleur de test du ticket #131 marche bien.

comment:2 Changed 13 years ago by Julien

  • Status changed from new to assigned

comment:3 Changed 13 years ago by Julien

Ok, c'est vérifié, ça fonctionne comme il faut.

par contre, je ne sais pas trop comment faire le patch là-dessus, car j'ai remplacé tous les fichiers, plutot que de faire des mises à jour :

$ svn status lib/tcpdf/
R      lib/tcpdf
A      lib/tcpdf/barcode/barcode.php
A      lib/tcpdf/barcode/image.php
A      lib/tcpdf/barcode/c128aobject.php
A      lib/tcpdf/barcode/c39object.php
A      lib/tcpdf/barcode/lesser.txt
A      lib/tcpdf/barcode/c128bobject.php
A      lib/tcpdf/barcode/i25object.php
A      lib/tcpdf/barcode/c128cobject.php
R      lib/tcpdf/LICENSE.TXT
A      lib/tcpdf/config/lang
A      lib/tcpdf/config/lang/eng.php
A      lib/tcpdf/config/tcpdf_config.php
A      lib/tcpdf/unicode_data.php
R      lib/tcpdf/tcpdf.php
R      lib/tcpdf/README.TXT

idem pour le dossier lib/pdf-fonts/

par contre, j'ai du modifier le manifest :

$ svn diff build/manifests/jelix-lib.mn 
Index: build/manifests/jelix-lib.mn
===================================================================
--- build/manifests/jelix-lib.mn        (révision 785)
+++ build/manifests/jelix-lib.mn        (copie de travail)
@@ -532,6 +532,8 @@
   LICENSE.TXT
   README.TXT
   tcpdf.php
+  unicode_data.php
+  
 cd lib/tcpdf/barcode
 ! barcode.php
 ! c128aobject.php

Proposition pour Laurent : soit je fais le commit global après review, soit tu fais le commit en reprenant la modif dans le manifest et le fichier lib/tcpdf/config/tcpdf_config.php en écrasant ceux fournis par la dist TCPDF.

Up to you.

comment:4 Changed 13 years ago by Julien

  • review set to review?

comment:5 follow-up: Changed 13 years ago by laurentj

  • review changed from review? to review-

Comme pour tout patch : svn diff > monpatch.diff à partir du répertoire trunk, et tu l'attaches au ticket. N'oublie pas de faire un svn add de tous les nouveaux fichiers

comment:6 Changed 13 years ago by estee

Bonsoir, Juste pour infos, une nouvelle version aujourd'hui : TCPDF 2.2.003 daté : March 3, 2008.

comment:7 follow-up: Changed 13 years ago by estee

Mais bon est ce que la version 2.2 ne devient pas trop lourd (trop de fonction) la taille de tcpdf passe de 131 à 233KB ...

comment:8 in reply to: ↑ 5 Changed 13 years ago by Julien

Replying to laurentj:

Comme pour tout patch : svn diff > monpatch.diff à partir du répertoire trunk, et tu l'attaches au ticket. N'oublie pas de faire un svn add de tous les nouveaux fichiers

Ok, j'avais juste peur de la taille du patch ;) Je reviens vers toi plus tard.

comment:9 in reply to: ↑ 7 Changed 13 years ago by Julien

Replying to estee:

Bonsoir, Juste pour infos, une nouvelle version aujourd'hui : TCPDF 2.2.003 daté : March 3, 2008.

Ok bien vu. Il faut que je recheck, mais j'ai cru voir une possibilité pour définir la config générale ailleurs que dans lib/tcpdf/config/tcpdf_config.php

L'idée serait de ne plus du tout modifier les fichiers de tcpdf, pour qu'on puisse mettre à jour juste en remplacant le dossier.

Je pense aussi que les fonts devraient rester dans lib/tcpdf/fonts/ (au lieu de lib/pdf-fonts), tout en gardant la possibilité de les inclure/exclure via l'option de build adéquate comme actuellement. Encore une fois dans l'optique de faciliter la mise à jour.

Replying to estee:

Mais bon est ce que la version 2.2 ne devient pas trop lourd (trop de fonction) la taille de tcpdf passe de 131 à 233KB ...

Il semblerait qu'il y ait un meilleur support unicode dans la 2.2, je pense que c'est partiellement la raison du gonflement, notamment le fichier lib/tcpdf/unicode_data.php

Au vu des améliorations, je ne pense pas que ce surpoids soit réellement gênant.

On peut peut-être aussi imaginer, d'une façon ou d'une autre, que le préprocesseur compresse ces fichiers (genre zappe les lignes blanches, les commentaires, l'indentation, etc....), mais je ne sais pas ce que ça ferait gagner. Des avis ?

comment:10 Changed 13 years ago by laurentj

Je pense aussi que les fonts devraient rester dans lib/tcpdf/fonts/ (au lieu de lib/pdf-fonts),

J'ai fait ça pour permettre de partager les fonts avec une autre lib pdf si on en utilise une autre.. Après tout, des fontes, ce sont des fontes...

comment:11 Changed 13 years ago by laurentj

Au sujet de la version 2.2 : si il y a une version 2.2, c'est que la version 2.0 ne sera plus maintenu. Donc un jour ou l'autre, de toute façon, il faudra bien migrer. Autant le faire maintenant.

comment:12 Changed 13 years ago by bastnic

  • Milestone set to Jelix 1.1

comment:13 Changed 13 years ago by Julien

Hello,

je me prépare à faire le patch, mais question : je dois vraiment envoyer tout le patch pour review (avec les fonts) ? parce que ça va peser un max !

comment:14 Changed 13 years ago by estee

Pour infos : Dernière version 2.8.000 (2008-03-20) Notes: http://sourceforge.net/project/shownotes.php?release_id=585759

comment:15 Changed 13 years ago by laurentj

  • review review- deleted

@julien : sans les fontes :-) Tu les remplaceras/ajouteras lors du commit.

comment:16 Changed 13 years ago by Julien

Hello Laurent,

si je soumets le patch demain, tu intègres encore dans la r1.0.3 (sachant que l'upgrade ne pose pas de problème d'après les tests effectués il y a qq temps) ?

comment:17 Changed 13 years ago by laurentj

  • Severity changed from normal to minor

non, juste dans le trunk. C'est une trop grosse mise à jour. Passer d'une 1.53 à une 2.8, c'est un saut trop long ;-) Je ne veux pas prendre de risque sur la stabilité de la branche 1.0.x (surtout que c'est une lib que l'on ne maitrise pas).

D'ailleurs, vu que TCPDF avance assez rapidement, peut-être vaut-il mieux attendre, et intégrer la dernière version qui sera disponible peu avant la release d'une 1.1beta de Jelix ?

comment:18 Changed 13 years ago by Julien

Ok,

dans ce cas j'attends effectivement, d'autant plus que ça sert à rien de faire un gros commit dans le trunk avec les fonts à chaque fois, s'il faut mettre à jour 1 semaine après.

On fera donc ça au moment de 1.1 beta, à moins que tu ne prévois d'autres releases 1.0.x>3.

Sinon, effectivement, j'ai aussi été très surpris du n° de version de TCPDF, mais il faut plutot l'imaginer comme la version 2.0.8 si l'on reprend le nommage des versions de jelix. Les changements ne sont pas forcement énormes à chaque décimale. Bref, il n'y a pas eu 8 versions majeures dans la branche 2 ;)

comment:19 Changed 13 years ago by Julien

ce sera même la version 3, voir 4 ou 5 d'ici Jelix 1.1, vue le rythme des versions ;)

comment:20 Changed 13 years ago by bastnic

Ca va pas être facile de se mettre à jour niveau API de TCPDf :p.

comment:21 Changed 13 years ago by laurentj

  • Milestone changed from Jelix 1.1 beta 1 to jelix 1.1

comment:22 Changed 12 years ago by Julien

  • review set to review?

Voilà, je suis prêt à faire l'intégration de la version actuelle de TCPDF....

bon par contre, pas trop possible de faire un patch, avec la taille des polices, pas mal de fichiers à supprimer, etc....

comment on procède ?

Julien

comment:23 follow-up: Changed 12 years ago by bastnic

Nous sommes en trunk, commite, j'essayerais de te faire un retour rapide.

Par contre il sort 4 versions par semaine. On va faire comment ?

comment:24 in reply to: ↑ 23 Changed 12 years ago by Julien

Replying to bastnic:

Nous sommes en trunk, commite, j'essayerais de te faire un retour rapide.

oki

Par contre il sort 4 versions par semaine. On va faire comment ?

ben je pense pas qu'il faille trop s'y attarder... on intègre celle du moment, on mets à jour lors des révisions programmées de Jelix (un peu comme ce que l'on ferait pour jQuery par exemple), dans la mesure où ça ne casse rien.

S'il y a un bug majeur dans TCPDF, ça justifiera une révision de Jelix.

Si c'est juste des nouvelles fonctionnalités ou des changement mineurs, alors on attend la sortie de la prochaine révision planifiée de Jelix.

Je pense que c'est cohérent comme process d'intégration.

comment:25 Changed 12 years ago by Julien

voilà, commit fait.... pfiou que de changements ;)

comment:26 Changed 12 years ago by bastnic

Ca apporte beaucoup de possibilités alors ?

comment:27 Changed 12 years ago by Julien

oui, il y a quand même eu des progès significatifs depuis la version qu'on embarquait... des nouvelles méthodes, des nouvelles polices, un bien meilleur support du HTML et de l'unicode, ... Bref, je vais pas refaire le changelog ;)

jTcpdf et jResponseTcpdf ont aussi été modifiés car il fallait changer 2-3 trucs...

j'ai aussi fait en sorte que la mise à jour de TCPDF soit plus simple, avec par exemple les constantes de config directement dans jTcpdf, au lieu du fichier config de TCPDF qu'il faudrait modifier à chaque nouvelle release.

Bien entendu, j'ai pas inclus tous les fichiers de TCPDF, notamment les outils pour générer des fichiers police, ça a pas spécialement sa place dans Jelix.

NB : y a quelques polices qui n'existent plus, alors il faudra bien le notifier dans le changelog de Jelix : utiliser les nouvelles polices.

comment:28 Changed 12 years ago by Julien

j'ai fixé 2-3 petits détails, notamment un changement de police par défaut pour une qui supporte correctement l'unicode

comment:29 Changed 12 years ago by laurentj

  • review review? deleted

Je viens de regarder tcpdf là. C'est devenu un truc vraiment monstrueux : 378ko pour le seul fichier tcpdf.php. 10373 lignes de codes. Plus unicode_data.php, qui fait pratiquement autant en poids, avec plus de 18000 lignes de codes...

ouaouhh... pas du tout dans la philosophie Jelix ça... mais bon...

comment:30 Changed 12 years ago by Julien

Hello,

oui c'est clair que c'est énorme !

Heureusement c'est pas une lib chargée à chaque requête ;)

Mais bon, comme dit, c'est une des seules libs que je connaissais qui faisait bien son travail ;)

Maintenant, je viens de voir que le dév de fpdf n'est pas stoppé (je croyais, la précédente version datant de 2004 : http://www.fpdf.org/fr/histo.php

Bref, je vais jeter un oeil, si on peut faire les choses qui vont bien, avec un bon support de l'unicode, alors pkoi pas proposer un jFpdf et jResponseFpdf...

Question qui n'a (presque) rien à voir : http://developer.jelix.org/changeset/1118/ : ça sert à quoi le "!" dans un manifest ? sauf erreur c'est pas documenté et j'ai pas le temps de lire le code soure ;)

comment:31 Changed 12 years ago by Julien

bon, apparemment, fpdf supporte pas l'unicode, donc de mon point de vue c'est pas utilisable...

comment:32 Changed 12 years ago by Julien

une autre idée, comme ça, quid du composant PDF du Zend Framework ? les fichiers ont l'air plus légers, il semblerait qu'on puisse aussi éditer des PDFs existants, chose que ne supporte pas TCPDF.

Maintenant faudrait tester, et voir s'il y a des dépendances du ZF...

comment:33 Changed 12 years ago by Julien

Je propose de fermer ce ticket comme la mise à jour a été effectuée.

Cependant, TcPDF continue d'être mis à jour régulièrement (déjà 5 nouvelles releases depuis l'intégration précédente, mais bon, le gars fait une release à chaque typo), je me propose donc de faire les mises à jour régulières dans le trunk, sans pour autant avoir besoin de conserver ce ticket ouvert.

Ou alors au moins ne pas mettre de milestone sur ce ticket, pour qu'il soit permanent.

Ok pour vous ?

Sinon, vous pensez quoi du PDF du ZF ? perso TCpdf me convient bien, même si ça devient un peu lourd, au moins j'arrive à faire tout ce que je veux avec...

Enfin, Laurent, peux-tu me dire stp ce que signifie le "!" dans un manifest ? J'ai pas trouvé dans la doc et j'ai pas envie de lire le code ;)

comment:34 Changed 12 years ago by laurentj

  • Resolution set to fixed
  • Status changed from assigned to closed

Ok, on ferme. Pour le !, ça veut dire de ne pas toucher au fichier, même en mode "suppression commentaire/compression".

comment:35 Changed 12 years ago by Julien

ok merci.

donc de temps à autres, vous verrez un commit de nouvelles versions de TcPDF (bien entendu, s'il y a un changement majeur ou un break de compatibilité, on en discutera avant)

Sinon ok, bien compris pour le "!" ;)

Note: See TracTickets for help on using tickets.