2013-07-17 4 views
1

Я добавляю текст в свою видимую подпись. Мой текст:Размер шрифта pdf/F не является реальным размером?

BT 
1 0 0 1 0 1 Tm 
/F1 5 
Tf 
(Hello World)Tj 
ET 

5 - размер шрифта. но как это рассчитывается?

Я просто проверить ширину текста, но это не то же самое:

AffineTransform affinetransform = new AffineTransform(); 
FontRenderContext frc = new FontRenderContext(affinetransform,true,true);  
Font font = new Font("myFont", Font.PLAIN, 5); 
int textwidth = (int)(font.getStringBounds(text, frc).getWidth()); 

В моем PDrectangle, размер-слишком велик. Есть идеи? Как рассчитывается 5?

ответ

1

@stanlyF уже цитирует, как размер шрифта предназначен для интерпретации. Особо следует заметить, что это около номинальная высота линий

У вас похоже неправильное представление о том, что это ширина. Как уже упоминалось в my answer к вашему former question, ширина строки зависит от

  • метрик шрифта, особенно символов ширины символов, участвующих,
  • размера шрифта,
  • распорного текущий символ значение ,
  • текущее слово значение расстояния,
  • горизонтальное масштабирование,
  • текущий текст матрицы, и
  • текущая матрица преобразования.

Подробнее см. specification.

0

вы также должны применить преобразования текстовой матрицы Tm для этого значения.

«Шрифт определяет глифы для одного стандартного размера. Этот стандарт устроен так, что номинальная высота плотно расположенных линий текста составляет 1 единицу. В системе координат пользователя по умолчанию это означает, что стандартный размер глифа составляет 1 единицу в пользовательском пространстве или 1/72 дюйма. Затем шрифт стандартного размера должен быть масштабирован для использования. Масштабный коэффициент определяется как второй операнд оператора Tf, тем самым устанавливая параметр размера шрифта текста в графическом состоянии ».

+0

Можете ли вы привести мне пример? – grep