begin process at 2008 08 29 07:54:21
1 233 523 membres
62 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Exportation PDF avec contraintes [ Divers / Divers ] (jejelg3)

Exportation PDF avec contraintes le 29/05/2008 16:07:39

jejelg3
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.

Re : Exportation PDF avec contraintes le 30/05/2008 10:37:23

nickadele
Membre Club
(Admin CS)
Bonjour,

je n'ai pas encore eu l'occasion d'approfondir le générateur de pdf.
Mais, normalement il est possible par exemple de généré un pdf au départ d'une page html et coldfusion se charge lui-même de transposer la structure, le style, etc au niveau du pdf.
Comme il est possible d'utiliser les ancres au niveau html (ex : une FAQ), ne serait-ce pas une piste à suivre ? Comment Coldfusion transpose-t-il les ancres HTML au niveau du pdf ?

Nickadele

Re : Exportation PDF avec contraintes le 30/05/2008 17:15:06

jejelg3
Bonjour et merci à toi nickadele pour ta suggestion.

Oui, bien sur il est possible de générer facilement et rapidement un PDF à partir d'une page HTML. D'ailleurs, cela s'effectue sans connaissance approfondie du langage. Malheureusement pour des utilisations avancées, cela est très limité. D'autant plus en ColdFusion version MX7. Mon problème n'est pas juste de générer un fichier PDF mais d'effectuer des opérations lors de la génération.

Je pense que ton idée d'ancres au niveau HTML peut être une piste à suivre. Mais comment à la fin de la génération retrouver le numéro de page de chaque ancre dans le document PDF et ainsi générer un index à la fin du PDF. De plus, cela se corse davantage lorsqu'il s'agit de retravailler ce PDF afin de remplacer toutes les références d'une page vers une autre grace aux ancres.

Merci à tous pour toutes vos idées sur cette piste et je reste également ouvert à toutes autres suggestions...

Re : Exportation PDF avec contraintes le 31/05/2008 11:03:48

nickadele
Membre Club
(Admin CS)
Re,

je viens de faire un test avec une page contenant des ancres, cela fonctionne très bien.
Pas besoin de connaître le numéro de page de destination de l'ancre, coldfusion se charge de transposer les ancres html en bookmark pdf !
Ce que j'ai fait :
1. création de ma page en html (voir exemple ci-dessous)
2. test de la page au format html, afin de s'assurer qu'au niveau html les ancres soient bien définies.
3. Ajout de la fonction cfdocument


Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle

Re : Exportation PDF avec contraintes le 31/05/2008 11:04:14

nickadele
Membre Club
(Admin CS)
<cfheader name="Content-Disposition" value="inline; filename=test.pdf">
<cfdocument format="pdf">
<cfoutput>
<html>
<body>
<a href="##test1">aller au test 1</a><br />
<a href="##test2">aller au test 2</a><br />
<a href="##test3">aller au test 3</a><br />
<a href="##test4">aller au test 4</a><br />
<a href="##test5">aller au test 5</a><br />
<a href="##test6">aller au test 6</a><br />
<a href="##test7">aller au test 7</a><br />
<a href="##test8">aller au test 8</a><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />

<div id="test1">titre test1</div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />

<div id="test2">titre test2</div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />

<div id="test3">titre test3</div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />

<div id="test4">titre test4</div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />

<div id="test5">titre test5</div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />

<div id="test6">titre test6</div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />

<div id="test7">titre test7</div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />

<div id="test8">titre test8</div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</body>
</html>
</cfoutput>
</cfdocument>

Re : Exportation PDF avec contraintes le 31/05/2008 19:01:48

jejelg3
Re bonjour et re merci à toi nickadele pour ta réponse.

Merci de m'avoir expliqué comment insérer des ancres HTML. Cependant, ce n'était pas du tout ce qui me posé problème. Je savais déjà insérer des ancres HTML dans un document PDF généré avec ColdFusion.

Ce qui me posé problème et qui me pose encore problème est "comment à la fin de la génération (avec les ancres HTML dans le PDF) retrouver le numéro de la page de chaque ancre dans le but de créer un index à la fin du PDF".

Je rappelle à tous que l'objectif est de générer un catalogue de données au format PDF avec un index "dynamique" à la fin de ce PDF (index de chaque donnée avec son numéro de page). Poser des ancres HTML pour repérer une donnée dans le catalogue c'est bien mais le but reste d'afficher les numéros de page de ces ancres dans le PDF.

Merci encore pour tous vos efforts. Bien cordialement !

--
Jérémy

"L'informatique, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !" (Mireille Sitbon).

Re : Exportation PDF avec contraintes le 31/05/2008 19:15:18

nickadele
Membre Club
(Admin CS)

Re,

as tu essayé en gérant les breackpage ?
as tu des éléments qui définissent une taille de contenu ?

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle


Re : Exportation PDF avec contraintes le 31/05/2008 20:17:17

jejelg3
Impossible de gérer ce problème avec des "pagebreak" car deux données peuvent se situer sur la même page. Il ne doit pas y avoir de blanc dans une page. Explication : les données sont affichées à les unes à la suite des autres dans le PDF.

Exemple de génératon PDF :

Les "-----------------------------" représentent les délimiteurs de page dans le fichier PDF. Chaque donnée est représentée par un titre et du texte ("blablabla...").

-----------------------------
Donnée 1

blablablablablabla
blablablablablabla
blablablablablabla
blablablablablabla
blablablablablabla
blablablablablabla
blablablablablabla
-----------------------------
blablablablablabla
blablablablablabla
blablablablablabla
blablablablablabla
blablablablablabla
blablablablablabla
blablablablablabla
blablablablablabla
blablablablablabla
-----------------------------
blablablablablabla
blablablablablabla
blablablablablabla
blablablablablabla

Donnée 2

blablablablablabla
blablablablablabla
blablablablablabla
-----------------------------
blablablablablabla
blablablablablabla
blablablablablabla

Donnée 3

blablablablablabla
blablablablablabla
blablablablablabla
-----------------------------

Donnée 4

blablablablablabla
blablablablablabla
blablablablablabla
blablablablablabla
blablablablablabla
blablablablablabla
blablablablablabla

-----------------------------

INDEX A AFFICHER

Donnée 1        page 1
Donnée 2        page 3
Donnée 3        page 4
Donnée 4        page 5

-----------------------------
--
Jérémy

"L'informatique, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !" (Mireille Sitbon).

Re : Exportation PDF avec contraintes le 31/05/2008 20:21:40

jejelg3
Petite précision :

Je connais la taille du conteneur (taille de la page) mais pas du contenu. La taille du contenu change selon la donnée. Certaines données tiennent sur deux pages, d'autres sur 10 pages, d'autres sur une demi page, etc (génération PDF "dynamique").

D'autant plus que le texte d'une donnée peut être écrit de plusieurs tailles différentes. Tantôt une taille et parfois et une autre taille. Donc cela n'occupe pas la même place dans le PDF.

Cordialement !
--
Jérémy

"L'informatique, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !" (Mireille Sitbon).

Re : Exportation PDF avec contraintes le 31/05/2008 20:28:41

nickadele
Membre Club
(Admin CS)
Je pense que tu n'auras pas d'autres solutions que d'utiliser ta troisième proposition :
"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."


Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle


Classé sous : rapport, donnée, page, pdf, coldfusion

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS