Je souhaite créer un objet PdfWriter et définir des événements pour l'en-tête et le pied de page. Le problème est que cela fonctionne si je crée un nouveau PDF. Mais mon problème est que j'ai déjà un PDF dans Output Stream. Veuillez trouver mon exemple de code ci-dessous.PdfWriter et événements
Document document = new Document();
try {
// step 2:
FileInputStream is = new FileInputStream("D://2.pdf");
int nRead;
byte[] data = new byte[16384];
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
while ((nRead = is.read(data, 0, data.length)) != -1) {
buffer.write(data, 0, nRead);
}
buffer.flush();
PdfWriter writer = PdfWriter.getInstance(document,buffer);
writer.setViewerPreferences(PdfWriter.PageLayoutTwoColumnLeft);
writer.setPageEvent(new DossierPortalUtil());
document.setMargins(36, 36, 54, 72);
// step 3:
document.open();
document.add(new Chunk("testing"));
} catch (Exception de) {
de.printStackTrace();
}
finally{
document.close();
}
Si je commente la ligne
document.add(new Chunk("testing"));
-je obtenir une exception
Exception dans le thread "principal" ExceptionConverter: java.io.IOException: Le document n'a pas de pages.
Sans commenter il n'y a aucune exception mais il n'ajoute pas l'en-tête et le pied de page. Tous les indices sont très appréciés.
Cordialement, Tina
enter code here
Merci Mark. Je l'ai fait fonctionner. Mais maintenant, le problème auquel je suis confronté est - Il n'écrit pas l'en-tête. Bien que je fasse un getOverContent un getUnderContent, puis ajouter des tables, mais en quelque sorte l'en-tête n'est pas écrit. Des suggestions là-bas? –