Use MeasureString
Graphics.MeasureString, méthode (System.Drawing)[
^]
Ex:
private void Form1_Paint(object sender, PaintEventArgs e)
{
int columnSize = 100;
e.Graphics.DrawString("Particulars", new Font("Arial", 15, FontStyle.Regular), Brushes.Black, new Point(35, 300));
Font font = fitText(e.Graphics, "Metaformin Hydrochloride Sustained", new Font("Arial", 15, FontStyle.Regular), columnSize);
e.Graphics.DrawString("Metaformin Hydrochloride Sustained", font, Brushes.Black, new Point(35, 350));
e.Graphics.DrawString("HSNCode", new Font("Arial", 15, FontStyle.Regular), Brushes.Black, new Point(columnSize*2, 300));
e.Graphics.DrawString("Unit", new Font("Arial", 15, FontStyle.Regular), Brushes.Black, new Point(columnSize*3, 300));
e.Graphics.Dispose();
}
private Font fitText(Graphics e,string text,Font font,double maxWidth)
{
while (e.MeasureString(text, font).Width > maxWidth)
font = new Font(font.FontFamily, font.Size - 0.1F,font.Style);
return font;
}