Bonjour à tous !
Contexte :Je développe actuellement un programme en ColdFusion (ColdFusion MX7) afin de
générer un rapport PDF à partir d'un catalogue de données contenues dans une base de données MySQL. Pour résumer le procédé, il y a
une table dans la database avec deux champs (nom de la donnée + contenu). Le rapport doit contenir
toutes les données de cette table (nom + contenu).
Contrainte :- Le contenu d'une donnée fait parfois
référence à une autre donnée du catalogue. Cette référence doit être remplacée par le numéro de page de la donnée pointée dans le fichier PDF généré.
-
Un index doit être généré à la fin du rapport PDF avec le nom de chaque donnée et le numéro de page ou celle ci est localisée dans le PDF.
Solution :- A fur et a mesure de la génération du rapport, stocker dans un tableau temporaire (que nous nommerons ici tabTemp) les numéros de pages correspondant aux données. Puis après la génération du rapport PDF, refaire une seconde "pass" en remplaçant toutes les références (identifiées par une balise spécifiques <reference=nom_de_la_donnee>) par le numéro de la page. Enfin, générer l'index à l'aide du même tableau temporaire (tabTemp). Solution qui a l'air facilement réalisable et pourtant...
Problème :Il est impossible en ColdFusion MX7 de récupérer le numéro de page courant pour le stocker dans un tableau temporaire (cf le site Adobe : "The cfdocument scope variables are reserved for page number rendering. Do not use them in ColdFusion expressions."). De plus, impossible de retravailler un fichier PDF déjà créé afin d'effectuer les modifications nécessaires et d'y ajouter l'index.
Autres solutions envisagées pour contourner ce problème :- Exporter vers un autre format que PDF (Word ?) puis ???
- Générer ce rapport à l'aide d'une autre technologie intégrable au projet ColdFusion existant (javascript ? php ?). Trop lourd à développer ?
- Avant de générer le rapport, analyser les données et calculer (prévoir) à l'avance sur combien de page (au format X fois Y) la donnée va telle être contenue. Deuxième étape : remplacer toutes les références par les numéros de page hypothètiques. Enfin, générer le dit rapport.===> Oui, mais comment anticiper sur le nombre de pages à prévoir ?
- Autres solutions ?
Après de NOMBREUSES recherches sur le web, impossible de trouver une quelconque piste expoitable. Mon projet est complètement bloqué depuis un moment. Bref, je galère ! Avez-vous une idée ? Toutes vous suggestions sont les bienvenues. Merci pour votre aide.