2016-10-19 2 views
0

J'ai besoin de convertir doc en docx pour lequel j'utilise JODConveter (OpenOffice), mais malheureusement mon code rompt avec le code d'erreur 2074. Quelqu'un peut-il jeter plus d'informations sur ce que cela errorCode signifie et comment je peux le réparer.conversion de doc à docx en utilisant JODConveter échouer avec errorCode: 2074

Mon code est partagé ci-dessous:

OfficeManager officeManager = 
    new DefaultOfficeManagerConfiguration().setOfficeHome(
    new File("C:\\Program Files (x86)\\OpenOffice4")).buildOfficeManager(); 

officeManager.start(); 

OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager); 

DocumentFormat docx = converter.getFormatRegistry().getFormatByExtension("docx"); 
docx.setStoreProperties(DocumentFamily.TEXT, 
         Collections.singletonMap("FilterName", 
               "MS Word 2007 XML")); 

converter.convert(new File("C:\\localFiles\\abc.doc"), 
        new File("C:\\localFiles\\abc_new.docx")); 

officeManager.stop(); 

Cependant, si je change l'extension de mon dossier attendu de docx en pdf le code ci-dessus fonctionne parfaitement bien.

+0

@Brutal_JL peut vous fournir des entrées? –

Répondre

0

Comme vous êtes apparemment sur Windows, il existe une solution plus stable qui vous donnera également des résultats de conversion avec une bien meilleure fidélité.

Vous devrez installer n'importe quelle version d'Office (2007 ou ultérieure) ou télécharger et installer le pack de compatibilité auprès de Microsoft (si ce n'est déjà fait). Ensuite, vous pouvez convertir .doc .docx à facilement en utilisant la commande suivante:

"C:\Program Files\Microsoft Office\Office12\wordconv.exe" -oice -nme <input file> <output file> 

où fichier d'entrée <> et < fichier de sortie> doivent être des noms de chemin complet.

La commande peut être facilement appliquée à plusieurs documents à l'aide for:

for %F in (*.doc) do "C:\Program Files\Microsoft Office\Office12\wordconv.exe" -oice -nme "%F" "%Fx" 

Ou vous pouvez appeler la commande à partir de Java:

Process p = Runtime.getRuntime().exec(
    new String[] { 
     "C:\Program Files\Microsoft Office\Office12\wordconv.exe", 
     "-oice", 
     "-nme", 
     "C:\\localFiles\\abc.doc", 
     "C:\\localFiles\\abc_new.docx" 
    }); 
int exitVal = p.waitFor(); 
+0

J'ai besoin de convertir doc en docx dans mon code Java car j'ai besoin d'injecter des propriétés personnalisées plus tard en convertissant le docx résultant en un document XWPFDocument. Je ne suis pas sûr si ces commandes, celles que vous avez fournies, peuvent être exécutées à partir du code. –

+0

PS: J'ai Office installé sur ma machine Windows. –