C'est la première fois que j'utilise la bibliothèque iText 7. Je voudrais envoyer le pdf généré par ma réponse http @Get
sans stocker le fichier sur mon serveur. Je essayé ceci:IText 7 - Comment envoyer des fichiers PDF via une API de repos sans stocker de fichier?
@GET
@Path("/generatePDF")
@Produces({MediaType.APPLICATION_OCTET_STREAM})
public Response generatePDF() {
try {
String text ="This is the text of my pdf";
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(baos));
Document doc = new Document(pdfDoc);
doc.add(new Paragraph(text));
doc.close();
System.err.println("doc closed");
return Response.ok().entity(baos).
header("Content-Disposition",
"attachment; filename=\"mypdf - " + new Date().toString() + ".pdf\"")
.header("Expires", "0")
.header("Cache-Control","must-revalidate, post-check=0, pre-check=0")
.header("Pragma", "public")
.build();
} catch (Exception e) {
e.printStackTrace();
return Response.status(Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
}
}
Mais je suis face à l'erreur suivante:
GRAVE [http-nio-8080-exec-4] org.glassfish.jersey.message.internal.WriterInterceptorExecutor $ TerminalWriterInterceptor.aroundWriteTo MessageBodyWriter introuvable pour le type de média = application/octet-stream, type = classe java.io.ByteArrayOutputStream, genericType = classe java.io.ByteArrayOutputStream.
Avez-vous une idée comment faire? Je n'ai rien trouvé dans la documentation.
Avez-vous essayé d'utiliser 'Response.ok() entité (baos.toByteArray()) ...' au lieu de 'Response.ok () .entité (baos) ... '? – mkl
Plus d'erreur avec ça. Merci beaucoup ! – anais1477