GraphicsUnit.Point, не очень хорошо конвертируется в PDF ... GraphicsUnit.World есть, но как мне конвертировать его в Point? - PullRequest
1 голос
/ 03 ноября 2008

У меня есть некоторый код в .Net для рисования некоторого текстового контента с использованием GDI +. Я использовал GraphicsUnit.Point для определения размера текста. Он прекрасно работает на экране, и даже если его напечатать.

Меня попросили создать систему, которая генерирует PDF, и я получил элемент управления PDF в ComponentOne. Он имеет интерфейс, аналогичный GDI +.

Проблема в том, что размеры шрифтов не работают. Если я использую GraphicsUnit.Point, текст будет намного меньше, и я получаю пустое пространство под текстом. Когда я использую GraphicsUnit.World, текст по-прежнему маленький, но под ним нет пустого места.

Я хочу понять, как конвертировать GraphicsUnit.World в GraphicsUnit.Point.

Буду признателен за любую помощь.

Спасибо

Ответы [ 2 ]

2 голосов
/ 08 ноября 2008

После некоторого Googeling и из того, что я знаю из личного опыта с GDI + и рисованием String, все сводится к DPI (Dots in Inch). По сути, разные устройства (и что касается GDI +, PDF, вероятно, является устройством) имеют разные значения DPI. Дисплеи обычно имеют что-то вроде 70 DPI. Принтеры используют 72. Я не знаю, какие PDF-файлы используют, но это может быть 100 (поскольку это общее значение для независимости устройства и объясняет меньший текст).

Теперь точки определены как 72 DPI. Это всегда правда. При рисовании в PDF с другим DPI GDI + должен соответствующим образом преобразовывать чертеж строки. Но это не всегда работает, особенно с текстом.

GraphicsUnit.World должен (согласно некоторым поисковым запросам) быть независимым от устройства и должен выглядеть одинаково на всех устройствах.

0 голосов
/ 10 ноября 2008

Вы правы, GraphicsUnit.World выглядит одинаково на печати, а также на экране. Мое окончательное решение состояло в том, чтобы использовать GraphicsUnit.World в качестве единицы измерения и избегать точек. Я до сих пор не знаю коэффициент пересчета, но я приблизил значение, пока внешний вид был в порядке.

Для моей цели этого было достаточно.

...