Afficher le flux d'un PDF
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:
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:
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:
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