Bonjour,
Je n'arrive pas à mettre une image en filigrane dans un document que je génère (document présentement assez simple ma foi), bien qu'ayant (du moins pour ce que j'en pense) suivi les instructions sur quelques autres discussions du forum.
Le pdf se génère bien, c'est juste que je n'ai pas l'image en filigrane (bien que la taille du pdf - 21ko dans le dernier exemple au lieu de 1ko si je mets la partie pdfWriter.setPageEvent(...) en commentaire - semble indiquer le contraire).
L'affectation du PdfPageEventHelper se fait dans le main(String[]) en innerclass (ce n'est pas beau, mais bon, il s'agit d'un test ...)
Si quelqu'un a une idée de pourquoi ça ne marche pas et de la résolution à y apporter, je suis preneur !
Merci d'avance,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 package monentreprise.monproduit; import java.io.FileOutputStream; import java.io.OutputStream; import com.lowagie.text.Document; import com.lowagie.text.Image; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.Rectangle; import com.lowagie.text.pdf.PdfPCell; import com.lowagie.text.pdf.PdfPTable; import com.lowagie.text.pdf.PdfPageEventHelper; import com.lowagie.text.pdf.PdfWriter; public class TestGeneration2 { public static void main(String[] args) { OutputStream output = null ; Document document = null; try { Rectangle pageSize = PageSize.A4.rotate() ; String outputPath = "[chemin du pdf]" ; output = new FileOutputStream(outputPath, false) ; document = new Document() ; PdfWriter pdfWriter = PdfWriter.getInstance(document, output); pdfWriter.setPageEvent( new PdfPageEventHelper(){ public void onCloseDocument(PdfWriter writer, Document document) { try { Image watermark = Image.getInstance("[chemin de l'image]"); watermark.setAbsolutePosition(200, 200) ; writer.getDirectContentUnder().addImage(watermark); } catch(Exception e) { e.printStackTrace(System.err) ; } } }); document.setPageSize(pageSize) ; document.open(); document.setMargins(42.5f, 42.519684f, 28.346457f, 28.346457f) ; PdfPTable table = new PdfPTable(new float[]{1}) ; table.setWidthPercentage(100); table.addCell(new PdfPCell(new Paragraph("pouet"))) ; table.setSplitLate(false); table.setExtendLastRow(false); document.add(table); } catch(Exception e) { e.printStackTrace(System.err) ; } finally { if(document != null) { try{document.close() ;} catch(Exception ignore){} } if(output != null) { try{output.close();} catch(Exception ignore){} } } } }
Partager