PDA

Показать полную графическую версию : doc в docx


Страниц : 1 [2]

Sisin
06-06-2017, 11:18
Можно. Опишите, что на что, по каким принципам изменять. »

Автор - Пупкин
ключевые слова - Пусто
название - Пусто

Iska
12-06-2017, 06:55
Что-то коллеги молчат, я думал они и продолжат…

Добавьте в начало скрипта:
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

Iska
12-05-2018, 01:11
То есть для работы способа требуется 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, на любой машине открыл и работай

Спасибо.

Iska
12-05-2018, 08:34
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

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

Спасибо.

Iska
12-05-2018, 11:41
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?

Iska
12-05-2018, 23:42
SharkyEXE, теоретически, конечно, может и есть, хотя внутренний формат .doc/.xls & etc проприентарен и вроде как никогда не открывался для широкой публики. Я не интересовался данным вопросом специально.

Для прямой конвертации был выпущено средство (но пакет обеспечения совместимости там нужен ;)), посмотрите эту недавнюю тему: [решено] Пакетная конвертация doc в docx (http://forum.oszone.net/thread-334267.html).

SharkyEXE
12-05-2018, 23:46
Iska

Здравствуйте.

То есть можно толкьо установить пакет обеспечения совместимости, не устанавливая сам офис, поулченные файлы после установки пакета обеспечения совместимости забросить на флешку, удалить пакет обеспечения совместимости, чего-то запустить и будет конвертироваться ( благодаря файлам на флешке) или как?

Тогда и получается портативная версия, все файлы на флешке

Спасибо.

Iska
12-05-2018, 23:59
не устанавливая сам офис, »
А вот не знаю. Возможно. Не пробовал. Там сказано только, что пакет обеспечения совместимости требуется устанавливать, даже если у Вас уже есть установленный Office 2007 :). И ещё один пакет понадобится.

или как? »
Боюсь, что будет именно или как. Впрочем, повторюсь: не знаю — сам не пользовал и не проверял.

А зачем флешка, портативная версия? Разве нельзя сие сделать просто по сети?!

SharkyEXE
13-05-2018, 00:03
Iska

А что плохого-то в задумке, что на флешке будет россыпь файлов, пусть даже на флешке будету становлен офис, зато на любом компьютере можно будет получить нужынй формат файла при помощи конвертации

А компьютер сам будет чистым, весь хлам на флешке, благо флешки есть сейчас шустрые

Iska
13-05-2018, 00:39
Я не про то. Я про: «Сеть придумана для того, чтобы не бегать с дискетами»™ ;).




© OSzone.net 2001-2012