Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Word сохранить документ как из командной строки / 25 сообщений из 35, страница 1 из 2
25.07.2011, 16:20
    #37366002
ALex_hha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
Есть ли возможность переконвертировать doc документ в другой формат, например, RFT или Web Page filtered?

Как то так

> word.exe doc1.doc doc1.html

Чтобы не открывать каждый раз word и выполнять одни и те же действия

Office 2003, если это принципиально
...
Рейтинг: 0 / 0
25.07.2011, 17:37
    #37366209
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
можно написать VB-скрипт, который будет это делать
Но ворд будет открываться (пусть и невидимый)
...
Рейтинг: 0 / 0
25.07.2011, 17:43
    #37366224
ALex_hha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
Мне все равно, а как будет выглядеть сам скрипт? В документации msdn нашел только формат wdFormatHTML, а мне нужен Filtered.
...
Рейтинг: 0 / 0
25.07.2011, 18:00
    #37366265
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
ALex_hha, на запись поставьте, сохранить как и читайте, а папку и цикл по количеству файлов думаю знаете как сделать
...
Рейтинг: 0 / 0
25.07.2011, 18:01
    #37366268
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
не увидел, что такое Filtered, а RFT можно
...
Рейтинг: 0 / 0
25.07.2011, 18:15
    #37366300
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
ALex_hhaа как будет выглядеть сам скрипт?
ALex_hhaнапример, RFT

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Dim WA, WD, Args
Set Args = WScript.Arguments
Set WA = CreateObject("Word.Application")
Set WD = WA.Documents.Open(Args( 0 ))
WD.SaveAs Args( 1 ),  6 
WD.Close
Set WD = Nothing
WA.Quit
Set WA = Nothing
...
Рейтинг: 0 / 0
25.07.2011, 18:29
    #37366327
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
В приведенный код по хорошему нужно добавлять проверки наличия аргументов командной строки, проверка существования файла, обработка ошибок ну и т.п.
Вызов:
Код: plaintext
conv.vbs V:\we.doc V:\we.rtf
...
Рейтинг: 0 / 0
25.07.2011, 19:26
    #37366411
ALex_hha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
авторне увидел, что такое Filtered, а RFT можно
см вложение
...
Рейтинг: 0 / 0
25.07.2011, 19:40
    #37366428
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
ALex_hha, да понял, просто оперирую рускими названиями, вот в ухо врезалось
...
Рейтинг: 0 / 0
25.07.2011, 19:54
    #37366442
ALex_hha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
авторВ приведенный код по хорошему нужно добавлять проверки наличия аргументов командной строки, проверка существования файла, обработка ошибок ну и т.п.
скрипт для личного пользования, так что не критично. А что такое 6 в

WD.SaveAs Args(1), 6

?
...
Рейтинг: 0 / 0
25.07.2011, 19:59
    #37366450
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
wdFormatRTF
...
Рейтинг: 0 / 0
25.07.2011, 20:03
    #37366459
ALex_hha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
А где или как можно узнать порядковые номера всех форматов?
...
Рейтинг: 0 / 0
25.07.2011, 20:13
    #37366466
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
1) Запустить Ворд
2) Alt-F11
3) F2
4) wdSaveFormat<Enter>
...
Рейтинг: 0 / 0
25.07.2011, 20:15
    #37366468
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
ALex_hha,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
Option Explicit
'Option - Вариант
'Explicit - Явный

Sub FIO()

'сохранить в папке все документы (.rtf) как веб-страницы, с расширением .mht
'сохранить в папке все документы (.rtf) как веб страница и папка с рисунками, с расширением .htm
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
  
  'если нужна конкретная папка, тогда блок выше убираем, вместо него: sDir = "L:\Мир Эксель"
  
  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)
    'сохранить в папке все документы (.rtf) как веб-страницы, с расширением .mht
    oDoc.SaveAs VBA.Mid$(sFileName,  1 , InStrRev(sFileName, ".")) & "mht", wdFormatWebArchive, AddToRecentFiles:=False
    'сохранить в папке все документы (.rtf) как веб страница и папка с рисунками, с расширением .htm
    oDoc.SaveAs VBA.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
...
Рейтинг: 0 / 0
26.07.2011, 11:26
    #37367007
ALex_hha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
автор1) Запустить Ворд
2) Alt-F11
3) F2
4) wdSaveFormat<Enter>
Спасибо большое, вот то, что мне нужно wdFormatFilteredHTML = 10

Еще вопрос. При конвертации некоторых документов появляются такие диалоговые окна (см атач). Их как то надо обрабатывать в скрипте?
...
Рейтинг: 0 / 0
26.07.2011, 11:27
    #37367009
