Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
5 / 5 / 1
Регистрация: 05.07.2015
Сообщений: 73

Эмуляция принтера

05.07.2015, 05:12. Показов 3578. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток, не знал куда приспособить пост и сунул сюда, так как более подходящий раздел мной не найден.

Предисловие : создаю станок для изготовления печатных плат, с помощью лазерной литографии в комплекте с фрезой, еще и двух сторонний, ну и в посдестви есть планы присобачить даже печатающую головку для нанесения цветных маркировок.

Проблема:
Практически все САПР для проектирования печатных плат так или иначе позволяют выводить разведенную плату на принтер, и печатать её ...

Мною написан драйвер моего девайса способный работать с *.BMP форматом (в принципе не важно но оказалось что он самый эффективный, да еще и есть ч/б стандарт), в следствии чего я вынужден использовать стороннее ПО чтобы печатать из САПР в BMP а его потом грузить в свой софт, это конечно неправильно и я решил убрать стороннюю прокладку


Задача:
Нужно написать драйвер виртуального принтера...

Вопросы:
Я не когда не занимался этой проблемой, максимум до чего до ходило это вывод на принтер всяких там отчетов и формочек...

1.ткните с чего начать



может есть примерчик у кого а если еще на Билдере ....


p.s. За ранее спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.07.2015, 05:12
Ответы с готовыми решениями:

Эмуляция клавиатуры и мыши
Доброго времени суток! Столкнулся с такой проблемой: нужно эмулировать нажатия клавиш, передвижение мыши в окно (пишу бота для игрушки), я...

Эмуляция ввода символа
#include <iostream> #include <windows.h> using namespace std; int main() // main { system("color A"); cout <<...

Эмуляция нажатия клавиш
здрасте.мне нужно проэмулировать нажатие кнопок мыши и нажатий клавиш в неактивном окне(конкретно в браузере). слышал что можно окно...

22
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
05.07.2015, 09:02
чтобы печатать из САПР в BMP а его потом грузить в свой софт, это конечно неправильно и я решил убрать стороннюю прокладку
Нужно написать драйвер виртуального принтера...
а разве виртуальный принтер - не сторонняя прокладка? Разве ваше ПО не проверяет наличие доступного битмап-файла вследствие последующего экспорта из САПР и само не в состоянии при его появлении на диске проводить самостоятельную загрузку?
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
05.07.2015, 10:31
Цитата Сообщение от Faster Посмотреть сообщение
чтобы печатать из САПР в BMP а его потом грузить в свой софт
А что мешает отрисовать в канвасе а потом сохранить канвас в BMP без стороннего софта? Мало того посмотрите в сторону WMF может оказаться удобнее как для экспорта так и для станка.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
05.07.2015, 15:40
Насколько я понимаю, ТС хочет следующее. Открываем любую программу, умеющую печатать на принтере (коей может быть и САПР), вызываем печать текста на принтере (например, Ctrl+P в браузере). Далее в меню можно выбрать, на котором хотим печатать. Нужно, чтобы в этом меню присутствовал виртуальный принтер, который в реальности отправит данные в драйвер виртуального принтера, внутри которого произойдёт конвертация в *.bmp и отправка данных на собственное устройство. Т.е. чтобы пользователь мог без дополнительной возни сразу из САПР'а отправлять данные на устройство под видом печати на принтер
1
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
05.07.2015, 15:45
Цитата Сообщение от Faster Посмотреть сообщение
может есть примерчик у кого а если еще на Билдере ....
А если на Билдере - то там у TPrinter есть канвас, рисуешь в него аки в TImage и но оно идет на печать. При этом все NewPage() и т.д. работают как обычно. Единственное чего не нашел - как DPI перестаить программно а не из формы настройки принтера.
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
05.07.2015, 17:24
ТС хочет следующее
да это как раз понятно. Печать сразу в виртуальный принтер, который и будет своей программой красиво.

Однако:
без дополнительной возни сразу из САПР'а отправлять данные на устройство
что мешает в его же ПО доделать автоматизированный поиск того же BMP, который экспортирует САПР? Ведь под "дополнительной возней" подразумевается множество действий по ручному открытию в его ПО.

А так, что действия по экспорту, что печати одни и те же. И можно обойтись без написания драйвера.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
05.07.2015, 18:26
Цитата Сообщение от raxp Посмотреть сообщение
то мешает в его же ПО доделать автоматизированный поиск того же BMP, который экспортирует САПР? Ведь под "дополнительной возней" подразумевается множество действий по ручному открытию в его ПО.
Тогда уже решать вопрос кардинально - поставить в станок трубу на андроиде, к ней по USB On-THE-GO подключить саму схему управления, а на трубу отправлять все по Wi-Fi прям в формате сохранения САПРа
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
05.07.2015, 18:37
Труба на андрюше - это железная фича. А вот использование и разбор открытого формата САПР, например поддерживаемого почти всеми DXF удобнее.

Но мы отклонились, возможно именно BMP топик-стартеру удобнее из неизвестных нам соображений.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
05.07.2015, 19:18
Цитата Сообщение от raxp Посмотреть сообщение
Но мы отклонились, возможно именно BMP топик-стартеру удобнее из неизвестных нам соображений.
Ну дык в этом плане вопрос мало понятен. хоть в канвас->файл.bmp хоть в канвас->printer Дорога в бидере точно такая же как канвас->форма(экран). Мало понятно с чем у ТС возникла проблема.
0
5 / 5 / 1
Регистрация: 05.07.2015
Сообщений: 73
13.07.2015, 12:55  [ТС]
Отвечаю на все по порядку :
идеи типа искать автоматизированно БМП и проче, бред это все есть но вы понимаете что BMP это не выход ? нуно прямое взаимодействие ...

Рисовать на канве это маразм, на конве в TPrint маразм в бесконечной степени ... ине относится даже близко к мысли ...

разбор форматов так же не нужен, ибо форматы меняются апдейтятся и прочее а вывод напритер универсален... и всегда есть ... да и прикинте что есть минимум 8 САПР которые распространены, я вот например PCAD и PROTEUS пользую ... на равне , уже два а ктото 4 ... в общем облом с форматами ...

Задачу правильно описал Evg, то есть именно виртульный принтер ...

Так что возвращаемся к тому от чего начали ....

на сколько я понял не то просто непонял задачу кроме одного человека ... и так теперь все по полочкам ... продолжаем ....
1
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
13.07.2015, 13:09
Цитата Сообщение от Faster Посмотреть сообщение
Рисовать на канве это маразм, на конве в TPrint маразм в бесконечной степени ... ине относится даже близко к мысли ...
Вообщето спул графической печати в винде так и устроен. Фактически изготовленный в пиксельном масштабе BMP отправляется в DC принтера.
0
5 / 5 / 1
Регистрация: 05.07.2015
Сообщений: 73
13.07.2015, 13:30  [ТС]
Fulcrum_013, я конечно не профи в данной области , иначе и поста не было ... но как отче наш помню из MSDN о то что простое рисование по канвам как форм так и простых компонентов плохой тон ... может вы имеете в виду surface так то совершенно не канва ... то какраз поверхность вывода ...
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
13.07.2015, 13:41
бред это все есть
это не бред, это костыль.

но вы понимаете что BMP это не выход ?
нет, не понимаю. Вы изначально не указали, что у вас есть автопоиск BMP и причины работы с ним (BMP) достаточно прозрачно вами же обоснованны.

в пиксельном масштабе BMP отправляется в DC принтера
это так.

Кто мешает использовать EZPL-протокол? Esc-последовательности?
0
5 / 5 / 1
Регистрация: 05.07.2015
Сообщений: 73
13.07.2015, 13:52  [ТС]
я прошу простить меня за видимо избыточную информацию но я очень четко поставил задачу
Задача:
Нужно написать драйвер виртуального принтера...
про
Кто мешает использовать EZPL-протокол? Esc-последовательности?
никто , только мне нужен драйвер для своего устройства а не для чужого...
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
13.07.2015, 14:20
...поприетарность , а универсальные протоколы чем не угодили?

станок
G-код рулит.

Arduino + CNC (непромышленные) (Архитектура станка с ЧПУ на базе Arduino, Grbl Controller, EFL 3 axis)
0
5 / 5 / 1
Регистрация: 05.07.2015
Сообщений: 73
13.07.2015, 14:30  [ТС]
последнее время меня стало раздражать слово ардуино, хотя сам не одну свою библиотеку перевел для начинающих ...

вот вам краткое из моего протокола:
управление почти бесконечным количеством конечных исполнительных устройств (головки) в размерности int 64 каждая из которых может иметь int64 сменных головок, и работает в int64 плоскостях свобод...

если кто не понял то это станки не то убогое чудо типа 3д принтер или фреза а руко-образные устройства например для выпиливания несколькими фрезами одной 3д фигуру ...

протокол так же подразумивает точки синхронизации ( головы могут работать с разной скоростью)

так что можно дальше не спрашивать ...

давайте вернемся к вопросу и проблемам а не будем вдаваться в то что тут не обсуждается, и так вернемся к вопросу написания баранального драйвера принтера...
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
14.07.2015, 03:35
Цитата Сообщение от Faster Посмотреть сообщение
канва
Канва инкапсулирует вывод в DC и в битмап в одной обертке.

Добавлено через 4 минуты
Цитата Сообщение от Faster Посмотреть сообщение
давайте вернемся к вопросу и проблемам а не будем вдаваться в то что тут не обсуждается, и так вернемся к вопросу написания баранального драйвера принтера...
Тада таки свой проц в станок (лучше в каждую руку) как минимум. Винда не есть система реального времени и с синхронизацией такого количества моторов не справится. А да того чтобы процы были подешевше, давать им наперед просчитанные точки траектории. А уже как по траектории моторами крутить каждая рука считает сама, а центральный контроллер станка обеспечивает непересечение, чтобы одна другой руку не отпиляла. Кстати с задачей выпиливания чего угодно справляется одна 4-звенчатая рука с лазером и шпиндель с шаговым приводом.
0
5 / 5 / 1
Регистрация: 05.07.2015
Сообщений: 73
14.07.2015, 16:25  [ТС]
Fulcrum_013, ну вот полемика, да все понятно дело то не в том ... я необсуждаю станок не обсуждаю что и как ...

мне нужен драйвер принтера самому написать ...

p.s а если руке нужно крутить и подымать деталь которая может быть круглой ???
а например нужна мощная фреза с боьшим приводом а потом маленькая узенькая ... чуствуете одна мало
1
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
14.07.2015, 20:17
Цитата Сообщение от Faster Посмотреть сообщение
мне нужен драйвер принтера самому написать ...
Так вы же говорили что драйвер принтера у вас уже есть, а надо только передать ему данные из САПР. Если нету это уже другая песня, и начинается с того через какую шину осуществляется подключение принтера? Если через USB то там все сводится к расширению драйвера виртуального компорта, который идет в комплекте к очень многим микросхемам USB, и далее передаче данных от компа микроконтроллеру и обратно аки по компорту.
Цитата Сообщение от Faster Посмотреть сообщение
p.s а если руке нужно крутить и подымать деталь которая может быть круглой ???
Написано же - шпиндель с шаговым приводом куда обрабатываемая деталь и устанавливается.
Цитата Сообщение от Faster Посмотреть сообщение
а например нужна мощная фреза с большим приводом а потом маленькая узенькая ... чуствуете одна мало
Лазер решает проблему. Регулировка мощности как минимум 100-кратная, а то и 256-кратная.
Опять же если станок для печатных плат -то для переворота шпиндель наилучшее решение, а по сегодняшним меркам и рука неактуально, разве что для сверления отверстий, но тут и координатная система справится, а для самой фрезеровки дорожек актуальны системы с разверткой при помощи подвижных зеркал, типа как на лазерных маркерах, скорость в десятки а то и сотни раз выше механических систем типа координатного стола а тем более руки. С печатной платой думаю справится маркер с твердотельным лазером мощностью до 20 ватт. На координатном столе и 1 ватт лазерный диод справляется, но скорость гораздо ниже маркера. А обычная контактная фреза для печатной платы - исключительно источник микротрещин.

Добавлено через 7 минут
Опять же - двусторонка на сегодняшний день актуальна разве что для домашних умельцев. Для промышленного применения актуальна многослойка, которая делается склейкой нескольких односторонних плат-слоев, из очень тонкого (до 0,3мм) текстолита.
0
5 / 5 / 1
Регистрация: 05.07.2015
Сообщений: 73
19.07.2015, 14:03  [ТС]
А кто сказал про двух сторонку ? , надо с двух сторон но не 2 слоя ... много полемики на счет станка , при вопросе о принтере...

и так что есть :
1. контроллер, и куча куча всего
2. протокол работы через USB или эмуляция COM порта ( я под люниксом завис при работе с УСБ на прямую, вывернулся через COM)
3. Есть прока написаная на билдях , реализуюущая загрузку и вывод изображения на устройство .

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

все помоему с самого начала было понятно ...

сам станок не важен ...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.07.2015, 14:03
Помогаю со студенческими работами здесь

Эмуляция нажатий мышки
Посоветуйте пожалуйста как правильно отправить клик мыши по нужным координатам в свернутое окно браузера.. Желательно чтобы курсор не...

Эмуляция нажатия клавиши
Подскажите плс как емулировать нажатие клавиши в неактивном окне?

Эмуляция нажатия клавиши
Подскажите как отправить окну сообщение, что нужно нажать клавишу Enter? Точнее напишите функцию SendMessage с параметрами для клавиши...

Эмуляция нажатия в игре
Я столкнулся с проблемой Есть очень хорошая функция keybd_event() (виртуально нажимает кнопку), но игры с DirectX, судя по всему,...

Эмуляция подключённого устройства
Можно ли средствами WinAPI сообщить системе, что было подключено устройство (на самом деле никакого устройства нет)? Какой хук ставить,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru