Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

Как узнать размер поля (отступа) при печати?   Найти похожие ветки 

 
tria ©   (2004-04-19 13:02) [0]

Функция GetDeviceCaps(Printer.Canvas.Handle,HorzSize) возвращает горизонтальный размер листа (в мм). Но у каждого принтера есть поля отступа, на которых он печатать не может. Как их узнать?
Пример: на моем Canon 1000 GetDeviceCaps возвращает 202 мм, хотя размер А4 210х297. Выходит поля - 8 мм, наверное по 4 с каждой стороны.
Как их узнать, чтобы правильно спозиционировать печать?
Проблема выглядит так: выставляю отступ 10мм, а принтер печатает с полем 14 мм, т.е. я при печати должен указать фактический отступ 10-4=6 мм.


 
tria ©   (2004-04-19 13:02) [0]

Функция GetDeviceCaps(Printer.Canvas.Handle,HorzSize) возвращает горизонтальный размер листа (в мм). Но у каждого принтера есть поля отступа, на которых он печатать не может. Как их узнать?
Пример: на моем Canon 1000 GetDeviceCaps возвращает 202 мм, хотя размер А4 210х297. Выходит поля - 8 мм, наверное по 4 с каждой стороны.
Как их узнать, чтобы правильно спозиционировать печать?
Проблема выглядит так: выставляю отступ 10мм, а принтер печатает с полем 14 мм, т.е. я при печати должен указать фактический отступ 10-4=6 мм.


 
Семин Алексей   (2004-04-19 13:17) [1]

GetDeviceCaps
 PHYSICALOFFSETX
 PHYSICALOFFSETY


 
Семин Алексей   (2004-04-19 13:17) [1]

GetDeviceCaps
 PHYSICALOFFSETX
 PHYSICALOFFSETY


 
tria ©   (2004-04-19 13:25) [2]

{$EXTERNALSYM PHYSICALOFFSETX}
 PHYSICALOFFSETX = 112;     { Physical Printable Area x margin}
 {$EXTERNALSYM PHYSICALOFFSETY}
 PHYSICALOFFSETY = 113;     { Physical Printable Area y margin}

Пробовал. Вызвало два вопроса:
1.PHYSICALOFFSETX - подразумевается что отступ слева и отступ справа у каждого принтера всегда одинаков? Народ в комнате говорит, что по крайней мере верхнее от нижнего отличается. А как получить отступ снизу?
2.Функция возвращает значение в пикселах принтера (если я правильно понял). После перевода в мм получил 3.5 мм. А надо 4. Считать это просто ошибкой округления?


 
tria ©   (2004-04-19 13:25) [2]

{$EXTERNALSYM PHYSICALOFFSETX}
 PHYSICALOFFSETX = 112;     { Physical Printable Area x margin}
 {$EXTERNALSYM PHYSICALOFFSETY}
 PHYSICALOFFSETY = 113;     { Physical Printable Area y margin}

Пробовал. Вызвало два вопроса:
1.PHYSICALOFFSETX - подразумевается что отступ слева и отступ справа у каждого принтера всегда одинаков? Народ в комнате говорит, что по крайней мере верхнее от нижнего отличается. А как получить отступ снизу?
2.Функция возвращает значение в пикселах принтера (если я правильно понял). После перевода в мм получил 3.5 мм. А надо 4. Считать это просто ошибкой округления?


 
Семин Алексей ©   (2004-04-19 13:49) [3]

HORZRES - размер в пикселях печатаемой области по X оси
HORZSIZE - то же, но в мм.
kx = HORZRES / HORZSIZE

PHYSICALOFFSETX - физический размер отступа слева в пикселях
PHYSICALWIDTH   - физический размер листа в пикселях
PHYSICALWIDTH - HORZRES - PHYSICALOFFSETX - отступ
справа в пикселях

Для получения отступов в мм делим все на kx


 
Семин Алексей ©   (2004-04-19 13:49) [3]

HORZRES - размер в пикселях печатаемой области по X оси
HORZSIZE - то же, но в мм.
kx = HORZRES / HORZSIZE

PHYSICALOFFSETX - физический размер отступа слева в пикселях
PHYSICALWIDTH   - физический размер листа в пикселях
PHYSICALWIDTH - HORZRES - PHYSICALOFFSETX - отступ
справа в пикселях

Для получения отступов в мм делим все на kx


 
tria ©   (2004-04-19 15:39) [4]

Большое спасибо.
Меня как-то путала фраза "in device units". Не знал, что это такое.


 
tria ©   (2004-04-19 15:39) [4]

Большое спасибо.
Меня как-то путала фраза "in device units". Не знал, что это такое.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.034 c
3-1082025465
Flahas
2004-04-15 14:37
2004.05.09
exel..


1-1082202384
SergP
2004-04-17 15:46
2004.05.09
Еще раз о Zlib


1-1082696065
New_Delpher
2004-04-23 08:54
2004.05.09
Подскажите ссылки на статьи как создавать мастера в Delphi.


11-1067946243
Nert
2003-11-04 14:44
2004.05.09
Как сделать прозрачность формы как в VCL


1-1082561531
Morfey
2004-04-21 19:32
2004.05.09
Маленький шрифт на канаве





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский