Bonjour,
J’essaye de créer un bouton qui permet d’exporter un formulaire en PDF et il faudrait que je puisse mettre en forme les données selon un template pré défini.
En v5 je ne suis pas sûr que la conversion automatique via le MIME type forcé ait été backportée, je vais vérifier mais au pire il faut effectuer cette conversion HTML => PDF via un peu de code. Un template HTML converti en PDF reste l’approche la plus simple/souple.
Quoi qu’il en soit il faut déjà vous mettre à jour sur la v5, la révision actuelle est la 5.3.54, votre revision 5.3.42 date d’il y a plusieurs mois et est en retard de ~200 commits, nous ne pouvons pas assurer de support dans de bonnes conditions si vous ne vous maintenez pas raisonnablement à jour
Vérification faite en v5 il ça ne se faisait pas encore automatiquement via le MIME type forcé. Il faut implémenter ce type de publication de la manière suivante
Un template de publication de type méthode avec un template HTML:
public Object myPrintMethod(PrintTemplate pt) {
try {
pt.setMIMEType(HTTPTool.MIME_TYPE_PDF);
return HTMLToPDFTool.toPDF(pt.fillTemplate(this, pt.getTemplate(true), getValues()));
// ou pour une publication de liste:
// return HTMLToPDFTool.toPDF(pt.fillTemplate(this, t.getTemplate(true), getCurrentList())); // Pour une pib
} catch (Exception e) {
AppLog.error(e.getMessage(), e, getGrant());
pt.setMIMEType(HTTPTool.MIME_TYPE_TXT);
return e.getMessage();
}
}
Cela étant dit, pourquoi restez vous en v5 ?
Celle-ci est désormais en maintenance long terme, cela veut dire une maintenance uniquement corrective destinée aux applications en production qui n’evoluent plus.
Si vous travaillez encore activement sur votre application vous avez donc tout intérêt à passer en v6 pour bénéficier des nouvelles fonctionnalités de la plateforme (par exemple cette fonctionnalité de conversion auto HTML => PDF).
Actuellement, je suis en V5, mais j’ai bien l’intention de passer en V6 prochainement dans le cadre de mon plan de modernisation. Cette transition va nous permettre de bénéficier des nouvelles fonctionnalités et améliorations de la V6. Cependant, pour l’instant, j’ai besoin de maintenir certains éléments en V5, car certains de mes composants doivent encore rester compatibles avec cette version.
C’est pour cela que je recherche des solutions ou des conseils cette fonctionnalité en question en V5.
La méthode indiquée ci-dessus est destinée à la v5. Vous pourrez simplifier ça en v6 (cf. ma réponse initiale= plus de code mais juste un MIME type forcé à PDF)
Dans tous les cas ne négligez pas de vous maintenir à jour régulièrement, notamment sur les branches en maintenance