Je souhaite afficher le flux d'un pdf généré via iText, depuis le serveur.
Si j'ai bien des données dans ce flux, j'affiche le pdf dans une nouvelle popup, si je n'ai pas de données correcte ou une erreur, j'affiche un message sur la page en cours (Edition.jsp)

Fichier Edition.jsp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
<s:form id="pdf" action="ExportPdf" theme="simple" >  
   ...
    <sj:menu name="typeEdition" cssClass="edition" list="listeEditions" />
</s:form>
struts.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<action name="ExportPdf" class="ExportPdfAction">
   <result name="success" type="stream">
       <param name="inputName">inputStreamPdf</param> 
       <param name="contentType">application/pdf</param> 
       <param name="contentDisposition">filename="myFile.pdf"</param> 
       <param name="bufferSize">2048</param>
    </result>
    <result name="error">/WEB-INF/web/Edition.jsp</result>          
</action>
javascript, lors du click sur l'item menu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
//  click sur l'item du menu 
$('.edition').bind('click', function(event, data) {
    $('#pdf').submit();       
}); 
 
$('#pdf').submit(function(event) {
    // stop le submit normal
    event.preventDefault();
 
    // post avec les paramètres
    var posting = $.post( $( this ).attr( 'action' ), $('#pdf').serialize());
 
    // attend le résultat
    posting.done(function( data, event ) {
    if (data.substring(0,4) != '%PDF') {
       alert ("error");         
    } else {
       // le format pdf est reconnu mais pas affiché (le stream est dans l'url, mais pas dans le contenu)
       window.open('data:application/pdf,'+ data, 'pageEdition', 'menubar=no, height=600, width=900' );
    }   
});
Donc, je reçoi des données dans data (%PDF-1.4..) mais impossible d'afficher le pdf correctement.
Une solution ?
Merci