begin process at 2010 09 03 08:33:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ColdFusion

 > 

Divers

 > 

Divers

 > 

Exportation PDF avec contraintes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Exportation PDF avec contraintes

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

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales