You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-fr@cocoon.apache.org by Montier patrick <pa...@montier.com> on 2006/09/29 09:17:00 UTC

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


RE: RE Question sitemap, redirection flux vers fichier?

Posted by Patrick Montier <pa...@montier.com>.
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"
<pa...@montier.com>"Montier patrick" <pa...@montier.com>




"Montier patrick" <pa...@montier.com> 

29/09/2006 09:17 


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




A


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




RE Question sitemap, redirection flux vers fichier?

Posted by Sebastien BARATHIEU <se...@urssaf.fr>.
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 
                                       <us...@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