I found .InsertBreak(BreakType.ParagraphBreak) is not working well since the new release of 3.1.2.0.
For the coding below, i suppose it will only put a line under "Employment History", and .InsertBreak(BreakType.ParagraphBreak) will actually seperate the next paragraph and borders(BorderType.Bottom).LineStyle = LineStyle.None will not underline the next paragraph.
But with new release, everything were underlined. Think .InsertBreak(BreakType.ParagraphBreak) did not work at all.
Sorry for the delay, support requests that come at different times of day can be handled by different Aspose staff in different timezones. We will certainly try to reproduce the issue and help or rectify it if needed in the next few hours.
In Aspose.Word 3.x, DocumentBuilder.ParagraphFormat property actually "attaches" to the object that represents formatting properties of the current paragraph. Therefore, if the cursor is moved to another paragraph (and this is the case with inserting a paragraph break), the ParagraphFormat property is "reattached" to a different object.
Borders b1 = builder.ParagraphFormat.Borders;
//This moves the cursor to the newly inserted paragraph. builder.InsertBreak(BreakType.ParagraphBreak);
//b2 is a different object from b1 in Aspose.Word 3.x because ParagraphFormat and Borders are now attached to a different paragraph. Borders b2 = builder.ParagraphFormat.Borders;
//It is true, they are different objects. Debug.Assert(b1 != b2);
-----
So the problem is that you cache the pointer to ParagraphFormat.Borders in a local variable called borders. When the cursor in the document builder moves to another paragraph, your borders variable remains pointing to the original (first) paragraph.
I think this is a problem in Aspose.Word since it should not have broken the backward compatibility this way and we will try to fix it. To workaround in the meantime, just don't cache ParagraphFormat.Borders in a local variable.