/** * Constructs a kern array for a text in a certain font * @param text the text * @param font the font * @return a PdfTextArray */ public static PdfTextArray GetKernArray(String text, BaseFont font) { PdfTextArray pa = new PdfTextArray(); StringBuilder acc = new StringBuilder(); int len = text.Length - 1; char[] c = text.ToCharArray(); if (len >= 0) acc.Append(c, 0, 1); for (int k = 0; k < len; ++k) { char c2 = c[k + 1]; int kern = font.GetKerning(c[k], c2); if (kern == 0) { acc.Append(c2); } else { pa.Add(acc.ToString()); acc.Length = 0; acc.Append(c, k + 1, 1); pa.Add(-kern); } } pa.Add(acc.ToString()); return pa; }