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)

jeudi 29 mai 2008 à 16:07:39 | Exportation PDF avec contraintes

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.

vendredi 30 mai 2008 à 10:37:23 | Re : Exportation PDF avec contraintes

nickadele

Membre Club Administrateur CodeS-SourceS
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

vendredi 30 mai 2008 à 17:15:06 | Re : Exportation PDF avec contraintes

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

samedi 31 mai 2008 à 11:03:48 | Re : Exportation PDF avec contraintes

nickadele

Membre Club Administrateur CodeS-SourceS
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

samedi 31 mai 2008 à 11:04:14 | Re : Exportation PDF avec contraintes

nickadele

Membre Club Administrateur CodeS-SourceS
<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>

samedi 31 mai 2008 à 19:01:48 | Re : Exportation PDF avec contraintes

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

samedi 31 mai 2008 à 19:15:18 | Re : Exportation PDF avec contraintes

nickadele

Membre Club Administrateur CodeS-SourceS

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


samedi 31 mai 2008 à 20:17:17 | Re : Exportation PDF avec contraintes

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

samedi 31 mai 2008 à 20:21:40 | Re : Exportation PDF avec contraintes

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

samedi 31 mai 2008 à 20:28:41 | Re : Exportation PDF avec contraintes

nickadele

Membre Club Administrateur CodeS-SourceS
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



Cette discussion est classé dans : rapport, donnée, page, pdf, coldfusion


Répondre à ce message

Sujets en rapport avec ce message

Ouvrir page avec coldfusion et MS SQL [ par lechouchou ] Bonjour,J?utilise MS SQL 2000 Coldfusion MX et Dreamweaver MX pour faire un site Web interactif. Lorsque je veux le tester sur mon ordinateur (local h prob avec <a href> et coldfusion [ par bruno270579 ] bonjour a tousvoila mon prob, j'essaie de creer un petit forum en coldfusion et dans la premiere page, j'affiche tous les sujets de messages (qui devr Prob coldfusion avec flash [ par carlos666 ] Je récupère une liste (de liens) générée par coldfusion pour l'afficher dans flash. Le problème est que flash ne reconnais pas cette liste car dans le Pourquoi acheter coldfusion [ par ohan ] Bonjour,je voudrais simplement savoir quels sont les avantages de coldfusion par rapport à php (avec apache) ou à jsp (avec tomcat). Ce sont deux ser Imprimer un pdf sous ColdFusion Server Enterprise 7,0,0,91690 [ par azull ] Bonjour,J'auret voulue savoir si il etait possible d'imprimer un fichier pdf sous ColdFusion ?Et si oui comment ?Pour l'instant j'utilise une methode Problème génération de Pdf avec Coldfusion MX 7 [ par azurtec ] Bonjour,Depuis peu j'ai un petit soucis lors de la génération de documents Pdf dans mon application. En gros, du jour au lendemain, alors que tout fon Coldfusion et SQL express [ par bellamy ] Bonjour,J'ai installé Coldfusion et SQL expressje n'arrive pas à faire la connexion entre les deux,j'ai télécharger les drivers mais je ne sais pas co Install ColdFusion WebSite [ par yosri_gabes ] Satut;S'il vous plait je voudrais savoir s'il y a une solution pour créer une interface (wizard) permettant l'installetion de mon site ColdFusion.En e Cases à cocher dynamiques [ par smathios ] Bonjour,j'ai besoin de construire la page suivante : - formulaire avec nom/prénom/etc... d'un enfant que l'on veut inscrire à plusieurs activités.- li SOAP coldfusion CFHTTP [ par teeez ] bonjour à toutes et à tous !! Je dois lancer une requête SOAP (exécuter une fonction sur le serveur distant en lui passant des paramètres et récupérer


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

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



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.