Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Объединение файлов WORD скриптом/макросом
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
ACKET



Joined: 10 Jun 2015
Posts: 12

Post (Separately) Posted: Thu Jun 11, 2015 09:49    Post subject: Объединение файлов WORD скриптом/макросом Reply with quote

Обыскал все анналы паутины и, честно говоря, нашёл очень мало информации по этой теме.
Существует возможность средствами самого 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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 12086
Location: Москва

Post (Separately) Posted: Fri Jun 12, 2015 11:31    Post subject: Reply with quote

Можно, конечно, попробовать, но боюсь убить кучу времени на отладку. Для 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
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1477
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Fri Jun 12, 2015 20:12    Post subject: Reply with quote

Если всё есть родное в программе, внешний инструмент вряд ли сделает лучше.
Возможно, у файлов разные параметры страницы или раздела. Возможно, поможет вставка разрыва раздела. Но это уже не Тотал.
_________________
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 12086
Location: Москва

Post (Separately) Posted: Fri Jun 12, 2015 20:33    Post subject: Reply with quote

Внешние программы также работают с объектной моделью MS Word, поэтому сделать это лучше, чем простенький макрос, они как раз таки в состоянии. Иначе смысл было их платными делать? Не говоря уже о вышесказанном внутреннем ограничении.
К сведению, вставка разрыва в обеих кнопках задействована.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
ACKET



Joined: 10 Jun 2015
Posts: 12

Post (Separately) Posted: Fri Jun 12, 2015 20:51    Post subject: Reply with quote

Платный сам по себе клеит правильно, без нарушения структуры, но в коммандере работать не хочет в указанном виде, пишет файл не найден... Вставка разрыва в платной это -k


Last edited by ACKET on Fri Jun 12, 2015 20:58; edited 1 time in total
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 12086
Location: Москва

Post (Separately) Posted: Fri Jun 12, 2015 20:58    Post subject: Reply with quote

ACKET
А как насчёт начать с того, что речь о первом из предложенных вариантов?
-k - это сохранение исходного форматирования, за разрыв отвечает -i.
Файл не найден пишет ТС или утилита?

Ага, вижу. Так коды кнопки вставляются копипастом, а не вручную, отсюда и ошибки. Wink
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
ACKET



Joined: 10 Jun 2015
Posts: 12

Post (Separately) Posted: Fri Jun 12, 2015 21:02    Post subject: Reply with quote

сорри, конечно i просто мне и k актуально тоже. Пути указаны верно, всё одно ругается
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 12086
Location: Москва

Post (Separately) Posted: Fri Jun 12, 2015 21:04    Post subject: Reply with quote

Я же не зря про копипаст пишу и вижу ошибку невооружённым глазом.
Между %P и %S никакого пробела в моём коде нет. Да и не лишним было бы использовать именно %T вместо d:\temp\27\Print\ дабы соответствовать названию кнопки.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
ACKET



Joined: 10 Jun 2015
Posts: 12

Post (Separately) Posted: Fri Jun 12, 2015 21:11    Post subject: Reply with quote

Всё верно, я пробел уже руками вставлял... ни в исходном виде ввёдённом руками, ни в том, что на скрине не хочет выделенные файлы на одной панели перекинуть в суммарный файл на другой
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 12086
Location: Москва

Post (Separately) Posted: Fri Jun 12, 2015 21:15    Post subject: Reply with quote

Повторю вопрос:
Flasher wrote:
Файл не найден пишет ТС или утилита?
Если по-русски, то - ТС, а значит, путь таки неверен.

Коды кнопок тут принято вставлять в теге [code], а не скриншотом. Я, например, так не могу разобрать, есть ли в пути в утилите первая кавычка.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
ACKET



Joined: 10 Jun 2015
Posts: 12

Post (Separately) Posted: Fri Jun 12, 2015 21:22    Post subject: Reply with quote

файл не найден... по-русски... но путь то верный! и иконку с того же пути из файла программы берёт... может не правильно из переменных пути берёт?
Исправлюсь... Да кавычка есть, просто не входит...


Last edited by ACKET on Fri Jun 12, 2015 21:23; edited 1 time in total
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 12086
Location: Москва

Post (Separately) Posted: Fri Jun 12, 2015 21:23    Post subject: Reply with quote

Ещё раз см. про кавычку.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
ACKET



Joined: 10 Jun 2015
Posts: 12

Post (Separately) Posted: Fri Jun 12, 2015 21:24    Post subject: Reply with quote

да, есть кавычка, просто не видно её...
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 12086
Location: Москва

Post (Separately) Posted: Fri Jun 12, 2015 21:32    Post subject: Reply with quote

Мда, странно. Если оставить в строке команды только wordmerge.exe, то что покажет?
И ещё - сколько файлов выделяется при тестах?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
ACKET



Joined: 10 Jun 2015
Posts: 12

Post (Separately) Posted: Fri Jun 12, 2015 21:46    Post subject: Reply with quote

без изменений, с админ правами запуск кнопки сработал, хотя никаких запретов вроде нет...
Один минус - при склеивании берёт номера файлов не по порядку... Я пока не знаю, насколько это важно при конвертовании будет, но лучше бы сохранять последовательность от 0001 к 9999


Last edited by ACKET on Fri Jun 12, 2015 21:54; edited 1 time in total
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group