IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Documents Java Discussion :

[iText]background & mise en page


Sujet :

Documents Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 40
    Par défaut [iText]background & mise en page
    Bonjour,
    je suis en train de générer des pdf avec itext jusque là pas de probleme ca marche nickel par contre maintenant je vais attaquer un peu la mise en forme.
    J'aimerai en gros pourvoir mettre un background (image) mais j'ai pas trouvé dans les exemples du site d'itext.

    merci d'avance
    john

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Billets dans le blog
    2
    Par défaut Watermark
    Citation Envoyé par joneil
    J'aimerai en gros pourvoir mettre un background (image) mais j'ai pas trouvé dans les exemples du site d'itext.
    Si vous générez un fichier PDF nouveau (from scratch): il faut utiliser un 'page event'; il y a un exemple dans le tutoriel, cherchez 'PageNumbersWatermark'.
    Il you une autre exemple dans le livre: WatermarkExample.
    Les deux exemples ajoutent aussi le nombre de pages. Il suffit de réducer l'exemple pour ajouter des Images et rien d'autre.
    Il est important de ne pas oublier 2 chose importantes:
    - ajoutez le watermark dans la méthode onEndPage utilisant getDirectContentUnder. Si vous ajoutez l'image dans onStartPage, vous pouvez avoir des problèmes avec la dernière page du document; si vous utilisez getDirectContent, l'Image va couvrir le contenu du document.
    - créez l'Image dans le constructeur de l'event ou dans onOpenDocument. Si vous créez une image dans la méthode onEndPage, le même byte[] de l'Image va être ajouté plusieurs fois; si vous suivez mon avis, le byte[] va être présent dans le fichier qu'une fois (même si l'image est visible sur chaque page).

    N'utilisez pas la classe Watermark! Cette class va disparaître dans le prochain release.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 40
    Par défaut
    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
    public void generer(ArrayList mesImages){
    		System.out.println("je genere");
    		Image jpg;
    		try{
     
     
    			PdfWriter.getInstance(document, new FileOutputStream(nom+".pdf"));
    			document.open();
    			document.add(new Paragraph("Audit du date"));
     
    			Iterator i = mesImages.iterator();
    			while(i.hasNext()){
     
    				String image = (String)i.next()+".png";
    				System.out.println("image :"+image);
    				jpg = Image.getInstance(image);
    				document.add(jpg);
    			}
    			document.close();
    		}
    		catch(Exception e){
    			e.printStackTrace();
    		}
     
    	}


    Voici ma fonction générer qui se contente de mettre des images sur le pdf.

    Par contre je n'ai pas vraiment compris ce que tu me proposes..

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par joneil
    Voici ma fonction générer qui se contente de mettre des images sur le pdf.
    Mais ça ne fait rien que d'ajouter les images au document 1 par 1?

    Citation Envoyé par joneil
    Par contre je n'ai pas vraiment compris ce que tu me proposes.
    Ce que je propose, est d'ajouter la même image à chaque page de ton fichier PDF; l'image sers de 'Watermark' qui va en dessous le contenu ajouté au document avec document.add().

    Si ce n'est pas ce que vous cherchez, je suis désolé; j'ai dû mal comprendre la question.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 40
    Par défaut
    si c'est exactement ce que je veux. mais je comprend pas la maniere de faire.
    Dans le code que tu me propose je lui pas l'adresse de mon image mais ca marche po il m'affiche une image ayant aucun rapport.

    Pour le code que j'ai donné c'est juste ma maniere de générer mon doc. Les images sont des images générés c pas en rapport avec ce que je cherche a faire. Ca aurait pu etre du texte ou autre chose . C'est mon contenu.

    Je cherche bien a mettre un background

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par joneil
    Je cherche bien a mettre un background
    OK, le background, souvent on appelle ça un 'watermark' (filigrane), parce que c'est une image (ou du text) qui est ajouté:
    - à chaque page
    - en-dessous le contenu normal

    Le contenu normal est ajouté avec document.add():

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // step 1
    Document document = new Document();
    // step 2
    PdfWriter writer = PdfWriter.getInstance(document, os);
    // IMPORTANT!!!
    Image monImage = Image.getInstance("watermark.jpg");
    writer.setPageEvent(new MonPageEvent(monImage, x, y));
    // step 3
    document.open();
    // step 4
    document.add(new Paragraph("Hello World"));
    ...
    // step 5
    document.close();
    Ceci est très simple, c'est ce que vous faites déjà maintenant. Vous ajoutez du contenu, et vous ne vous préoccupez pas de la pagination; quand la page est remplie, une nouvelle page commence automatiquement.
    A ce point, iText regarde si vous avez défini un page event. Un page event vous donne l'occasion d'écrire des méthodes complémentaires qui s'exécutent à des moment spécifiques. Par example: onEndPage s'exécute chaque fois qu'une page est remplie.

    Ceci est un exemple d'une implémentation d'un page event:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class MonPageEvent extends PdfPageEventHelper {
     
      protected Image watermark;
     
      public MonPageEvent(Image image, x, y) {
        this.watermark = image;
        this.watermark.setAbsolutePosition(x, y);
      }
     
      public void onPageEvent(PdfWriter writer, PdfDocument document) {
        writer.getDirectContentUnder().addImage(watermark);
      }
    }
    Chaque fois que la page est remplie, un 'watermark' est ajouté. N'oubliez pas de passer ce page event au writer avec setPageEvent.

    Je ne sais pas pourquoi ma première réponse n'était pas claire, mais j'éspère que c'est plus clair maintenant.

Discussions similaires

  1. [Itext] - Mise en page dans un footer
    Par anaon dans le forum Documents
    Réponses: 0
    Dernier message: 06/04/2010, 11h06
  2. [iText] Images/mise en page
    Par -aulau- dans le forum Documents
    Réponses: 12
    Dernier message: 02/04/2010, 10h39
  3. [itext] [columText] probleme de mise en page
    Par Ogtraba dans le forum Documents
    Réponses: 7
    Dernier message: 31/05/2009, 00h51
  4. Itext problèmes mise en page
    Par snetechen dans le forum Documents
    Réponses: 2
    Dernier message: 02/05/2007, 10h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo