cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patrick Montier" <patr...@montier.com>
Subject RE: RE Question sitemap, redirection flux vers fichier?
Date Fri, 29 Sep 2006 16:19:33 GMT
Merci,

 

J’ai également trouvé ce code sur le forum cet après-midi, je l’ai adapté et
cela fonctionne parfaitement.

 

Je vous remercie de m’avoir répondu

 

Cordialement

Patrick Montier

  _____  

De : Sebastien BARATHIEU [mailto:sebastien.barathieu@urssaf.fr] 
Envoyé : vendredi 29 septembre 2006 18:13
À : users-fr@cocoon.apache.org
Objet : RE Question sitemap, redirection flux vers fichier?

 

Bonjour,

Vous pouvez utiliser ça :

<map:flow language="javascript">
<map:script src="pdf.flow"/>
</map:flow>
<map:match pattern="**.do">
<map:call function="makepdf">
<map:parameter name="folder1" value="{1}"/>
</map:call>
</map:match>
<!-- on transforme en une série de <xi:include 
="cocoon://copy-pdf-xxx.html"/> -->
<map:transform src="dir2include.xsl">
<map:parameter name="folder1" value="{1}"/>
</map:transform>
<!-- on réalise l'inclusion qui par effet de bord va copier les 
sur disque -->
<map:transform type="xinclude"/>
<!-- et on présente joliement la liste des fichiers qui ont été 
énérés -->
<!--<map:transform src="result2html.xsl"/>-->
<!-- terminé! -->

avec un javascript pdf.flow du type:


function makepdf() {
var xml_file;
var pdf_file;
var outstreamPDF;

// the parameter passed to the script from the pipeline. 
// This is the real path to the application context
var folder1 = Packages.java.lang.String(cocoon.parameters["folder1"]); 

try { 
// creating links to files
pdf_file = Packages.java.io.File( folder1 +".pdf");
// xml_file = Packages.java.io.File( "D:/Program Files/Apache Software
Foundation/Tomcat
5.0/webapps/cocoon/ImpressionLiasse/U13010000757_0404151956.xml");

// creating outputstream to dump the results of conversion to the file
outstreamPDF = new Packages.java.io.FileOutputStream( pdf_file );

// calling cocoon pipeline using processPipelineTo() method and dumping the
results to the outputstream
cocoon.processPipelineTo( "/ImpressionLiasse/" + folder1 +".pdf", null,
outstreamPDF );

// do not forget to close the outputstream
outstreamPDF.close();

// since the result is dumped to the filesystem we need to send smth. to the
browser
// to make it happy. So let's send just a usual .txt file with OK message
cocoon.sendPage("yes.txt", null);

} catch( ex ) {
//cocoon.log.error(ex);
// Smth. went wrong. Sending a error.txt file to the browser
cocoon.sendPage("error.txt", null);
} 
}


ne pas oublier les fichiers error.txt et yes.txt pour le controle (simple
fihier .txt avec un texte au choix a à l'intérieur KO / OK par ex)


donc en faisant un requete http se terminant par le fichier xml à imprimer
avec l'extension .do vous rentrez dans le process de serialisation sur le
disque, un fichier resultat est même possible (non implémenté ici). Cette
méthode permet de traiter des flux importants.

A+




Sébastien BARATHIEU 
EDI CFE 
Etudes
CIPAM Marseille

sebastien.barathieu@urssaf.fr

Groupe CFE : 04 91 74.96.12
Personnel : 04.91.74.97.11 
Fax : 04.91.74.97.12 


masquage des détails pour inactif"Montier patrick"
<patrick@montier.com>"Montier patrick" <patrick@montier.com>




"Montier patrick" <patrick@montier.com> 

29/09/2006 09:17 


Veuillez répondre à
users-fr@cocoon.apache.org




A


<users-fr@cocoon.apache.org>




cc






Objet


Question sitemap, redirection flux vers fichier?

 







Bonjour,



j‘utilise fo2pdf pour créer des pdf à la volée. Ca marche très bien mais je
souhaiterais rediriger le flux, non pas à l’écran (ouverture du PDF dans le
navigateur) mais directement l’enregistrer dans un fichier sur le serveur.



Voici ma config sitemap : 



<map:match pattern="asp*/*/protected/cv.pdf">

       <!-- first validate whether user has logged in -->

       <map:act type="session-validator">

         <map:parameter name="descriptor"
value="context://monsite/descriptors/params.xml"/>

         <map:parameter name="validate" value="id_rus"/>

         <!-- generate protected content -->

         <map:aggregate element="page">

           <map:part src="cocoon:/asp{../1}/{../2}/FE00061.inc"
strip-root="true"/>

          <map:part
src="cocoon:/asp{../1}/{../2}/FE00061/protected/FEnavbar.inc"
element="navbar" strip-root="true"/>

        </map:aggregate>

         <map:transform src="stylesheets/{../2}/FE00061_fo.xsl">

         </map:transform>

         <map:serialize type="fo2pdf"/>

       </map:act>

       <!-- something was wrong, redirect to login page -->

       <map:redirect-to uri="../FE00051.htm"/>

     </map:match>



Est il possible de le faire directement via cocoon ou faut il que je passe
par une fonction java spécifique?



En vous remerciant

Patrick




Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message