Рабочий стол > DL Руководство пользователя > ... > Установка задач > MS Word DOC to DL HTML > Просмотр
MS Word DOC to DL HTML Войти | Зарегистрироваться   Просмотр версии для печати текущей страницы.

Добавлено Вадим Копиченко, последний раз изменено Вадим Копиченко Nov 17, 2015  (просмотр изменений)
Метки: 
(нет)

Скрипт для автоматизированного конвертирования документов MS Word в html файлы для загрузки на DL в качестве условий задач.
Все name.doc файлы в текущем каталоге будут превращены в name\task.htm с правильными ссылками на картинки в подпапке webfiles.

createHtmlFromWord.vbs
Option Explicit
 
'declare all variables
Dim objWord
Dim oDoc
Dim fso
Dim colFiles
Dim curFile
Dim curFileName
Dim folderToScan
Dim folderToSave
Dim subfolderToSave
Dim fileToSave
Dim folderToScanExists
Dim folderToSaveExists
Dim objFolderToScan

'set some of the variables
folderToScanExists = False
folderToSaveExists = False
Const wdSaveFormat = 10 'for Filtered HTML output
 
Set fso = CreateObject("Scripting.FileSystemObject")
 
'**********************************
'change the following to fit your system
folderToScan = fso.GetAbsolutePathName(".") & "\"
folderToSave = fso.GetAbsolutePathName(".") & "\"
'**********************************
 
'Use FSO to see if the folders to read from
'and write to both exist.
'If they do, then set both flags to TRUE,
'and proceed with the function
If fso.FolderExists(folderToScan) Then
  folderToScanExists = True
Else
  Wscript.Echo "Folder to scan from does not exist!"
End If
If fso.FolderExists(folderToSave) Then
  folderToSaveExists = True
Else
  Wscript.Echo "Folder to copy to does not exist!"
End If
 
If (True Or folderToScanExists And folderToSaveExists) Then
  'get your folder to scan
  Set objFolderToScan = fso.GetFolder(folderToScan)
  'put al the files under it in a collection
  Set colFiles = objFolderToScan.Files
  'create an instance of Word
  Set objWord = CreateObject("Word.Application")
  If objWord Is Nothing Then
    Wscript.Echo "Couldn't start Word."
  Else
    'for each file
    For Each curFile in colFiles
      'only if the file is of type DOC
      If (fso.GetExtensionName(curFile) = "doc" Or (fso.GetExtensionName(curFile) = "docx")) Then
        'get the filename without extension
        curFileName = curFile.Name
        curFileName = Mid(curFileName, 1, InStrRev(curFileName, ".") - 1)
        subfolderToSave = folderToSave & "\" & curFileName
        fso.CreateFolder subfolderToSave
        'open the file inside Word
        objWord.Documents.Open fso.GetAbsolutePathName(curFile)
        'do all this in the background
        objWord.Visible = False
        'create a new document and save it as Filtered HTML
        fileToSave = subfolderToSave & "\webfiles.htm"
        Set oDoc = objWord.ActiveDocument
        oDoc.SaveAs fileToSave, wdSaveFormat
        oDoc.Close
        Set oDoc = Nothing
        fso.MoveFile fileToSave, subfolderToSave & "\task.htm"
      End If
    Next
  End If
  'close Word
  objWord.Quit
  'set all objects and collections to nothing
  Set objWord = Nothing
  Set colFiles = Nothing
  Set objFolderToScan = Nothing
End If
 
Set fso = Nothing

Просто так можно запускать по вводу. А для отладки и сообщений об ошибках так:

run.cmd
cscript //D //X createHtmlFromWord.vbs

Творчески содрано отсюда: http://www.evagoras.com/2011/02/10/exporting-word-files-to-html/.
Там же проиллюстрированы настройки для правильного сохранения вручную.

Для правильной работы скрипта должна быть снята птичка "Меню/Сервис/Параметры/Общие/Параметры веб-документа.../Файлы/По возможности использовать длинные имена файлов".
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: http://www.atlassian.com/software/confluence Build:#2.6.1 916) - Ошибка/новая особенность - Свяжитесь с Администраторами