Dmitry9000
Участник
- Сообщения
- 2
- Реакции
- 0
Ответ: Штрих-код в Corel. Нужен совет.
В кореле делаем небольшие тиражи ~1000шт
пользуемся простеньким макросом:
Коррекная работа возможна при выполнении следующих условий:
-все ШК вынесены в отдельный слой.
-все остальные слои заблокированы от изменений ("no editable" в докере "Object Manager")
-поскольку макрос имитирует ввод с клавиатуры, отключите ВСЕ приложения, поскольку перевод фокуса даже на сообщение принтера о начале печати собьет макрос с цикла
- установите на принтере "отложить печать" (по той же причине)
- перед запуском макроса настройте все параметры печати (макрос использует настройки Корела) после того как сформируются все задания - начнете печать.
- перед запуском макроса настройте все параметры в Bar Code Vizard (тип ШК, габариты и т.п.) макрос их будет использовать по умолчанию.
- перед запуском макроса выделите (1 один!!!) первый ШК (макрос работает с выделенным объектом)
- во время работы макроса комп лучше "оставить в покое" - не забывайте макрос иммитирут нажатие клавиш, но не проверяет полученный результат, переход в другое "окно" вызовет плачевный результат
В кореле делаем небольшие тиражи ~1000шт
пользуемся простеньким макросом:
Public Count
Sub AutoBarCode()
Count = 4000960# `здесь указываем стартовое значение ШК (в данном примере ЕАН-8)
Do
CorelScript.OLEObjectDoVerb (0) ` вызываем Bar Code Vizard
SendKeys "{DEL}", True `Имитируем ввод данных с клавиатуры
Count = Count + 1
SendKeys Count, True `Имитируем ввод данных с клавиатуры
SendKeys "{ENTER}", True `Имитируем ввод данных с клавиатуры
SendKeys "{ENTER}", True `Имитируем ввод данных с клавиатуры
SendKeys "{ENTER}", True `Имитируем ввод данных с клавиатуры
SendKeys "{TAB}", True ` Переходим к следующему ШК, начало блока
CorelScript.OLEObjectDoVerb (0)
SendKeys "{DEL}", True
Count = Count + 1
SendKeys Count, True
SendKeys "{ENTER}", True
SendKeys "{ENTER}", True
SendKeys "{ENTER}", True `Конец блока. данный блок надо скопировать столько раз сколько у вас ШК на листе минус один.
`В данном примере идет 5 ШК
SendKeys "{TAB}", True
CorelScript.OLEObjectDoVerb (0)
SendKeys "{DEL}", True
Count = Count + 1
SendKeys Count, True
SendKeys "{ENTER}", True
SendKeys "{ENTER}", True
SendKeys "{ENTER}", True
SendKeys "{TAB}", True
CorelScript.OLEObjectDoVerb (0)
SendKeys "{DEL}", True
Count = Count + 1
SendKeys Count, True
SendKeys "{ENTER}", True
SendKeys "{ENTER}", True
SendKeys "{ENTER}", True
SendKeys "{TAB}", True
CorelScript.OLEObjectDoVerb (0)
SendKeys "{DEL}", True
Count = Count + 1
SendKeys Count, True
SendKeys "{ENTER}", True
SendKeys "{ENTER}", True
SendKeys "{ENTER}", True
SendKeys "{TAB}", True
ActiveDocument.PrintOut `отправляем полученный лист на принтер
Loop While MsgBox(Count, vbYesNo, "Done?") = vbYes `Здесь вывод на экран на контроль последнего кода, используется для отладки
`можно вставить Loop While (Count<число последнего ШК+1)
End Sub
Коррекная работа возможна при выполнении следующих условий:
-все ШК вынесены в отдельный слой.
-все остальные слои заблокированы от изменений ("no editable" в докере "Object Manager")
-поскольку макрос имитирует ввод с клавиатуры, отключите ВСЕ приложения, поскольку перевод фокуса даже на сообщение принтера о начале печати собьет макрос с цикла
- установите на принтере "отложить печать" (по той же причине)
- перед запуском макроса настройте все параметры печати (макрос использует настройки Корела) после того как сформируются все задания - начнете печать.
- перед запуском макроса настройте все параметры в Bar Code Vizard (тип ШК, габариты и т.п.) макрос их будет использовать по умолчанию.
- перед запуском макроса выделите (1 один!!!) первый ШК (макрос работает с выделенным объектом)
- во время работы макроса комп лучше "оставить в покое" - не забывайте макрос иммитирут нажатие клавиш, но не проверяет полученный результат, переход в другое "окно" вызовет плачевный результат