Is there a way to find the number of an item in a list? In VSTO, it was done like this:
foeach (Word.Pargraph para in ActiveDocument.Paragraphs)
{
Word.Range rng = para.Range
string listNumber = rng.ListFormat.ListString //This is the value I want with the string of the list item
}
I tried doing that in Aspose, but I can’t find the equivalent:
NodeCollection nodeColl = doc.GetChildNodes(NodeType.Paragraph, true);
for(int i = 0; i < nodeColl.Count; i++)
{
Paragraph para = (Paragraph)nodeColl[i];
if (para.IsListItem)
{
//Need something here to get the string of the list item.
}
}
Thanks in advance for any advice,
Daniel
Hi Daniel,
Document(@“C:\Temp\Listed
1.docx”);
doc.UpdateListLabels();
int listParaCount = 1;
foreach (Paragraph paragraph in doc.GetChildNodes(NodeType.Paragraph, true))
{
// Find if we have the paragraph list. In our document our list uses plain arabic numbers,
// which start at three and ends at six.
if (paragraph.ListFormat.IsListItem)
{
Console.WriteLine("Paragraph #{0}", listParaCount);
// This is the text we get when actually getting when we output this node to text format.
// The list labels are not included in this text output. Trim any paragraph formatting characters.
string paragraphText = paragraph.ToString(SaveFormat.Text).Trim();
Console.WriteLine("Exported Text: " + paragraphText);
ListLabel label = paragraph.ListLabel;
// This gets the position of the paragraph in current level of the list. If we have a list with multiple level then this
// will tell us what position it is on that particular level.
Console.WriteLine("Numerical Id: " + label.LabelValue);
// Combine them together to include the list label with the text in the output.
Console.WriteLine("List label combined with text: " + label.LabelString + " " + paragraphText);
listParaCount++;
}
}
Hi Awais,
This is excellent and just what I wanted. Thank you.
One question: Does the UpdateListLabels method change anything in the document?
Best wishes,
Daniel
Hi Daniel,