Imprimer automatiquement un PDF généré dans l'output d'une servlet
Nous une application web en struts1 avec de la génération de PDF en utilisant itextpdf.
Un click sur un botton génère un PDF de ticket de caisse via itextpdf et l'affiche dans le browser. Le code est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
public ActionForward printReceipt(final ActionMapping mapping,
final ActionForm form, final HttpServletRequest request,
final HttpServletResponse response) throws Exception {
final OutputStream out = response.getOutputStream();
final Document doc = new Document();
final PdfWriter docWriter = PdfWriter.getInstance(doc, out);
doc.open();
final PdfContentByte cb = docWriter.getDirectContent();
cb.beginText();
// .. write all required data in the pdf
doc.close();
docWriter.close();
out.flush();
out.close();
return mapping.findForward(null);
} |
Coté client le code javascript qui déclenche l'action struts est:
Code:
1 2 3 4 5 6 7
|
function printReceipt(var1)
{
document.forms[1].factureId.value = var1;
document.forms[1].dispatch.value = "printReceipt";
document.forms[1].submit();
} |
Le but est d'imprimer directement le ticket sans affichage dans le borwser et sans que le caissier puisse télécharger le PDF pour éviter qu'il imprime deux fois. Avez vous des idées?