Приветствую Вас, люди добрые!
Помогите пожалуйста в такой ситуации:
Необходимо с помощью LabView перехватить файл, отправленный на принтер, с целью считать из него определенные данные, занести их в BAR-код, затем добавить этот код (как изображение) к первоначальному файлу-и уже распечатать в таком виде.
Можно ли такое реализовать?
1. Для работы с печатью в ОС Windows использую Print Spooler API-spoolss.dll, подключаю ее к VI с помощью узла Call Library Node, а вот как дальше считать и обработать данные согласно ТЗ - пока не соображу. Большинство принтеров держат данные в формате RAW. Как можно такие данные извлечь и обработать?
2. При печати служба spoolsv.exe сохраняет отправленный на принтер файл с расширением *.spl. Содержимое его можно как-нибудь прочитать внутри VI? Тут возникли затруднения, а посему п.1 кажется более предпочтительным.
Основное затруднение именно с получением и обработкой входных данных. Ибо последующие этапы можно реализовать с помощью IMAQ и Vision Development.
Если есть идеи и/или советы-очень прошу помочь!
Заранее спасибо!
Подключение API Windows: spoolss.dll
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Подключение API Windows: spoolss.dll
Конкретно ничего посоветовать не могу.
Но мне кажется, что нужно делать что-то типа виртуального принтера. Пользователь должен отправлять задание на печать именно в него.
А уже там (в вирт. принтере) делать обработку и после этого отправлять уже на реальный принтер.
p.s. Это не руководство к действию, просто мысли вслух. Но может окажутся полезны.
Но мне кажется, что нужно делать что-то типа виртуального принтера. Пользователь должен отправлять задание на печать именно в него.
А уже там (в вирт. принтере) делать обработку и после этого отправлять уже на реальный принтер.
p.s. Это не руководство к действию, просто мысли вслух. Но может окажутся полезны.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
Cobb
- beginner
- Сообщения: 15
- Зарегистрирован: 29 ноя 2013, 03:33
- Награды: 2
- Версия LabVIEW: 2012
- Контактная информация:
Re: Подключение API Windows: spoolss.dll
Да, была подобная идея.
Если виртуальный принтер еще можно сделать в ОС Windows, то как прикрутить к нему исполняемый модуль на LabView? Так же через API?
Если кто сталкивался с подобными вещами-посодействуйте пож-та
Если виртуальный принтер еще можно сделать в ОС Windows, то как прикрутить к нему исполняемый модуль на LabView? Так же через API?
Если кто сталкивался с подобными вещами-посодействуйте пож-та
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Подключение API Windows: spoolss.dll
В принципе, это реализуемо, есть даже софт, перегоняющий SPL в PDF, TXT, JPG и т.д., например, такой. Однако, мне кажется, этот вариант себя не оправдывает, так как структура принтерных файлов (SPL, EMF, SHD, TMP) зависит от драйвера принтера, версии Windows и вообще мало документирована, плюс может измениться по любому желанию Microsoft. Про эти файлы можно почитать здесь и здесь (в конце страницы есть полезный софт). Думаю, даже реально найти SDK для конвертации файлов принтерного типа в общепринятый формат на лету.Cobb писал(а):2. При печати служба spoolsv.exe сохраняет отправленный на принтер файл с расширением *.spl. Содержимое его можно как-нибудь прочитать внутри VI? Тут возникли затруднения, а посему п.1 кажется более предпочтительным.
А нельзя ли использовать не перехватчик данных, уже отправленных на принтер, а сперва записать/обработать данные в как вам требуется, а потом уже их посылать на печать?
-
Cobb
- beginner
- Сообщения: 15
- Зарегистрирован: 29 ноя 2013, 03:33
- Награды: 2
- Версия LabVIEW: 2012
- Контактная информация:
Re: Подключение API Windows: spoolss.dll
Добрый вечер!
Спасибо за ценную информации и ссылки-уже начал изучать.
А вот идея со SPL to TXT например-очень даже практична. Ибо можно использовать виртуальный принтер, а настраивать его уже под свои нужды. Попробую такой вариант
Спасибо за ценную информации и ссылки-уже начал изучать.
Соль в том, что на принтер отправляются данные из совершенно разного ПО. Не ко всякому софту можно подключиться. Да и номенклатура форматов-тоже широка.А нельзя ли использовать не перехватчик данных, уже отправленных на принтер, а сперва записать/обработать данные в как вам требуется, а потом уже их посылать на печать?
А вот идея со SPL to TXT например-очень даже практична. Ибо можно использовать виртуальный принтер, а настраивать его уже под свои нужды. Попробую такой вариант
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Подключение API Windows: spoolss.dll
Странно то, что для перехвата вы выбрали - среду разработки ПО преимущественно для инженеров. Работать с WinAPI, хуками, сообщениями проще в C/C++. Да и виртуальный принтер в просто так не создать, придется как минимум использовать последовательность CLFN или писать свою библиотеку.
-
Cobb
- beginner
- Сообщения: 15
- Зарегистрирован: 29 ноя 2013, 03:33
- Награды: 2
- Версия LabVIEW: 2012
- Контактная информация:
Re: Подключение API Windows: spoolss.dll
1. C/C++-я основательно подзабыл:(
2. очень удачно интегрируется с последующим ПО в этой технологической цепочке. И не только с ПО, но и с различным оборудованием
3. И с помощью FBD гораздо проще объяснить функционирование системы, чем с помощью простыни текстового кода
2. очень удачно интегрируется с последующим ПО в этой технологической цепочке. И не только с ПО, но и с различным оборудованием
3. И с помощью FBD гораздо проще объяснить функционирование системы, чем с помощью простыни текстового кода
-
Cobb
- beginner
- Сообщения: 15
- Зарегистрирован: 29 ноя 2013, 03:33
- Награды: 2
- Версия LabVIEW: 2012
- Контактная информация:
Re: Подключение API Windows: spoolss.dll
Привет Всем!
Указанную проблему в принципе решил.
Сейчас тестирую
Если все будет успешно-поделюсь наработками...
Указанную проблему в принципе решил.
Сейчас тестирую
Если все будет успешно-поделюсь наработками...
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение