![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вывод на печать ? [D7, WinXP]
lod © (2007-10-13 15:11:00)Нужно вывести данные на печать на уже готовый бланк с водяными знаками, то есть всё должно пропечатываться в определённом месте,на бланке, с точностью до милиметра. Кто то может уже решал подобную задачу. Какакие компоненты лучше использовать для этих целей ? Может быть FreeReport ?
b z (2007-10-16 13:53:00) [1]а в ж/д кассах разве не простые принтеры, на бланках печатают? вроде так и есть ...
Reindeer Moss Eater (2007-10-16 13:47:00) [2]на уже готовый бланк с водянымизнаками
Есть сомнения в точной геометрии такого бланка?
:)
Sergey13 (2007-10-16 13:23:00) [3]> [19] Leonid Troyanovsky © (16.10.07 13:09)
Ну, разговор шел (по крайней мере с моей стороны) вроде о принтерах, а не МФУ. Да и распознакание бланка, тоже задачка не из простых, ИМХО. Хотя я этим никогда не занимался, поэтому все мои слова только умозрительные заключения.
Leonid Troyanovsky (2007-10-16 13:09:00) [4]
> Sergey13 © (16.10.07 11:41) [16]
> Так то-то и оно. Если качество бланков так себе - задача
> спозиционировать печать по ним становится практически невыполнимой
> на стандартном оборудовании.
А чего такого: современный ксерокс - по сути и сканер и принтер.
Кладем бланк, сканируем, распознаем поля, позиционируем вывод.
Т.е., технически вполне решаемо.
--
Regards, LVT.
Sergey13 (2007-10-16 12:42:00) [5]> [17] Washington © (16.10.07 12:03)
Будут там деньги для меня зайду. И наплюю на качество печати. 8-)
Washington (2007-10-16 12:03:00) [6]
> Sergey13 © (16.10.07 11:41) [16]
Гы... Вот если бы ты в наш сбербанк зашёл (в Алматинский)... :))))
Sergey13 (2007-10-16 11:41:00) [7]> [15] lod (16.10.07 11:17)
> Ну если в полях разнобой, тогда наверное вобще браться не стоит.
Так то-то и оно. Если качество бланков так себе - задача спозиционировать печать по ним становится практически невыполнимой на стандартном оборудовании.
Вот в сбербанке когда в сберкнижке печатают принтер "сам" как то находит позицию, с которой печатать. Но, подозреваю, подобные принтеры стоят не 100 баксов.
lod (2007-10-16 11:17:00) [8]>Сколько проверил листов? 2? 5? Проверь на 200, 500. У бланков тоже наверняка разнобой в полях наблюдается, хотя для евро может это и не актуально. 8-)
-----------------------
Ну если в полях разнобой, тогда наверное вобще браться не стоит. Потому что даже не представляю как это сделать можно, если это вобще возможно.
lod (2007-10-16 11:15:00) [9]>Сколько проверил листов? 2? 5? Проверь на 200, 500. У бланков тоже наверняка разнобой в полях наблюдается, хотя для евро может это и не актуально. 8-)
-----------------------
Ну если в полях разнобой, тогда наверное вобще браться не стоит. Потому что даже не представляю как это сделать можно, если это вобще возможно.
Anatoly Podgoretsky (2007-10-15 15:32:00) [10]
> Суслик (15.10.07 15:16) [12]
QR работает и в режиме физических кординат, как минимум с точностью 0,1 мм.
Суслик (2007-10-15 15:16:00) [11]есть аналогичная задача - печать платезных покурчений. там тоже все точно должно быть.
никаких компонентов не использовал. использова TPrinter и евоный Canvas.
Для расчета использовал функцию GetDeviceCaps
типа такого (пишу здесь потому могут быть ошибки)
Printer.Orientation := poPortrait;
DpiX := GetDeviceCaps(Printer.Handle, LOGPIXELSX);
// Ширина в точках 100 миллиметров
A := Round(100 * DpiX / 25.380710659898477);
В результате А содержит количество точек, равное 100 миллиметрам на текущем принетере. Аналогичным образом считай координаты.
Тебе еще могут понадобиться другие вызова GetDeviceCaps
GetDeviceCaps(Printer.Handle, LOGPIXELSX),
GetDeviceCaps(Printer.Handle, LOGPIXELSY),
GetDeviceCaps(Printer.Handle, PHYSICALOFFSETX),
GetDeviceCaps(Printer.Handle, PHYSICALOFFSETY),
GetDeviceCaps(Printer.Handle, HORZRES),
GetDeviceCaps(Printer.Handle, VERTRES),
GetDeviceCaps(Printer.Handle, PHYSICALWIDTH),
GetDeviceCaps(Printer.Handle, PHYSICALHEIGHT));
См. доку по функции GetDeviceCaps за подробностями.
Reindeer Moss Eater (2007-10-15 14:39:00) [12]Косвенно все равно зависит.
Если дизайнер отчета позволяет оперировать макетом страницы в миллиметрах, то его можно использовать.
Это более удобно, чем затачиваться на межстрочные интервалы.
Sergey13 (2007-10-15 14:36:00) [13]> [9] Reindeer Moss Eater © (15.10.07 14:26)
Я подозреваю, что от генератора отчетов тут вообще ничего не зависит. Я подобное и на клиппере еще делал через ESC-последовательности. Отчет формируется всегда одинаково и правильно. Вот на стадии собственно печати - как повезет.
Reindeer Moss Eater (2007-10-15 14:26:00) [14]Когда-то давно подобное было сделано на самом обычном квикрепорте.
работает наверное до сих пор.
Anatoly Podgoretsky (2007-10-15 14:14:00) [15]
> Проверил на своём принтере, смещение максимум 1 милиметр.
> Меня это устраивает. Принтер HP1200
У лазерных принтеров качество подачи лучше.
Sergey13 (2007-10-15 13:05:00) [16]> [6] lod (15.10.07 12:57)
Сколько проверил листов? 2? 5? Проверь на 200, 500. У бланков тоже наверняка разнобой в полях наблюдается, хотя для евро может это и не актуально. 8-)
lod (2007-10-15 12:57:00) [17]Проверил на своём принтере, смещение максимум 1 милиметр. Меня это устраивает. Принтер HP1200
kyn66 (2007-10-15 11:07:00) [18]Действительно, принтер каждый раз могет затягивать по разному.
lod (2007-10-13 15:30:00) [19]>>Баксы штампуем? ;)
Нафиг мне баксы, они в цене падают. Евро ))
lod (2007-10-13 15:29:00) [20]А вобще такое возможно сделать, я вроде где то видел такое ? Вставляет оператор бланк в принтер и данные в нём пропатываються где надо