Sto creando un programma, in VB.NET, che crea e riempie automaticamente una tabella in documento Microsoft Word.
Perciò ho bisogno di un qualche metodo per calcolare l'altezza precisa, in millimetri, di una riga di testo scritta con un certo carattere ad una certa dimensione.
Cercando su Internet ho trovato questo:
codice:
Private Function GetFontHeight(ByVal FontName As String, _
ByVal FontSize As Single) As Single
Dim myGraphics As Graphics = Me.CreateGraphics()
Dim myFont As Font = New Font(FontName, FontSize)
myGraphics.PageUnit = GraphicsUnit.Millimeter
Return myGraphics.MeasureString("Ag", myFont).Height * 0.9 ' <<< Strano!!!
End Function
Ma purtroppo il risultato era così impreciso che ho dovuto aggiungere quel coefficiente di 0.9 (calcolato a tentativi per approssimazione!) per ottenere un risultato più coerente. Ma resta molto impreciso.
Sembra che ci sia una qualche discrepanza tra l'altezza che una riga occupa nell'oggetto Graphics e l'altezza che occupa in Microsoft Word. E questa discrepanza è del 10% circa. Strano, vero?