iText: Wie füge ich ein Hintergrundbild in dasselbe Dokument ein, um es zur Antwort zu leeren

Ich erstelle ein PDF und schreibe den Stream als Antwort. Bevor ich in den Stream schreibe, möchte ich allen Seiten ein Hintergrundbild als Wasserzeichen hinzufügen, damit das durch die Antwort gelöschte PDF-Dokument das letzte mit Wasserzeichen ist.

Hallo, das ist mein Codebeispiel. Jede Hilfe wäre sehr dankbar

private static String generatePDF(HttpServletRequest request, HttpServletResponse   response, String fileName) throws Exception
{
    Document document = null;
    PdfWriter writer = null;
    FileOutputStream fos = null;
    try
    {
       fos = new FileOutputStream(fileName);
       Document document = new Document(PageSize.A4);
       writer = PdfWriter.getInstance(document, fos);
       document.open();

       /**
        * Adding tables and cells and other stuff required
        **/

       return pdfFileName;
  } catch (Exception e) {
       FileUtil.deleteFile(fileName);
       throw e
  } finally {
    if (document != null) {
        document.close();
    }
    fos.flush();
  }
}

Ich möchte jetzt ein Hintergrundbild mit dem folgenden Code hinzufügen und die Ausgabe-PDF in denselben Stream schreiben

PdfReader sourcePDFReader = null;
try
{
   sourcePDFReader = new PdfReader(sourcePdfFileName);
   int noOfPages = sourcePDFReader.getNumberOfPages();
   PdfStamper stamp = new PdfStamper(sourcePDFReader, new FileOutputStream(destPdfFileName));
   int i = 0;
   Image templateImage = Image.getInstance(templateImageFile);
   templateImage.setAbsolutePosition(0, 0);
   PdfContentByte tempalteBytes;
   while (i < noOfPages) {
       i++;
       tempalteBytes = stamp.getUnderContent(i);
       tempalteBytes.addImage(templateImage);
   }
   stamp.close();
   return destPdfFileName;
} catch (Exception ex) {
   LOGGER.log(Level.INFO, "Error when applying tempalte image as watermark");
} finally {
     if (sourcePDFReader != null) {
         sourcePDFReader.close();
     }
}

Antworten auf die Frage(3)

Ihre Antwort auf die Frage