Eger satır limiti var ve yazdıklarımız bu satırdan buyuk ise, kelime bütünlügünü bozmadan kelimeyi alt satıra taşıma ve devam etme, çok özensizce yazılmış üstünden kesinlikle geçilmeli, dinamik satır sayısı gibi :)
string satir1 = "";
string satir2 = "";
string satir3 = "";
string[] kelimeler = new string[1] { "" };
kelimeler = MSipAciklama.Split(new string[1] { " " }, StringSplitOptions.RemoveEmptyEntries);
if (kelimeler.Length > 0)
{
int kacci = 0;
int limit = (int)g.MeasureString("SATIRIN UZUNLUGUNU BULMAK İÇİN KULLANDIGIM DUMMY METIN ", InvoiceFontBaslik).Width; //40 karakter gibide olabilir burası; //572point
int toplam = 0;
for (int i = 0; i < kelimeler.Length; i++)
{
if (toplam + (int)g.MeasureString(kelimeler[i] + " ", InvoiceFontBaslik).Width < limit * 1)
{
toplam += (int)g.MeasureString(kelimeler[i] + " ", InvoiceFontBaslik).Width;
satir1 += kelimeler[i] + " ";
}
else
if (toplam + (int)g.MeasureString(kelimeler[i] + " ", InvoiceFontBaslik).Width < limit * 2)
{
toplam += (int)g.MeasureString(kelimeler[i] + " ", InvoiceFontBaslik).Width;
satir2 += kelimeler[i] + " ";
}
else
if (toplam + (int)g.MeasureString(kelimeler[i] + " ", InvoiceFontBaslik).Width < limit * 3)
{
toplam += (int)g.MeasureString(kelimeler[i] + " ", InvoiceFontBaslik).Width;
satir3 += kelimeler[i] + " ";
}
}
}
if (satir1.Length > 0)
{
FieldValue = satir1;
g.DrawString(FieldValue, InvoiceFont, BlackBrush, CurrentX + 120, CurrentY + 2);
CurrentY = CurrentY + InvoiceFontHeight;
}
if (satir2.Length > 0)
{
FieldValue = satir2;
g.DrawString(FieldValue, InvoiceFont, BlackBrush, CurrentX + 120, CurrentY + 2);
CurrentY = CurrentY + InvoiceFontHeight;
}
if (satir3.Length > 0)
{
FieldValue = satir3;
g.DrawString(FieldValue, InvoiceFont, BlackBrush, CurrentX + 120, CurrentY + 2);
CurrentY = CurrentY + InvoiceFontHeight;
}