|
|
|
Как узнать допустимые поля при печати отчета?
|
|||
|---|---|---|---|
|
#18+
Если на вкладке "Page Setup" установить все Margins\'ы в ноль, то при сохранении настроек все Margins\'ы автоматически установятся в минимально допустимые значения размера полей на выбраном принтере. Эти минимально допустимые значения у разных принтеров разные. Делаю отчет, который сильно зависит от допустимой области печати. Как узнать эти минимально допустимые поля? Посмотрел здесь, подумал может это сработает: Код: plaintext 1. Подскажите, Люди Добрые. P.S. На крайняк посоветуйте какие поля надо установить чтобы работало на любом принтере. Нужны форматы только A4 и Letter. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2004, 19:19:33 |
|
||
|
Как узнать допустимые поля при печати отчета?
|
|||
|---|---|---|---|
|
#18+
С помощью API CreateDC и GetDeviceCaps можно получить максимальный размер области печати и минимальный левый и верхний отступ для указанного устройства. Вот кусочек: PhysWidth = apiGetDeviceCaps(hdc, PHYSICALWIDTH) PhysHeight = apiGetDeviceCaps(hdc, PHYSICALHEIGHT) MarginLeft = apiGetDeviceCaps(hdc, PHYSICALOFFSETX) MarginTop = apiGetDeviceCaps(hdc, PHYSICALOFFSETY) Не ошибетесь, если для лазерного принтера дадите отступы по 7мм. Для струйного нижний (правый при альбомной ориентации) - 15 мм. Может есть и меньше - не встречал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2004, 20:00:26 |
|
||
|
Как узнать допустимые поля при печати отчета?
|
|||
|---|---|---|---|
|
#18+
Спасибо. Попробую. Кстати, может знает кто: Почему на разных принтерах рисуются линии различной толщины при использовании метода Line? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Порой рисуется линия аж до 2мм толщиной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2004, 20:24:33 |
|
||
|
Как узнать допустимые поля при печати отчета?
|
|||
|---|---|---|---|
|
#18+
Анатолий ( Киев ) Для струйного нижний (правый при альбомной ориентации) - 15 мм. Может есть и меньше - не встречал. у современных струйников бывает и меньше - пример на экране + фотопринтеры "мажут" весь лист ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2004, 20:39:38 |
|
||
|
Как узнать допустимые поля при печати отчета?
|
|||
|---|---|---|---|
|
#18+
Толщина линии задается в пикселах, а соотношение Pixels/point зависит от разрешения. Для разрешения 600 dpi это 2.4, для 300 dpi - 1,2. Линия будет в 2 раза толще. Нужно корректировать толщину с учетом коэффициента. Узнать разрешение можно из структуры DEVMODE, а можно и проще: Const conDefaultKoeff = 2.4 Me.ScaleMode = 3 sglKoeff = Me.ScaleWidth Me.ScaleMode = 2 sglKoeff = sglKoeff / Me.ScaleWidth MsgBox "Pixels/point " & sglKoeff Me.DrawWidth = 4 * sglKoeff / conDefaultKoeff Причем для горизнтальных и вертикальных линий могут быть различные коэффициенты (например 600 dpi / 300 dpi) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 14:36:55 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32587879&tid=1673404]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
211ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 505ms |

| 0 / 0 |
