I'm working in a windows application and I want that in my RDLC reports text to be justified.
Asked
Active
Viewed 1.2k times
2 Answers
2
I made a function to convert text in a list of strings. You can use a table without header to show it like a justifyed paraghaph.
public static List<string> GetText(string text, int width)
{
string[] palabras = text.Split(' ');
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
int length = palabras.Length;
List<string> resultado = new List<string>();
for (int i = 0; i < length; i++)
{
sb1.AppendFormat("{0} ", palabras[i]);
if (sb1.ToString().Length > width)
{
resultado.Add(sb2.ToString());
sb1 = new StringBuilder();
sb2 = new StringBuilder();
i--;
}
else
{
sb2.AppendFormat("{0} ", palabras[i]);
}
}
resultado.Add(sb2.ToString());
List<string> resultado2 = new List<string>();
string temp;
int index1, index2, salto;
string target;
int limite = resultado.Count;
foreach (var item in resultado)
{
target = " ";
temp = item.ToString().Trim();
index1 = 0; index2 = 0; salto = 2;
if (limite <= 1)
{
resultado2.Add(temp);
break;
}
while (temp.Length <= width)
{
if (temp.IndexOf(target, index2) < 0)
{
index1 = 0; index2 = 0;
target = target + " ";
salto++;
}
index1 = temp.IndexOf(target, index2);
temp = temp.Insert(temp.IndexOf(target, index2), " ");
index2 = index1 + salto;
}
limite--;
resultado2.Add(temp);
}
return resultado2;
}
Hope it helps!

Marcelo Lujan
- 2,142
- 1
- 17
- 12
-
From the origin of black hole, from the time of stone age, this question is searching for its answer. There are several forums and programmers including me looking for the solution. Unfortunately, Microsoft has the evergreen answer "NO, IT IS NOT POSSIBLE" – Bholu Bhaiya Jun 25 '21 at 05:51