View previous topic :: View next topic |
Author |
Message |
ACKET
Joined: 10 Jun 2015 Posts: 12
|
(Separately) Posted: Thu Jun 11, 2015 09:49 Post subject: Объединение файлов WORD скриптом/макросом |
|
|
Обыскал все анналы паутины и, честно говоря, нашёл очень мало информации по этой теме.
Существует возможность средствами самого WORD склеивать несколько файлов, но у меня задача стоит о склейке более 2000 2х страничных документов, а в WORDe есть ограничение - объединяется только 114 файлов, где оно снимается не понятно. Стал искать другие средства, одно из которых скрипт внутри самого ворда:
Code: | Sub MergeDocs()
Dim rng As Range
Dim MainDoc As Document
Dim strFile As String
'(Change the path where your documents are residing)
Const strFolder = "d:\temp\27\Print\"
Set MainDoc = Documents.Add
'(Change file extension to .docx incase you are dealing with Word 20xx version)
strFile = Dir$(strFolder & "*.doc")
Do Until strFile = ""
Set rng = MainDoc.Range
rng.Collapse wdCollapseEnd
rng.InsertFile strFolder & strFile
strFile = Dir$()
Loop
End Sub |
При этом, в ворде, всё работает, но портится структура документов - из двухстраничных получаются растянутые на 4 страницы... Подозреваю, что то же самое можно выполнить не запуская приложение, а выполняя скрипт из TotalCommander, но сам в этом не силён, был бы благодарен за оказанную помощь! |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jun 12, 2015 11:31 Post subject: |
|
|
Можно, конечно, попробовать, но боюсь убить кучу времени на отладку. Для 2003 ещё можно ковырнуть, но вот дальше...
А так можно ещё платничек попробовать:
Code: | TOTALCMD#BAR#DATA
"%ProgramFiles%\MS Word Merge Tool\wordmerge.exe"
-o "%TOut.docx" -f %P%S -i
%ProgramFiles%\MS Word Merge Tool\wordmerge.exe
Склеить выделенные файлы Word в docx-получатель другой панели |
C этим:
Code: | TOTALCMD#BAR#DATA
"%ProgramFiles%\Okdo Word Merger Command Line\wordmerger.exe"
-list=%L -dest="%TOut.docx" -insertbreak"
cryptui.dll,8
Склеить выделенные файлы Word (doc(x), rtf) в docx-получатель другой панели
1 |
Есть ещё гуишные (1, 2 (после покупки по просьбе могут выслать консольную), 3).
Тут код на C# предлагается. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Моторокер
Joined: 06 May 2005 Posts: 1517 Location: г. Пермь (читается Перьмь)
|
(Separately) Posted: Fri Jun 12, 2015 20:12 Post subject: |
|
|
Если всё есть родное в программе, внешний инструмент вряд ли сделает лучше.
Возможно, у файлов разные параметры страницы или раздела. Возможно, поможет вставка разрыва раздела. Но это уже не Тотал. _________________ плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jun 12, 2015 20:33 Post subject: |
|
|
Внешние программы также работают с объектной моделью MS Word, поэтому сделать это лучше, чем простенький макрос, они как раз таки в состоянии. Иначе смысл было их платными делать? Не говоря уже о вышесказанном внутреннем ограничении.
К сведению, вставка разрыва в обеих кнопках задействована. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
ACKET
Joined: 10 Jun 2015 Posts: 12
|
(Separately) Posted: Fri Jun 12, 2015 20:51 Post subject: |
|
|
Платный сам по себе клеит правильно, без нарушения структуры, но в коммандере работать не хочет в указанном виде, пишет файл не найден... Вставка разрыва в платной это -k
Last edited by ACKET on Fri Jun 12, 2015 20:58; edited 1 time in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jun 12, 2015 20:58 Post subject: |
|
|
ACKET
А как насчёт начать с того, что речь о первом из предложенных вариантов?
-k - это сохранение исходного форматирования, за разрыв отвечает -i.
Файл не найден пишет ТС или утилита?
Ага, вижу. Так коды кнопки вставляются копипастом, а не вручную, отсюда и ошибки. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
ACKET
Joined: 10 Jun 2015 Posts: 12
|
(Separately) Posted: Fri Jun 12, 2015 21:02 Post subject: |
|
|
сорри, конечно i просто мне и k актуально тоже. Пути указаны верно, всё одно ругается |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jun 12, 2015 21:04 Post subject: |
|
|
Я же не зря про копипаст пишу и вижу ошибку невооружённым глазом.
Между %P и %S никакого пробела в моём коде нет. Да и не лишним было бы использовать именно %T вместо d:\temp\27\Print\ дабы соответствовать названию кнопки. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
ACKET
Joined: 10 Jun 2015 Posts: 12
|
(Separately) Posted: Fri Jun 12, 2015 21:11 Post subject: |
|
|
Всё верно, я пробел уже руками вставлял... ни в исходном виде ввёдённом руками, ни в том, что на скрине не хочет выделенные файлы на одной панели перекинуть в суммарный файл на другой
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jun 12, 2015 21:15 Post subject: |
|
|
Повторю вопрос: Flasher wrote: | Файл не найден пишет ТС или утилита? | Если по-русски, то - ТС, а значит, путь таки неверен.
Коды кнопок тут принято вставлять в теге [code], а не скриншотом. Я, например, так не могу разобрать, есть ли в пути в утилите первая кавычка. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
ACKET
Joined: 10 Jun 2015 Posts: 12
|
(Separately) Posted: Fri Jun 12, 2015 21:22 Post subject: |
|
|
файл не найден... по-русски... но путь то верный! и иконку с того же пути из файла программы берёт... может не правильно из переменных пути берёт?
Исправлюсь... Да кавычка есть, просто не входит...
Last edited by ACKET on Fri Jun 12, 2015 21:23; edited 1 time in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jun 12, 2015 21:23 Post subject: |
|
|
Ещё раз см. про кавычку. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
ACKET
Joined: 10 Jun 2015 Posts: 12
|
(Separately) Posted: Fri Jun 12, 2015 21:24 Post subject: |
|
|
да, есть кавычка, просто не видно её... |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jun 12, 2015 21:32 Post subject: |
|
|
Мда, странно. Если оставить в строке команды только wordmerge.exe, то что покажет?
И ещё - сколько файлов выделяется при тестах? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
ACKET
Joined: 10 Jun 2015 Posts: 12
|
(Separately) Posted: Fri Jun 12, 2015 21:46 Post subject: |
|
|
без изменений, с админ правами запуск кнопки сработал, хотя никаких запретов вроде нет...
Один минус - при склеивании берёт номера файлов не по порядку... Я пока не знаю, насколько это важно при конвертовании будет, но лучше бы сохранять последовательность от 0001 к 9999
Last edited by ACKET on Fri Jun 12, 2015 21:54; edited 1 time in total |
|
Back to top |
|
|
|