Partage
  • Partager sur Facebook
  • Partager sur Twitter

[itext] Ajouter du contenue dans un PDF

Ajouter JPanel dans le PDF

    18 juillet 2011 à 19:35:32

    Bonsoir à tous,

    Je suis en charge de générer des rapports au format en PDF en java , pour cela j'utilise itext.

    J'ai bien réussi à générer un fichier avec un titre cependant j'aimerais ajouter du contenue au PDF tels que :


    - ajouter le contenue des JPANELS : JPanel opanel
    - ajouter la valeur d'une variable :int nbrIndicators

    Éventuellement afficher la date.

    import java.awt.BorderLayout;
     
    public class Report extends JFrame implements ActionListener{
    	
    	private  JButton oButtonReporting;
    
    	private JFrame fenetre;
    	
    	private final int nbrIndicators="128";
    
    	public Report(){
    		
    		this.InitWibndows();
    		 
    	}
    	
            public static void main(String[] args){
            
                  Report r = new Report() ;
           
            }
    
            public void InitWibndows(){
            	
            	 this.fenetre = new JFrame();
                 
                 //Définit un titre pour votre fenêtre
                 this.fenetre.setTitle("Ma première fenêtre java");
                 //Définit une taille pour celle-ci ; ici, 400 px de large et 500 px de haut
                 this.fenetre.setSize(400, 500);
                 //Nous allons maintenant dire à notre objet de se positionner au centre
                 this.fenetre.setLocationRelativeTo(null);
                 //Terminer le processus lorsqu'on clique sur "Fermer"
                 this.fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                 
                 this.oButtonReporting = new JButton("Lancer le rapport");
                 this.oButtonReporting.addActionListener(
             			new ActionListener() { 
             				@Override
       					public void actionPerformed(ActionEvent e) {
             					Report.this.reportPdf();
             				}
             			}
             		);
                 this.fenetre.getContentPane().setLayout(new BorderLayout(0, 0));
                         
                 this.fenetre.getContentPane().add(this.oButtonReporting, BorderLayout.SOUTH);
                 JPanel oPanel = new JPanel();
                 this.fenetre.getContentPane().add(oPanel, BorderLayout.CENTER);
                 ImageIcon icon = new ImageIcon("images.png");
                 JLabel oLabelImage = new JLabel(icon);
                 oPanel.add(oLabelImage);
                 
                 this.fenetre.setVisible(true);
            	
            }
    		public void reportPdf(){
    			
    			String out = "ReportingSupervision.pdf";
    			Document document = new Document(PageSize.A4);
    			
    			try {
    	            // etape 2:
    	            // creation du writer -> PDF ou HTML 
    	            PdfWriter.getInstance(document, new FileOutputStream(out));
    	                      	
    	            // etape 3: Ouverture du document
    	            document.open();
    	           
    	            // etape 4: Ajout du contenu au document
    	            document.addTitle("Rapport de supervison");
    	            document.addCreationDate();
    	            Paragraph p = new Paragraph("Rapport de supervision");
    	            p.setAlignment(1);
    	            document.add(p);
    	            
    	            
    	        }
    	        catch(DocumentException de) {
    	            System.err.println(de.getMessage());
    	            
    	        }
    	        catch(IOException ioe) {
    	            System.err.println(ioe.getMessage());
    	           
    	        }
    	        // etape 5: Fermeture du document
    	        document.close();
    	      
    	        System.out.println("Document '"+out+"' generated");
    	        JOptionPane.showMessageDialog(this,"PDF Géneré",
    	                " Génération du PDF ",
    	                JOptionPane.WARNING_MESSAGE);
    		}
    
    
    	
    
    		@Override
    		public void actionPerformed(ActionEvent arg0) {
    			// TODO Auto-generated method stub
    			
    		}
    		
    		//public void Export
    		
    
    	
    }
    



    Je ne vois pas quelle méthode ou technique à utiliser.

    Merci d'avance


    D@mien
    • Partager sur Facebook
    • Partager sur Twitter
      19 juillet 2011 à 12:06:47

      Pour le contenu de ton JPanel, crée une image, et ajoute là à ton rapport. Pour une insertion en position absolue par exemple :

      PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(OUT));
      writer.setCompressionLevel(0);
      document.open();
      Image img = monPanelEnImage;
      img.setAbsolutePosition(x,y);
      writer.getDirectContent().addImage(img);
      document.close();
      


      En création de PDF en java, tu peux faire énormément de choses avec itext. Il suffit de potasser un peu les exemples :

      http://itextpdf.com/book/examples.php
      • Partager sur Facebook
      • Partager sur Twitter
        19 juillet 2011 à 14:27:17

        Merci de ton aide ! je vais mettre ça en œuvre au sein du programme

        • Partager sur Facebook
        • Partager sur Twitter

        [itext] Ajouter du contenue dans un PDF

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown