Рейтинг  

Яндекс.Метрика
Яндекс цитирования
 

   

Статистика  

Пользователи
7
Материалы
576
Кол-во просмотров материалов
2737574
   


Запустите любое приложение 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

 

   
   

Login Form