Форум: "Основная";
Текущий архив: 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.46 MB
Время: 0.036 c