Hi Steve,
Hope you are still interested in resolution of this issue. Actually here is no bug in Aspose.Words. Tab stops can be defined in:
-
Paragraphs. You can access them using Paragraph.ParagraphFormat.TabStops.
-
Paragraph styles. You can access then using Style.ParagraphFormat.TabStops.
-
ListLevel. There is no way to access ListLevel’s TabStop itself, but you can get its position. Use ListLevel.TabPosition property.
-
Document. Finally, default TabStop can be specified on Document level. See Document.DefaultTabStop.
TabStopCollection provides method Clear(), which removes all TabStops form the collection. However, sometimes if call for example paragraph.ParagraphFormat.TabStops.Clear(); in the output document you will still see one TabStop. This is not a bug, this occurs because MS Word shows all TabStops of paragraph, i.e. TabStops from Paragraph, Style and ListLevel (if paragraph is list item). So in order to remove all TabStops of a particular paragraph you should use code like the following:
///
/// Method clears all TabStops asociated with the paragraph.
///
private static void ClearAllTabStops(Paragraph paragraph)
{
// TabStops of paragraph can be defined in three places:
// 1 - In Paragraph itself, we can access them using ParagraphFormat.
// 2 - In the Style asociated with the paragraph.
// 3 - If paragraph is list item, then TabPosition is TabStop of the paragraph.
// Clear paragraph's TabStops.
paragraph.ParagraphFormat.TabStops.Clear();
// Clear TabStops from paragraph's style.
Style paragraphStyle = paragraph.ParagraphFormat.Style;
paragraphStyle.ParagraphFormat.TabStops.Clear();
// Finaly clear TabPosition if the paragraph is list item.
if (paragraph.IsListItem)
paragraph.ParagraphFormat.TabStops.Add(paragraph.ListFormat.ListLevel.TabPosition, TabAlignment.Clear, TabLeader.None);
}
In your case, you need to clear all TabStops of a style. So your code will look like the following.
Document doc = new Document(@"Test001\Tabstop.dot");
Style relineStyle = doc.Styles["Re Line"];
relineStyle.ParagraphFormat.TabStops.Clear();
if (relineStyle.ListFormat != null)
relineStyle.ParagraphFormat.TabStops.Add(relineStyle.ListFormat.ListLevel.TabPosition, TabAlignment.Clear, TabLeader.None);
doc.Save(@"Test001\out.doc");
Please let me know in case of any issues, I will be glad to help you.
Best regards.