Показать полную графическую версию : doc в docx
Можно. Опишите, что на что, по каким принципам изменять. »
Автор - Пупкин
ключевые слова - Пусто
название - Пусто
Что-то коллеги молчат, я думал они и продолжат…
Добавьте в начало скрипта:
Const wdPropertyTitle = 1
Const wdPropertyAuthor = 3
Const wdPropertyKeywords = 4
и перед «Call .ActiveDocument.SaveAs2(…)»:
With .ActiveDocument.BuiltInDocumentProperties
.Item(wdPropertyAuthor) = "Пупкин"
.Item(wdPropertyTitle) = ""
.Item(wdPropertyKeywords) = ""
End With
SharkyEXE
11-05-2018, 19:57
Всем здравствуйте.
Ищется способ пакетного конвертирования из docx в doc ( есть много машин, в которых максимум установлен Microsoft Office 2003 )
Желательно максимально класический способ, чем примитивнее, тем лучше - типа последовательно по алфавиту, от А до Я, от A до Z, открывать файлы docx, выбирать Файл -> Сохранить как, выбирается Документ Word 97-2003 (*.doc)
То есть для работы способа требуется Microsoft Office 2010, файлы преобразуются из docx в doc, docx можно удалить, можно оставить ( желательно сделать коммент в скрипте ), после чего файлы doc можно открывать в Microsoft Office 2003
То есть для работы способа требуется Microsoft Office 2010, »
Не обязательно. Как я понимаю, это может быть и Microsoft Office 2003 с установленным пакетом обеспечения совместимости.
Ищется способ пакетного конвертирования из docx в doc ( есть много машин, в которых максимум установлен Microsoft Office 2003 ) »
Так зачем конвертировать? Разверните на машинах с Microsoft Office 2003 тот самый пакет обеспечения совместимости — и работайте.
Подумайте, так ли уж Вам потребно переводить все документы в старый формат?
SharkyEXE
12-05-2018, 06:09
Iska
Здравствуйте.
Да, оочень хочется.
Мне проще локализовать проблему у меня с моими файлами, мои проблемы, чем надеяться, что нет времени у меня ждать и верить, что будут переустанавливать офис с 2003 на 2010, или устанавливать пакет совместимости на офис 2003, а так я всегда уверен - 99,9% у меня ходовых, рабочих файлов в формате doc, на любой машине открыл и работай
Спасибо.
SharkyEXE, ну, как хотите. Вот как-то так, пробуйте (под Microsoft Office 2003 с установленным пакетом обеспечения совместимости, более высокой версии Microsoft Office у меня нет):
Option Explicit
Const wdAlertsNone = 0
Const wdAlertsAll = -1
Const wdFormatDocument = 0
Const ForAppending = 8
Dim strSourceFolder
Dim objFSO
Dim objFile
Dim objTS
Dim objWord
Dim objDocument
Dim lngTotalDocumentsCount
If WScript.Arguments.Count = 1 Then
strSourceFolder = WScript.Arguments.Item(0)
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(strSourceFolder) Then
Set objWord = Nothing
lngTotalDocumentsCount = 0
For Each objFile In objFSO.GetFolder(strSourceFolder).Files
If StrComp(objFSO.GetExtensionName(objFile.Name), "docx", vbTextCompare) = 0 Then
lngTotalDocumentsCount = lngTotalDocumentsCount + 1
If objWord Is Nothing Then
Set objWord = WScript.CreateObject("Word.Application")
objWord.DisplayAlerts = wdAlertsNone
Set objTS = objFSO.OpenTextFile(objFSO.BuildPath(objFSO.GetParentFolderName(WScript.ScriptFullName), "Converting Results.log"), ForAppending, True)
objTS.WriteLine String(79, "=")
objTS.WriteLine Now() & vbTab & "Start scanning source folder [" & strSourceFolder & "]."
End If
objTS.WriteLine Now() & vbTab & objFile.Path
Set objDocument = objWord.Documents.Open(objFile.Path)
objDocument.SaveAs objFSO.BuildPath(objFile.ParentFolder.Path, objFSO.GetBaseName(objFile.Name) & ".doc"), wdFormatDocument
objDocument.Close
End If
Next
If Not objWord Is Nothing Then
objTS.WriteLine Now() & vbTab & "Finish scanning source folder [" & strSourceFolder & "]."
objTS.WriteLine Now() & vbTab & "Total [" & lngTotalDocumentsCount & "] documents found."
objTS.WriteLine String(79, "=")
objTS.WriteLine
objTS.Close
Set objTS = Nothing
objWord.DisplayAlerts = wdAlertsAll
objWord.Quit
Set objWord = Nothing
End If
Else
WScript.Echo "Can't find source folder [" & strSourceFolder & "]."
WScript.Quit 2
End If
Set objFSO = Nothing
Else
WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Source folder>"
WScript.Quit 1
End If
WScript.Quit 0
Рядом со скриптом будет создаваться и дописываться файл Converting Results.log с результатами.
SharkyEXE
12-05-2018, 08:44
Iska
Здравствуйте.
Да тут не то, что мне нечем заняться, просто реально проще мне подстоиться, пару сотен файлов перевести из docx в doc - и мне станет проще.
А как пользоваться, можно инстуркцию, пожалуйста?
У меня установлен Microsoft Office 2010
На рабочем столе при помощи програмы AkelPad создал файл 1.vbs с Вашим кодом тынц (http://forum.oszone.net/post-2813324-26.html) ( кодировка: 1251 (ANSI - кириллица) )
На рабочем столе сделал Файл -> Создать -> Документ Microsoft Word, на рабочем столе появился файл Документ Microsoft Word.docx , внутри файла Документ Microsoft Word.docx на клавиатуре один раз нажата цифра 1, после чего нажато два раза кнопка Enter на клавиатуре
Перетащил файл Документ Microsoft Word.docx на 1.vbs
Итого: https://cloud.mail.ru/public/DVUU/CVr8Hhkx4
Просто мне хочется понять, как Вы задумывали пользоваться, пошагово инстуркция, а не как я извращаюсь в неправильном использовании Вашего труда
Спасибо.
SharkyEXE, приношу Вам свои извинения, запамятовал дописать.
Скрипт работает с целым каталогом, выбирая оттуда только файлы .docx. Путь к каталогу указывается параметром скрипта (также можно просто перетащить папку на скрипт в Проводнике).
У меня установлен Microsoft Office 2010 »
Вот нет у меня большой уверенности, что в этом случае скрипт будет работать как задумывалось. Я писал под Microsoft Office 2003 с установленным пакетом обеспечения совместимости.
Итого: https://cloud.mail.ru/public/DVUU/CVr8Hhkx4 »
Скрипт сообщает, что не смог найти папку с именем «Документ Microsoft Word.docx» :).
SharkyEXE
12-05-2018, 12:10
Iska
Здравствуйте.
Большое Вам спасибо.
Я вот что подумал - а нет самодостаточного, автономного способа, без установленного офиса, без установленного пакета обеспечения совместимости, типа версия без установки в систему, портативная, конвертации из docx в doc, из xlsx в xls?
SharkyEXE, теоретически, конечно, может и есть, хотя внутренний формат .doc/.xls & etc проприентарен и вроде как никогда не открывался для широкой публики. Я не интересовался данным вопросом специально.
Для прямой конвертации был выпущено средство (но пакет обеспечения совместимости там нужен ;)), посмотрите эту недавнюю тему: [решено] Пакетная конвертация doc в docx (http://forum.oszone.net/thread-334267.html).
SharkyEXE
12-05-2018, 23:46
Iska
Здравствуйте.
То есть можно толкьо установить пакет обеспечения совместимости, не устанавливая сам офис, поулченные файлы после установки пакета обеспечения совместимости забросить на флешку, удалить пакет обеспечения совместимости, чего-то запустить и будет конвертироваться ( благодаря файлам на флешке) или как?
Тогда и получается портативная версия, все файлы на флешке
Спасибо.
не устанавливая сам офис, »
А вот не знаю. Возможно. Не пробовал. Там сказано только, что пакет обеспечения совместимости требуется устанавливать, даже если у Вас уже есть установленный Office 2007 :). И ещё один пакет понадобится.
или как? »
Боюсь, что будет именно или как. Впрочем, повторюсь: не знаю — сам не пользовал и не проверял.
А зачем флешка, портативная версия? Разве нельзя сие сделать просто по сети?!
SharkyEXE
13-05-2018, 00:03
Iska
А что плохого-то в задумке, что на флешке будет россыпь файлов, пусть даже на флешке будету становлен офис, зато на любом компьютере можно будет получить нужынй формат файла при помощи конвертации
А компьютер сам будет чистым, весь хлам на флешке, благо флешки есть сейчас шустрые
Я не про то. Я про: «Сеть придумана для того, чтобы не бегать с дискетами»™ ;).
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.