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

Entrée/Sortie Java Discussion :

Ajouter une image au fichier.docx utilisant POI


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut Ajouter une image au fichier.docx utilisant POI
    Bonjour,
    mon pblm est que l'image ne s'affiche pas dans mon fichier, voici mon code :
    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
       private static void WordDocx(String filename,InputStream inn) throws IOException, InvalidFormatException {
         XWPFDocument document = new XWPFDocument();
           XWPFParagraph tmpParagraph = document.createParagraph();
            XWPFRun tmpRun = tmpParagraph.createRun();
             tmpRun.setText("Image!");
              tmpRun.setFontSize(18);
               int i=XWPFDocument.PICTURE_TYPE_PNG;
               document.addPicture(inn,i);
         document.write(new FileOutputStream(new File(filename + ".docx")));  // throw new UnsupportedOperationException("Not yet implemented");
        }
    public static void main(String[]args) throws UnsupportedEncodingException, FileNotFoundException, IOException, InvalidFormatException  {
     File fi=new File("C:/Users/developpeur/Documents/test.png");
        FileImageInputStream fis = new FileImageInputStream(fi) ;
        int taille = (int)fi.length() * 8 ;
        byte[] bb = new byte[taille];
        fis.read(bb);
     
     
        InputStream inn = new ByteArrayInputStream(bb) ;
        inn.read();
     WordDocx("C:/Users/developpeur/Documents/testt",inn);
    }
    le fichier est créer mais l’image s’affiche pas Aidez-moi SVP
    merci d'avance

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 098
    Par défaut
    Elle te sert a quoi cette ligne ? (a mon avis il faut pas faire ainsi)

    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut
    Bonjour ,
    Voici une méthode que j'ai trouvé sur internet et ca marche très bien, il faut juste télécharger la lib docx4j et pour inn.read() effectivement est en plus
    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
    56
    57
    58
    59
    60
    61
    public static org.docx4j.wml.P newImage( WordprocessingMLPackage wordMLPackage,
            byte[] bytes,
            String filenameHint, String altText,
            int id1, int id2, long cx) throws Exception {
            BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage, bytes);
            Inline inline = imagePart.createImageInline(filenameHint, altText,id1, id2, cx,false);
            // Now add the inline in w:p/w:r/w:drawing
            org.docx4j.wml.ObjectFactory factory = new org.docx4j.wml.ObjectFactory();
            org.docx4j.wml.P  p = factory.createP();
            org.docx4j.wml.R  run = factory.createR();
            p.getContent().add(run);
            org.docx4j.wml.Drawing drawing = factory.createDrawing();
            run.getContent().add(drawing);
            drawing.getAnchorOrInline().add(inline);
            return p;
    }
     
    public static void main (String [] args){
    WordprocessingMLPackage wordMLPackage = null;
                    try {
                        wordMLPackage = WordprocessingMLPackage.createPackage();
                    } catch (InvalidFormatException ex) {
                        Logger.getLogger(ModifierCourrier.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    java.io.InputStream is = null;
                    try {
                        is = new java.io.FileInputStream(s);
                    } catch (FileNotFoundException ex) {
                        Logger.getLogger(ModifierCourrier.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    //commons-io.jar
                    byte[] bytes = null;
                    try {
                        bytes = IOUtils.toByteArray(is);
                    } catch (IOException ex) {
                        Logger.getLogger(ModifierCourrier.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    String filenameHint = null;
                    String altText = null;
                    int id1 = 0;
                    int id2 = 1;
                    org.docx4j.wml.P p = null;
                    try {
                        p = newImage(wordMLPackage, bytes, filenameHint, altText, id1, id2, 9000);
                    } catch (Exception ex) {
                        Logger.getLogger(ModifierCourrier.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    // Now add our p to the document
                    wordMLPackage.getMainDocumentPart().addObject(p);
                    try {
                        wordMLPackage.save(new java.io.File("C:/GestionCourrier/"+textField1.getText()+".docx"));
                    } catch (Docx4JException ex) {
                        Logger.getLogger(ModifierCourrier.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    try {
                        is.close(); //   System.out.println(s.toString());
     
                    } catch (IOException ex) {
                        Logger.getLogger(ModifierCourrier.class.getName()).log(Level.SEVERE, null, ex);
                    }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment ajouter une image dans une balise div ??
    Par liv dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/05/2006, 11h48
  2. comment ajouter une image dans mon HTML??
    Par Mickey.jet dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/03/2006, 15h12
  3. [SQL Server] Ajouter une image
    Par lepiou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/01/2006, 09h10
  4. [JPanel] ajouter une image
    Par Michel38 dans le forum Agents de placement/Fenêtres
    Réponses: 14
    Dernier message: 27/06/2005, 16h28
  5. [C#] ajouter une image dynamiquement
    Par h_imane dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2004, 11h27

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