|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Мужики, подскажите, как определить параметры (длину и высоту) символьного выражения при печати в зависимости от типа и размера шрифта. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2009, 13:42 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Макс_П, MAN: TXTWIDTH(), FONTMETRIC(1), FONTMETRIC(6) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2009, 14:07 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Это всё в пикселях и на экране, а мне необходимо в САНТИМЕТРАХ на листе бумаги, чтобы определить влезет или не влезелт в бланк строгой отчётности в определённое место данный текст. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2009, 14:19 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Макс_ПЭто всё в пикселях и на экране, а мне необходимо в САНТИМЕТРАХ на листе бумаги, чтобы определить влезет или не влезелт в бланк строгой отчётности в определённое место данный текст. Это все в пикселях и без разницы где, на экране или листе бумаги. Можете попробовать получить разрешение принтера через PRTINFO(8), PRTINFO(11). Надеюсь, дюймы в сантиметры сможете перевести? Только здесь была какая-то закавыка. Возможно, лучше действовать через API. Необходимо получить контекст устройства принтера, затем канву принтера, а из канвы принтера через GetDeviceCaps получить сколько пикселей в дюйме. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2009, 06:00 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
А вот что пишут о пикселях в инете. Пиксель - это величина переменная, зависит от разрешения экрана. Разрешение меряют в том числе PPI (pixel per inch) = пексель на дюйм, хотя более привычно обычно 800х600, 1024х768 и т.п. Экран в 15 дюймов при разрешении 1024х768 имеет примерно 85 пикселей на дюйм, т.е. размер одного пикселя будет 0,3мм. Но при разрешении 800х600 тот же экран будет иметь меньшее число пикселей на дюйм, соответственно размер каждого пикселя увеличится. Так-как, я вывожу отчёт на бумагу, то меня интересует, чему равен 1 ПИКСЕЛЬ в САНТИМЕТРАХ на листе бумаги вне зависимости от используемого принтера? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2009, 17:13 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Макс_ПА вот что пишут о пикселях в инете. Пиксель - это величина переменная, зависит от разрешения экрана. Разрешение меряют в том числе PPI (pixel per inch) = пексель на дюйм, хотя более привычно обычно 800х600, 1024х768 и т.п. Экран в 15 дюймов при разрешении 1024х768 имеет примерно 85 пикселей на дюйм, т.е. размер одного пикселя будет 0,3мм. Но при разрешении 800х600 тот же экран будет иметь меньшее число пикселей на дюйм, соответственно размер каждого пикселя увеличится. Так-как, я вывожу отчёт на бумагу, то меня интересует, чему равен 1 ПИКСЕЛЬ в САНТИМЕТРАХ на листе бумаги вне зависимости от используемого принтера?Ну вот же сами приводите доказательство разного размера пикселя в зависимости от разрешения устройства (экрана монитора) и тут же просите дать размер пикселя "на листе бумаги вне зависимости от используемого принтера". И как Вы себе это представляете? Думаете вывод на бумагу чем-то отличается от вывода на экран? Думаете принтеры не имеют разрешений и их пиксели все одинаковые? Или никогда не видели в техописании принтеров 300dpi, 600dpi, 1200 dpi, 1440 dpi? Что здесь означают dpi? Уж не количество ли пикселей на дюйм? К тому же, один и тот же принтер обычно может печатать с разными разрешениями, выставляемыми в настройках принтера. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2009, 17:22 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
А если так: ? TXTWIDTH('Hello!','Courier ',24) && Число символов символьного выражения = 5.063 ? FONTMETRIC(6,'Courier ',24) && Средняя ширина символа в пикселях = 16 ? FONTMETRIC(1,'Courier ',24) && Высота символа в пикселях = 37 По какой формуле вычислить, поместится ли данный текст в прямоугольник на листе бумаги длиной 2 см. и высотой 0.5 см. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2009, 18:40 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Макс_ПА если так: ? TXTWIDTH('Hello!','Courier ',24) && Число символов символьного выражения = 5.063 ? FONTMETRIC(6,'Courier ',24) && Средняя ширина символа в пикселях = 16 ? FONTMETRIC(1,'Courier ',24) && Высота символа в пикселях = 37 По какой формуле вычислить, поместится ли данный текст в прямоугольник на листе бумаги длиной 2 см. и высотой 0.5 см.ДЛЯ КАКОГО РАЗРЕШЕНИЯ? Какое разрешение будет на принтере? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2009, 19:31 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Программа будет находиться в сети, поэтому использоваться будут разные принтеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2009, 19:38 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Макс_П, а как текст-то планируешь выводить на принтер? Каким инструментом? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2009, 20:08 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
проходящий., С помощью инструмента Filed. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2009, 20:19 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Макс_Ппроходящий., С помощью инструмента Filed.Что-то я не понял? Напрямую на принтер или используя фоксовый отчет? Или еще как? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2009, 20:23 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
проходящий., Шапка отчёта создана в конструкторе отчёта. Сначала результат появляется в окне предварительного просмотра, а затем, если всё нормально, выбирается принтер и выводится на печать. То есть в предпросмотре, ещё до выбора принтера, должены увидеть, поместится ли информация в выбранном для неё месте. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2009, 20:37 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Макс_Ппроходящий., Шапка отчёта создана в конструкторе отчёта. Сначала результат появляется в окне предварительного просмотра, а затем, если всё нормально, выбирается принтер и выводится на печать. То есть в предпросмотре, ещё до выбора принтера, должены увидеть, поместится ли информация в выбранном для неё месте.Ну наконец-то... Ну на кой ляд тебе сдался этот расчет размера? Что ты сним собрался делать? А раз уж пользуешь отчет, то в нем прямо и размести поле нужного тебе размера. В отчете настрой единцы измерения сантиметры и заканчивай заниматься ерундой. Вот как раз на предпростмотре и увидишь степень влезания твоего текста в поле заданного тобой размера. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2009, 20:52 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Макс_Ппроходящий., Шапка отчёта создана в конструкторе отчёта. Сначала результат появляется в окне предварительного просмотра, а затем, если всё нормально, выбирается принтер и выводится на печать. То есть в предпросмотре, ещё до выбора принтера, должены увидеть, поместится ли информация в выбранном для неё месте. Откорректирую последнее предложение. ... То есть, если информация не помещается в данное место, я её корректирую программно и вывожу информацию в окно предпросмотра, а затем на принтер. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2009, 21:04 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Макс_ПА вот что пишут о пикселях в инете. Пиксель - это величина переменная, зависит от разрешения экрана. Разрешение меряют в том числе PPI (pixel per inch) = пексель на дюйм, хотя более привычно обычно 800х600, 1024х768 и т.п. Экран в 15 дюймов при разрешении 1024х768 имеет примерно 85 пикселей на дюйм, т.е. размер одного пикселя будет 0,3мм. Но при разрешении 800х600 тот же экран будет иметь меньшее число пикселей на дюйм, соответственно размер каждого пикселя увеличится. Так-как, я вывожу отчёт на бумагу, то меня интересует, чему равен 1 ПИКСЕЛЬ в САНТИМЕТРАХ на листе бумаги вне зависимости от используемого принтера? Вы не так читаете. Пиксель - величина постоянная. Пиксель - неделимый атом растеризации. А вот линейный размер пикселя - величина переменная. Вне контекста устройства не существует понятия линейный размер пикселя. Причем любого устройства, не только принтера. Более того, один и тот же принтер может растеризировать с различной плотностью. 150 DPI (точек на дюйм), 300 DPI, 600 DPI, 1200 DPI и так далее. Причем, драйвер принтера обычно позволяет пользователю поменять эту настройку в любой момент времени. По вашей проблеме. Я могу предложить следующее: 1. Используйте моноширинный шрифт, типа Courier New 2. Для моноширинного шрифта вы можете посмотреть в отчете максимальное число СИМВОЛОВ (а не пикселей), которые влазят в строку. 3. Не забудьте дать запас в 1-2 символа. Разные устройства (читай принтеры) при рендеринге текста дают небольшие расхождения (чисто на ошибках округления). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 05:55 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Kruchinin Pahan По вашей проблеме. Я могу предложить следующее: 1. Используйте моноширинный шрифт, типа Courier New 2. Для моноширинного шрифта вы можете посмотреть в отчете максимальное число СИМВОЛОВ (а не пикселей), которые влазят в строку. 3. Не забудьте дать запас в 1-2 символа. Разные устройства (читай принтеры) при рендеринге текста дают небольшие расхождения (чисто на ошибках округления). Именно так я и поступил, но это не решает проблемы, так как перед тем как узнать сколько же символов поместится, необходимо распечатать документ и затем в ручную считать количество символов. А как же это дело считает ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР? Там же и тип и размер шрифта учитываются сразу и на экране видим то, что получится при печати. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 10:22 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Макс_П[quot Макс_П]То есть, если информация не помещается в данное место, я её корректирую программно и вывожу информацию в окно предпросмотра, а затем на принтер.Опять непонятки. Что значит вывожу в окно предпросмотра? Сам, не пользуясь репортом? Каким образом? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 11:31 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Макс_ПKruchinin Pahan По вашей проблеме. Я могу предложить следующее: 1. Используйте моноширинный шрифт, типа Courier New 2. Для моноширинного шрифта вы можете посмотреть в отчете максимальное число СИМВОЛОВ (а не пикселей), которые влазят в строку. 3. Не забудьте дать запас в 1-2 символа. Разные устройства (читай принтеры) при рендеринге текста дают небольшие расхождения (чисто на ошибках округления). Именно так я и поступил, но это не решает проблемы, так как перед тем как узнать сколько же символов поместится, необходимо распечатать документ и затем в ручную считать количество символов. А как же это дело считает ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР? Там же и тип и размер шрифта учитываются сразу и на экране видим то, что получится при печати.Там используется расчет картинки размером в страницу с учетом настроек принтера и показ этой картинки в предпросмотре. Потом эта какртинка выводится на печать. Это если речь идет о предпросмотре отчета. Но по твоим объяснениям выходит, что отчетом ты не пользуешься? Следовательно его фишки не для тебя. Так что же и ка ты делаешь и что хочешь сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 11:34 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Хочется вернуться к самому началу: ? TXTWIDTH('Hello!','Courier ',24) && Число символов символьного выражения = 5.063 ? FONTMETRIC(6,'Courier ',24) && Средняя ширина символа в пикселях = 16 ? FONTMETRIC(1,'Courier ',24) && Высота символа в пикселях = 37 ? PRTINFO(11) && Вертикальное разрешение: точек-на-дюйм = 144 ? PRTINFO(8) && Горизонтальное разрешение принтера: точек-на-дюйм=120 И всё-таки, кто-нибудь может написать формулу, по которой можно вычислить, поместится ли данный текст в прямоугольник на листе бумаги длиной 2 см. и высотой 0.5 см.? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 12:48 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Макс_П, допустим кто-то сподобится написать нужные тебе формулы. Только что по ним можно посчитать в отвязке от принтера? Что ты дальше с ними будешь делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 13:04 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Макс_ПХочется вернуться к самому началу: ? TXTWIDTH('Hello!','Courier ',24) && Число символов символьного выражения = 5.063 ? FONTMETRIC(6,'Courier ',24) && Средняя ширина символа в пикселях = 16 ? FONTMETRIC(1,'Courier ',24) && Высота символа в пикселях = 37 ? PRTINFO(11) && Вертикальное разрешение: точек-на-дюйм = 144 ? PRTINFO(8) && Горизонтальное разрешение принтера: точек-на-дюйм=120 И всё-таки, кто-нибудь может написать формулу, по которой можно вычислить, поместится ли данный текст в прямоугольник на листе бумаги длиной 2 см. и высотой 0.5 см.? Тока недостаточно этой хрени. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2009, 13:26 |
|
Длина и высота символьной строки при печати
|
|||
---|---|---|---|
#18+
Kruchinin Pahan, огромное спасибо за помощь!!! Благодаря Вашему примеру, нашёл окончательное решение этой задачи здесь ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2009, 21:44 |
|
|
start [/forum/topic.php?desktop=1&fid=41&tid=1585964]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 145ms |
0 / 0 |