2016-10-19 4 views
0

Мне нужно преобразовать doc в docx, для которого я использую JODConveter (OpenOffice), но, к сожалению, мой код разбивается с кодом ошибки 2074. Может кто-нибудь лучше понять, что это errorCode означает, и как я могу это исправить.doc to docx conversion using JODConveter failing with errorCode: 2074

Мой код разделяется ниже:

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(); 

Однако если изменить расширение моего будущего файла из DOCX в PDF выше код работает прекрасно.

+0

@Brutal_JL вы можете предоставить некоторые материалы? –

ответ

0

Как вы, очевидно, находитесь в Windows, существует более стабильное решение, которое также даст вам результаты конверсии с гораздо лучшей точностью.

Вам необходимо будет установить любую версию Office (2007 или новее) или загрузить и установить пакет совместимости с Microsoft (если это еще не сделано). Теперь вы можете конвертировать из .doc в .docx легко с помощью следующей команды:

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

< где входной файл> и < выходного файла> должны быть полностью квалифицированные имена путей.

Команда может быть легко применен к нескольким документам с использованием for:

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

Или вы можете вызвать команду 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

Мне нужно преобразовать doc в docx в код Java, так как мне нужно добавить пользовательские свойства позже, преобразовывая полученный docx в документ XWPFDocument. Я не уверен, что эти команды, которые вы предоставили, могут быть выполнены из кода. –

+0

PS: У меня установлен Office на моей Windows-машине. –