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

API standards et tierces Java Discussion :

Convertir .doc en .docx avec Java


Sujet :

API standards et tierces Java

  1. #1
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 122
    Points : 327
    Points
    327
    Par défaut Convertir .doc en .docx avec Java
    Bonjour, j'ai un peti probleme!

    Mon vrai but est de convertir un "doc en PDF"! Au fait j'ai déja reussi à convertir un "docx en PDF" alor je demande un code qui fait la conversion de "doc vers docx" pour ensuite faire un "docx vers Pdf"!

    j'ai déja utiliser POI mai les probles c'est POI ne garde pas les mises en formes, les images, les tableaux, .... Bref, POI ne copie que le "Texte brute"

    J'envoi mes deux codes ci-dessous:

    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
     
    // Conversion .doc to pdf by file
        public void convertDocToPDF(File wordFile, File pdfFile) { 
            Document document = new Document();
             try {
     
                 HWPFDocument doc = new HWPFDocument(new POIFSFileSystem(new FileInputStream(wordFile)));  
                 WordExtractor we = new WordExtractor(doc);  
     
                 OutputStream file = new FileOutputStream(pdfFile); 
     
                 PdfWriter writer = PdfWriter.getInstance(document, file);  
     
                 Range range = doc.getRange();
                 document.open();  
                 writer.setPageEmpty(true);  
                 document.newPage();  
                 writer.setPageEmpty(true);  
     
                 String[] paragraphs = we.getParagraphText();  
                 for (int i = 0; i < paragraphs.length; i++) {  
                     org.apache.poi.hwpf.usermodel.Paragraph pr = range.getParagraph(i);
                     paragraphs[i] = paragraphs[i].replaceAll("\\cM?\r?\n", ""); 
                     document.add(new Paragraph(paragraphs[i]));  
                 } 
             } catch (Exception e) {  
                 e.printStackTrace();  
             } finally { 
                 document.close();  
             }  
         }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
        public  void ConvertDocxBigToPDF( InputStream is , OutputStream out){
            try{            
                Options o = Options.getFrom( DocumentKind.DOCX ).to( ConverterTypeTo.PDF ).via( ConverterTypeVia.ITEXT );
                XWPF2PDFViaITextConverter.getInstance().convert( is, out, o );
            }
            catch ( Exception e ) {
                e.printStackTrace();
            }
        }

    Remarques: Ces deux codes marchent bien, le seul probleme c'est que la premiere code ne converti que les textes brutes de mon document en entré!
    J'evite JODConverter à cause de l'obligation d'installer OpenOffice (je travaille en multi-plateforme)

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Je ne connais que openoffice avec JODconverter comme moyen fiable de réaliser cela (format text -> pdf) quel que soit le document d'origine. Tous les autres système sont limités à certaines circonstance. Il faut savoir que pour imprimer un document ou le convertir en pdf, c'est une énorme boulot, puisque, mise à part l'interface, ca reviens à coder un éditeur de texte complet!

    L'api que tu utilise (xdocreport) utilise itext en arrière plan, en convertissant une série de balise docx / odf en appel vers des équivalent itext. Mais c'est juste un équivalent, on fait au mieux, mais c'est par parfait. La preuve, ci joint un docx complexe convertis par xdocreport. C'est imbuvable. Les zones de textes sont décalées, l'image n'est pas au bon endroit, les cases on disparu. Et là le document est vide. Je te dis pas le massacre quand les parties avec nom, prénom, adresse etc on été remplies
    Images attachées Images attachées  

  3. #3
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 122
    Points : 327
    Points
    327
    Par défaut
    Merci Tchize!

    Encore une petite précision:
    -mon envie de creer cette fonction est de faire un aperçu de toutes sortes de documents sur le navigateur (tous les navigateurs), c'est un systeme GED
    -afficher un fichier Office (Word, Excel, PPT, ...) devient un fastidieux tache, c'est pourquoi j'ai opté pour la conversion en PDF

    Donc, quiconque qui aurait une solution pour afficher ces types de document serait remercier d'avance!

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Pour dire les choses simplement:

    même google documents n'y arrive pas toujours

  5. #5
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonsoir tchize_,

    Juste pour clarifier les choses avec le converteur docx->pdf de XDocReport; son but n'est pas de convertir n'importe quel docx complexe (par exemple qui contiendrait des dessins) mais de pouvoir convertir des docx "classique" (lettre de relances, factures, etc) en pdf qu'on utilise pour génerer des rapports dans une application Java.

    Nous savons que nos converteurs sont perfectibles, mais nous tentons au mieux d'améliorer nos converteurs de versions en version. Pour cela il ne faut pas hésiter à créer une issue sur https://code.google.com/p/xdocreport/issues/list avec le docx attaché en expliquant les problèmes.

    Nous avons aussi une demo en ligne sur http://xdocreport-converter.opensagres.cloudbees.net/ pour tester les converters.

    Angelo

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par azerr Voir le message
    Bonsoir tchize_,

    Juste pour clarifier les choses avec le converteur docx->pdf de XDocReport; son but n'est pas de convertir n'importe quel docx complexe (par exemple qui contiendrait des dessins) mais de pouvoir convertir des docx "classique" (lettre de relances, factures, etc) en pdf qu'on utilise pour génerer des rapports dans une application Java.
    Oui, c'est bien ce que je voulais mettre en évidence, d'ailleurs les limitations sont clairement indiquées sur le site de xdocreport. Et pour la petit histoire, même libre office perd des plumes (mais moins) sur le docx en question

  7. #7
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Ce qui serait sympa, c'est que tu créés une issue avec ton docx qui pose problème et j'essaierai de regarder comment on peut améliorer la conversion.

    Merci!

    Angelo

  8. #8
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 122
    Points : 327
    Points
    327
    Par défaut
    Autre que JODConverter (notre chef de projet n'accepte pas celà), esq'il y a un solution pour les autres (.xlsx, .xls, .ppt, .pptx)

    Pour doc et docx, ils sont déja satisfait

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    google documents?

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par azerr Voir le message
    Ce qui serait sympa, c'est que tu créés une issue avec ton docx qui pose problème et j'essaierai de regarder comment on peut améliorer la conversion.

    Merci!

    Angelo
    Si ça peux vous aider, fait
    http://code.google.com/p/xdocreport/...&ts=1383218820

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/06/2014, 16h52
  2. [OpenOffice][Texte] Convertir doc en pdf avec oowriter
    Par Sango64 dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 10/03/2011, 11h29
  3. Convertir .doc en pdf avec java
    Par Dikokm dans le forum Général Java
    Réponses: 5
    Dernier message: 10/03/2010, 17h48
  4. Réponses: 3
    Dernier message: 27/01/2004, 16h15

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