cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sebastien BARATHIEU <sebastien.barath...@urssaf.fr>
Subject RE Question sitemap, redirection flux vers fichier?
Date Fri, 29 Sep 2006 16:13:10 GMT
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             |   sebastien.barathieu@urssaf.fr  |
|              | EDI CFE                         |                                  |
|              | Etudes                          | Groupe CFE :  04 91 74.96.12     |
|              | CIPAM Marseille                 | Personnel : 04.91.74.97.11       |
|              |                                 | Fax : 04.91.74.97.12             |
|--------------+---------------------------------+----------------------------------|





                                                                           
             "Montier patrick"                                             
             <patrick@montier.                                             
             com>                                                        A 
                                       <users-fr@cocoon.apache.org>        
             29/09/2006 09:17                                           cc 
                                                                           
                                                                     Objet 
             Veuillez répondre         Question sitemap, redirection flux  
                     à                 vers fichier?                       
             users-fr@cocoon.a                                             
                 pache.org                                                 
                                                                           
                                                                           
                                                                           
                                                                           




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/related (inline, None, 0 bytes)
View raw message