ALex_hha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
И вот такое иногда бывает


З.Ы.
IE4 это Windows 95 что ли?
...
Рейтинг: 0 / 0
26.07.2011, 13:03
    #37367227
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
Попробуй WA.DisplayAlerts=0
...
Рейтинг: 0 / 0
27.07.2011, 14:06
    #37368893
ALex_hha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
В итоге написал такой скрипт

doc2html.vbs
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Dim WA, WD, outputDir, inputDir, Args, outputFileName

Set Args = WScript.Arguments
Set oWordApp = CreateObject("Word.Application")

Set oShell = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")

oShell.CurrentDirectory = oFSO.GetParentFolderName(Wscript.ScriptFullName)

inputDir = oShell.CurrentDirectory & "\DOC\"
outputDir = oShell.CurrentDirectory & "\HTML\"

for each currFile in oFSO.GetFolder(inputDir).Files
	Set oWordDocs = oWordApp.Documents.Open(currFile.Path)
	outputFileName = outputDir & Left(currFile.ShortName, Len(currFile.ShortName)- 4 ) & ".html"
	oWordDocs.SaveAs outputFileName,  10 
	oWordDocs.Close
	Set WD = Nothing
Next

oWordApp.Quit
Set WA = Nothing

Входные данные берет из папки DOC, все выходные файлы сохраняет в папку HTML

З.Ы.
скрипт вываливался с ошибкой - "Не возможно запустить конвертор mswrd632.wpc". После установки http://support.microsoft.com/kb/973904 ошибка пропала. Хотя на системе стоит SP3 и все доступные апдейты.
...
Рейтинг: 0 / 0
27.07.2011, 14:12
    #37368904
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
Код: plaintext
Set WA = Nothing
...
Рейтинг: 0 / 0
27.07.2011, 14:22
    #37368913
ALex_hha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
Да то очепятка, в скрипте конечно

Set oWordApp = Nothing

Единственное что не понравилось, имя входного файла - 1. Розмноження організмів. Основні поняття генетики. Методи генетичних досліджень.doc , а в папке HTML получил - 5B9B8~1.html

Или это из-за использования currFile.ShortName?
...
Рейтинг: 0 / 0
27.07.2011, 14:29
    #37368929
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
ALex_hhaИли это из-за использования currFile.ShortName? разумеется
...
Рейтинг: 0 / 0
27.07.2011, 14:31
    #37368938
ALex_hha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
Действительно, заменил на

outputFileName = outputDir & Left(currFile.Name, Len(currFile.Name)-4) & ".html"

и все работает как надо, всем спасибо за помощь.

Может кому пригодится выкладываю финальный рабочий вариант

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Dim WA, WD, outputDir, inputDir, Args, outputFileName, convertedFiles

Set Args = WScript.Arguments
Set oWordApp = CreateObject("Word.Application")

Set oShell = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")

oShell.CurrentDirectory = oFSO.GetParentFolderName(Wscript.ScriptFullName)

inputDir = oShell.CurrentDirectory & "\DOC\"
outputDir = oShell.CurrentDirectory & "\HTML\"

convertedFiles =  0 
for each currFile in oFSO.GetFolder(inputDir).Files
	Set oWordDocs = oWordApp.Documents.Open(currFile.Path)
	outputFileName = outputDir & Left(currFile.Name, Len(currFile.Name)- 4 ) & ".html"
	oWordDocs.SaveAs outputFileName,  10 
	oWordDocs.Close
	Set oWordDocs = Nothing
	convertedFiles = convertedFiles +  1 
Next

MsgBox "Конвертация успешна завершена. Сохранено " & convertedFiles & " файлов"

oWordApp.Quit
Set oWordApp = Nothing
...
Рейтинг: 0 / 0
27.07.2011, 15:57
    #37369149
ALex_hha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
...
Рейтинг: 0 / 0
27.07.2011, 16:24
    #37369247
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
ALex_hhaFinal Release :D
http://wiki.sys-adm.org.ua/doc/scripts
хи
а говорил
ALex_hhaавторВ приведенный код по хорошему нужно добавлять проверки наличия аргументов командной строки, проверка существования файла, обработка ошибок ну и т.п.
скрипт для личного пользования, так что не критично.
...
Рейтинг: 0 / 0
27.07.2011, 20:28
    #37369707
ALex_hha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Word сохранить документ как из командной строки
Ну решил облагородить так сказать :D
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Word сохранить документ как из командной строки / 25 сообщений из 35, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]