Afficher le pdf dans le navigateur en utilisant un service de repos
Je suis de la génération d'un pdf avec japser rapports et je voudrais créer un service web REST qui sera de retour ce pdf et de les afficher dans le navigateur. J'ai déjà essayé le code affiché ici:
Services web REST méthode pour afficher les fichiers pdf dans le navigateur
Mais de cette manière, le fichier pdf est téléchargé. Je préfère être affiché dans le navigateur en premier et ensuite si l'utilisateur le veut, il peut le télécharger plus tard.
(désolé pour le double question, mais comme vous pouvez le voir la question ci-dessus n'a pas été répondu... )
EDIT:
De travail RESTE le Code de Service:
@GET
@Path("/pdf")
@Produces("application/pdf")
public javax.ws.rs.core.Response getPdf() throws Exception
{
File file = new File("E:\\tmp\\test.pdf");
FileInputStream fileInputStream = new FileInputStream(file);
javax.ws.rs.core.Response.ResponseBuilder responseBuilder = javax.ws.rs.core.Response.ok((Object) fileInputStream);
responseBuilder.type("application/pdf");
responseBuilder.header("Content-Disposition", "filename=test.pdf");
return responseBuilder.build();
}
source d'informationauteur jenny
Vous devez vous connecter pour publier un commentaire.
changer
à
À l'aide de InputStream d'abord, nous pouvons charger le fichier dans inputstream, puis passer à IOUtils.copier et utiliser ce
response.header("Content-Disposition", "attachment; filename=restfile.pdf")
pour téléchargerutilisez ce pour la prévisualisationresponse.setHeader("Content-disposition", " filename=" + output)
Type de retour de la méthode est " ResponseEntity
Vous pouvez facilement le faire avec JasperReportsViewResolver.
En supposant que vous avez de la source de données définie, créer un bean définition comme ceci:
Vos rapports seront en savoir
/reports/
répertoire et vos rapports allons commencer avec le préfixerpt_
. Ainsi, dansreports
dossier, vous devrez mettre votreJRXML
fichiers.Et votre demande méthode de cartographie de l'ressemblera à ceci c'est à dire:
Vous pouvez vous menace votre rapport comme juste un autre point de vue. Le fichier sera ouvert dans un nouvel onglet avec la possibilité de le télécharger, de l'imprimer, etc.
Suivant l'exemple de @Branislav Lazic, la façon que j'ai trouvée est de
@Autowired
laJasperReportsViewResolver
dans votre rapport de contrôleur:Et de substitution (ou mise à jour) le headder biens
"Content-Disposition"
. Par exemple:Je ne sais pas si c'est la meilleure façon, mais fonctionne très bien pour moi.