Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] пакетная конвертация документов Word в HTML

Ответить
Настройки темы
CMD/BAT - [решено] пакетная конвертация документов Word в HTML

Новый участник


Сообщения: 10
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: romby
Дата: 22-01-2010
в папке все док-ты ворд надо сохранить как веб страницы, ето как сделать через бат.
спасибо

ентот макрос решение кому нада будет (спс админам El Sanchez, и viter.alex админ с форума http://wordexpert.ru/forum/viewforum.php?id=3


Код: Выделить весь код
Sub SaveAllToWeb()
  Dim sDir As String
  Dim sFileName As String
  Dim oDoc As Document
  Dim i As Integer
  
  With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = "Выберите папку"
    If .Show Then sDir = .SelectedItems(1) Else Exit Sub
  End With
  
  Application.ScreenUpdating = False
  sFileName = Dir(sDir & Application.PathSeparator & "*.rtf")
  While Len(sFileName) > 0
    sFileName = sDir & Application.PathSeparator & sFileName
    Set oDoc = Documents.Open(sFileName, False, False, False)
    oDoc.SaveAs Mid(sFileName, 1, InStrRev(sFileName, ".")) & "htm", wdFormatHTML, AddToRecentFiles:=False
    oDoc.Close
    sFileName = Dir
    i = i + 1
    DoEvents
  Wend
  Application.ScreenUpdating = True
  MsgBox "Пересохранение завершено. Сохранено " & i & " файлов."
End Sub

Отправлено: 15:21, 15-01-2010

 

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1274
Благодарности: 1030

Профиль | Отправить PM | Цитировать


romby, если вам макрос, предложенный Vadikan, кажется слишком сложным и так как категория темы CMD/BAT, то предложу макрос попроще и bat-файл:

Макрос:
Код: Выделить весь код
Sub SaveAsHTM()
NewFilename = (Replace(ActiveDocument.FullName, ".rtf", ".htm"))
ActiveDocument.SaveAs FileName:=NewFilename, FileFormat:=wdFormatHTML
Application.Quit
End Sub
bat-файл для Office 2003:
Код: Выделить весь код
@echo off
set "SRC=c:\doc"
for /f "tokens=*" %%a in ('dir /b "%SRC%\*.rtf"') do (
	start /wait /min "" "%ProgramFiles%\Microsoft Office\OFFICE11\WINWORD.EXE" "%SRC%\%%a" /q /mSaveAsHTM
)
bat-файл для Office 2007:
Код: Выделить весь код
@echo off
set "SRC=c:\doc"
for /f "tokens=*" %%a in ('dir /b "%SRC%\*.rtf"') do (
	start /wait /min "" "%ProgramFiles%\Microsoft Office\OFFICE12\WINWORD.EXE" "%SRC%\%%a" /q /mSaveAsHTM
)
P.S. Макрос в Office 2007 не проверял

Последний раз редактировалось El Sanchez, 22-01-2010 в 14:37. Причина: Убрал ключ /f из батника для Office 2007

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:39, 19-01-2010 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 10
Благодарности: 1

Профиль | Отправить PM | Цитировать


ZeLiK, Vadikan, El Sanchez, товарищи админы не пашут у меня енти макросы, и бат тоже не пашет.

ентот макрос создает папку веб страницы, саму страницу не хочет конвертить.
бат открывает документ и зависает, не двигается дальше.

Код: Выделить весь код
Sub SaveAsHTM()
NewFilename = (Replace(ActiveDocument.FullName, ".rtf", ".htm"))
ActiveDocument.SaveAs FileName:=NewFilename, FileFormat:=wdFormatHTML
Application.Quit
End Sub

реально пашет ентот макрос, его посоветовал админ с форума http://wordexpert.ru/forum/viewforum.php?id=3
конвертит документы в формат .mht енто веб страница в одном файле, а как сделать чтобы сохраняла веб страницу с папкой я не знаю (енто в офисе 2007 меню-сохранить как-другие форматы-веб-страница (*.htm, *.html)
Код: Выделить весь код
Sub SaveAllToWeb()
  Dim sDir As String
  Dim sFileName As String
  Dim oDoc As Document
  Dim i As Integer
  
  With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = "Выберите папку"
    If .Show Then sDir = .SelectedItems(1) Else Exit Sub
  End With
  
  Application.ScreenUpdating = False
  sFileName = Dir(sDir & Application.PathSeparator & "*.rtf")
  While Len(sFileName) > 0
    sFileName = sDir & Application.PathSeparator & sFileName
    Set oDoc = Documents.Open(sFileName, False, False, False)
    oDoc.SaveAs Mid(sFileName, 1, InStrRev(sFileName, ".")) & "mht", wdFormatWebArchive, AddToRecentFiles:=False
    oDoc.Close
    sFileName = Dir
    i = i + 1
    DoEvents
  Wend
  Application.ScreenUpdating = True
  MsgBox "Пересохранение завершено. Сохранено " & i & " файлов."
End Sub

Отправлено: 04:35, 22-01-2010 | #12


Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1274
Благодарности: 1030

Профиль | Отправить PM | Цитировать


romby, батник для Office 2007 переделал (убрал ключ /f из параметров запуска winword.exe).
Цитата romby:
конвертит документы в формат .mht енто веб страница в одном файле, а как сделать чтобы сохраняла веб страницу с папкой я не знаю (енто в офисе 2007 меню-сохранить как-другие форматы-веб-страница (*.htm, *.html) »
В строке
Код: Выделить весь код
oDoc.SaveAs Mid(sFileName, 1, InStrRev(sFileName, ".")) & "mht", wdFormatWebArchive, AddToRecentFiles:=False
замените:
mht на htm (расширение будущего файла)
wdFormatWebArchive на wdFormatHTML (константа свойства SaveFormat объекта FileConverter, означающая, что документ будет сохранен как веб-страница)
Список констант можно посмотреть здесь

P.S. Если исходные файлы не формата .rtf, то в строке
Код: Выделить весь код
sFileName = Dir(sDir & Application.PathSeparator & "*.rtf")
*.rtf замените на нужное расширение.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:11, 22-01-2010 | #13


Новый участник


Сообщения: 10
Благодарности: 1

Профиль | Отправить PM | Цитировать


El Sanchez, спасибо товарищ админ, пашет ентот макрос
четко конвертит
Код: Выделить весь код
Sub SaveAllToWeb()
  Dim sDir As String
  Dim sFileName As String
  Dim oDoc As Document
  Dim i As Integer
  
  With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = "Выберите папку"
    If .Show Then sDir = .SelectedItems(1) Else Exit Sub
  End With
  
  Application.ScreenUpdating = False
  sFileName = Dir(sDir & Application.PathSeparator & "*.rtf")
  While Len(sFileName) > 0
    sFileName = sDir & Application.PathSeparator & sFileName
    Set oDoc = Documents.Open(sFileName, False, False, False)
    oDoc.SaveAs Mid(sFileName, 1, InStrRev(sFileName, ".")) & "htm", wdFormatHTML, AddToRecentFiles:=False
    oDoc.Close
    sFileName = Dir
    i = i + 1
    DoEvents
  Wend
  Application.ScreenUpdating = True
  MsgBox "Пересохранение завершено. Сохранено " & i & " файлов."
End Sub
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:35, 22-01-2010 | #14


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата El Sanchez:
@echo off set "SRC=c:\doc" for /f "tokens=*" %%a in ('dir /b "%SRC%\*.rtf"') do ( start /wait /min "" "%ProgramFiles%\Microsoft Office\OFFICE12\WINWORD.EXE" "%SRC%\%%a" /q /mSaveAsHTM »
Огромное спасибо автору! Код работает и для MS Word 2010.

Правда чуток подправил чтобы перебирались файлы и из всех поддиректорий (dir /s /b) и чуть упростил:

Код: Выделить весь код
rem @echo off
set SRC="P:\Geo_Library_v_03_OCR_rtf\temp"

for /f %%a in ('dir /s /b "%SRC%\*.rtf"') do (
start /wait /min "" "C:\Program Files\Microsoft Office\Office14\WINWORD.EXE" "%%a" /q /mSaveAsHTM
)

Отправлено: 09:53, 23-01-2011 | #15


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Цитата El Sanchez:
если вам макрос, предложенный Vadikan, кажется слишком сложным »
Добрый вечер, а если мне макрос, предложенный Vadikan, кажется сложным, но... все же менее сложным чем батник (тут хоть с пятого на десятое понимаю, а там чет вообще китайская грамота), не подскажите как добавить в него перебор всех файлов во всех подпапках?

Отправлено: 19:02, 25-03-2023 | #16



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] пакетная конвертация документов Word в HTML

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Медиа - Как ускорить просмотр больших документов html shaint Microsoft Windows 2000/XP 1 24-09-2009 09:50
[решено] Конвертация видео файлов при помощи видеокарты. Jo-iZo Видеокарты 2 10-07-2009 21:48
[решено] Срочно нужен ваш совет!! Конвертация документа!! March_she Хочу все знать 21 03-10-2008 23:32
Пакетная замена в html-файлах y3ep Программное обеспечение Windows 7 11-06-2004 08:06
Пакетная конвертация или преобразование графических файлов UTU Программное обеспечение Windows 12 09-06-2004 19:55




 
Переход