Скрипт для печати документов Word

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Batya писал(а):А разве это не читабельно?
Я к тому, что если ты напишешь это в одну строку, то, по мне, менее читабельным это выглядеть не будет.
Batya писал(а):List это глобальный массив файлов, и начитываю я его в процедуре проверки входных параметров.
Вызываешь-то ты её единожды.
Batya писал(а):не представляю себе ситуации, когда список документов для печати в Word может быть такого размера, что это будет сказываться на памяти.
Да я сам чаще так списки обрабатываю. Просто отметил сей факт.
Batya писал(а):Не понял. Можно подробнее?
Выше разбирали случай, где за неимением ошибок на печать ничего не выводилось.
Batya писал(а):У меня это указывается стандартным способом - с помощью квадратных скобок.
Ясно. Я предпочитаю указывать. Далеко не все в этом смыслят.
Batya писал(а):Просто скрипт для единичной печати - это мой служебный скрипт ...
Это было понятно, отметил только то, что меня в первом варианте смущало, а в новом уже нет.
Batya писал(а):Не вижу смысла всё сваливать в одну кучу. Если у тебя есть желание, сделай.
Печать офисных документов - это не сваливание в кучу, а оптимизация. Модель-то разная, но во многом методы и свойства сходятся, поэтому подлатать - не большая проблема. Сделаю.
Batya писал(а):В принципе, пример же НЕ является некорректным?
Не знаю, не пробовал, не на чем проверить.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Flasher писал(а):Вызываешь-то ты её единожды.
Странный аргумент. Я считаю, что даже единичный вызов кода, имеющего некую чётко выраженную смысловую связку, лучше вынести в отдельную процедуру\функцию.
Flasher писал(а):Выше разбирали случай, где за неимением ошибок на печать ничего не выводилось.
Насколько я понял, там проблемы были не со скриптом печати, а с правильным (с точки зрения указания параметров) вызовом скрипта печати из скрипта массового запуска. В любом случае, поскольку точно не была локализована проблема, то и обобщить это некой проверкой реальности печати нет возможности.

Ответ на всё остальное - "Дело вкуса".
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Batya писал(а):Странный аргумент. Я считаю, что даже единичный вызов кода, имеющего некую чётко выраженную смысловую связку, лучше вынести в отдельную процедуру\функцию.
Было бы интересно узнать, почему безусловный вывод такого кода в процедуру в твоём видении странным не считается. Чисто для визуального отделения? Это можно из без процедуры сделать. Обычно при единичном вызове функцию/процедуру задействуют исключительно в показательных целях, но всяко не в целях оптимизации кода.
Рекомендации, когда на практике часть кода отделяют в процедуры, в разных справочных источниках приблизительно аналогичны, и связаны они в основном с повторными вызовами в коде либо какими-то рекурсивными методами.

Попытаемся осмыслить потенциальную проблему с печатью:
видим файлы в очереди, но они не печатаются, например, из-за некорректной передачи свойств функции, скажем, если в параметре указан неверный диапазон страниц. Нечто в этой области.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Flasher писал(а):Было бы интересно узнать, почему безусловный вывод такого кода в процедуру в твоём видении странным не считается.
Я никому не навязываю своей точки зрения, но мне так удобнее по нескольким причинам:
1. Чем более объёмным является скрипт, тем более структурированным он должен быть.
2. Вынесение кода в отдельную процедуру позволяет мне проще модифицировать этот скрипт, например, для создания на его основе скрипта с другим функционалом.
3. И, наконец, вынесение кода в отдельную процедуру позволяет не заморачиваться с отдельной обработкой ошибок, а самому их генерить при необходимости (Err.Raise). Мне это кажется весьма удобным.
Flasher писал(а):Попытаемся осмыслить потенциальную проблему с печатью:
видим файлы в очереди, но они не печатаются
Я не умею работать с очередью печати. Если добавишь в мой скрипт подобную функциональность, буду рад.
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

1. Не знал, что процедура как-то влияет на структурированность.
2. Это как раз ближе к показательности. Но как правило в таких процедурах есть аргументы (т.е. не как в обсуждаемой подпрограмме).
3. Т.е. вне процедуры этот код бы не сработал?:

Код: Выделить всё

  Do Until objW.BackgroundPrintingStatus = 0 
    'Если ожидаем уже больше заданного лимита, выходим с ошибкой 
    If (Timer - StartTime) > TimeLimit Then Err.Raise vbObjectError + 4, Mess(0), Mess(4) 
    'Пауза 0.1 сек. 
    WScript.Sleep 100 
  Loop 
Batya писал(а):Я не умею работать с очередью печати.
Необязательно работать с очередью, достаточно проверять правильность введённых параметров.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
ACKET
Сообщения: 12
Зарегистрирован: Ср июн 10, 2015 08:18

использование скрипта печати в TC

Сообщение ACKET »

Люди добрые, подскажите, как Ваши скрипты для печати документов использовать в тотал-коммандере?
ACKET
Сообщения: 12
Зарегистрирован: Ср июн 10, 2015 08:18

Сообщение ACKET »

Спасибо, не увидел ссылку на памятку. Вообще супер - скрипт самое то, что надо! Работает без открытия окна ворда, печатает файлы по выделению. Ещё раз спасибо!

Добавлено спустя 2 часа 13 минут:

А как прописать, чтобы при окончании печати (в случае удачной печати) отпечатанный файл автоматически удалялся?
ACKET
Сообщения: 12
Зарегистрирован: Ср июн 10, 2015 08:18

Сообщение ACKET »

Сам догадался :)
Loop
'Закрываем документ
Doc.Close(False)
FSO.DeleteFile(pFile)
Set Doc = Nothing
End Sub[/i]
Ответить