Запустите любое приложение LibreOffice или OpenOffice. Далее выбелите пункт меню Сервис->Макросы->Управление макросами->LibreOffice Basic... (или Сервис->Макросы->Управление макросами->OpenOffice Basic...):

В открывшемся окне встаньте на Мои макросы->Standart->Module1 (или создайте новый "Модуль", если первый уже занят) и нажмите кнопку "Редактировать"

В открывшемся окне...
...вставьте следующий код:
REM ***** BASIC *****
Sub Main
End Sub
' Сохранить документ в формате OpenOffice.
Sub SaveAsOOO( cFile )
cURL = ConvertToURL( cFile )
oDoc = StarDesktop.loadComponentFromURL( cURL, "_blank", 0, _
Array(MakePropertyValue( "Hidden", True ),))
' Расширение нового файла выбирается на основании расширения
' исходного файла, переведённого в нижний регистр.
Select Case LCase(Right(cFile,4))
Case ".ppt" ' PowerPoint file.
cFileExt = ".odp"
Case "pptx" ' PowerPoint file.
cFileExt = "odp"
Case ".doc" ' Word file.
cFileExt = ".odt"
Case "docx" ' Word file.
cFileExt = "odt"
Case ".xls" ' Excel file.
cFileExt = ".ods"
Case "xlsx" ' Excel file.
cFileExt = "ods"
Case Else
cFileExt = ".odf"
End Select
cFile = Left( cFile, Len( cFile ) - 4 ) + cFileExt
cURL = ConvertToURL( cFile )
oDoc.storeAsURL( cURL, Array() )
oDoc.close( True )
End Sub
Sub ConvertWordToPDF(cFile)
cURL = ConvertToURL(cFile)
oDoc = StarDesktop.loadComponentFromURL(cURL, "_blank", 0,
Array(MakePropertyValue("Hidden", True), ))
cFile = Left(cFile, Len(cFile) - 4) + ".pdf"
cURL = ConvertToURL(cFile)
oDoc.storeToURL(cURL, Array(MakePropertyValue("FilterName", "writer_pdf_Export"), ))
oDoc.close(True)
End Sub
Function MakePropertyValue( Optional cName As String, Optional uValue )
As com.sun.star.beans.PropertyValue
Dim oPropertyValue As New com.sun.star.beans.PropertyValue
If Not IsMissing( cName ) Then
oPropertyValue.Name = cName
EndIf
If Not IsMissing( uValue ) Then
oPropertyValue.Value = uValue
EndIf
MakePropertyValue() = oPropertyValue
End Function
Для запуска сделайте файл, например с именем soffice-msf2odf.bat, содержащий следующие строки:
set OooExe="C:\Program Files\LibreOffice 3\program\soffice"
for %%i in (*.doc) do %OOOExe% -invisible macro:///Standard.Module1.SaveAsOOO("%%~fi")
for %%i in (*.xls) do %OOOExe% -invisible macro:///Standard.Module1.SaveAsOOO("%%~fi")
for %%i in (*.ppt) do %OOOExe% -invisible macro:///Standard.Module1.SaveAsOOO("%%~fi")
Красным цветом отмечен путь, который может меняться в зависимости от установленного свободного Офиса и пути его установки. Проверьте путь, по которому установлен Ваш свободный Офис.
Положите файл в папку с документами Microsoft Office и запустите его - рядом создадутся файлы свободного формата ODF.
Файлы:
macros.code в кодировке koi8-R
macros.code в кодировке UTF-8
macros.code в кодировке windows-1251
soffice-msf2odf.bat
