/// <summary>
/// Creates the paragraph collection.
/// </summary>
/// <param name="document">The document.</param>
/// <param name="text">The text.</param>
/// <param name="useStandardStyle">if set to <c>true</c> [use standard style].</param>
/// <param name="paragraphSeperator">The paragraph seperator.</param>
/// <returns></returns>
public static ParagraphCollection CreateParagraphCollection(IDocument document, string text,
bool useStandardStyle, string paragraphSeperator)
{
string xmlStartTag = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
ParagraphCollection pCollection = new ParagraphCollection();
text = text.Replace(paragraphSeperator, "<p/>");
xmlStartTag += "<pg>" + text + "</pg>";
XDocument xmlDoc = XDocument.Parse(xmlStartTag);
XElement nodeStart = xmlDoc.Root;
if (nodeStart != null)
{
if (nodeStart.HasElements)
{
foreach (XNode childNode in nodeStart.Nodes())
{
if (childNode.NodeType == XmlNodeType.Text)
{
Paragraph paragraph;
if (useStandardStyle)
{
paragraph = CreateStandardTextParagraph(document);
}
else
{
paragraph = CreateParagraphWithCustomStyle(
document,
"P" +
Convert.ToString(document.DocumentMetadata.ParagraphCount +
nodeStart.Nodes().Count() + 1));
}
paragraph.TextContent = TextBuilder.BuildTextCollection(document, ((XText)childNode).Value);
pCollection.Add(paragraph);
}
else
{
Paragraph paragraph;
if (useStandardStyle)
{
paragraph = CreateStandardTextParagraph(document);
}
else
{
paragraph = CreateParagraphWithCustomStyle(
document,
"P" +
Convert.ToString(document.DocumentMetadata.ParagraphCount +
nodeStart.Nodes().Count() + 1));
}
pCollection.Add(paragraph);
}
}
}
else
{
Paragraph paragraph;
if (useStandardStyle)
{
paragraph = CreateStandardTextParagraph(document);
}
else
{
paragraph = CreateParagraphWithCustomStyle(
document, "P" + Convert.ToString(document.DocumentMetadata.ParagraphCount + 1));
}
paragraph.TextContent = TextBuilder.BuildTextCollection(document, nodeStart.Value);
pCollection.Add(paragraph);
}
}
return(pCollection);
}