/// <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>";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlStartTag);
XmlNode nodeStart = xmlDoc.DocumentElement;
if (nodeStart != null)
{
if (nodeStart.HasChildNodes)
{
foreach (XmlNode childNode in nodeStart.ChildNodes)
{
if (childNode.NodeType == XmlNodeType.Text)
{
Paragraph paragraph = null;
if (useStandardStyle)
{
paragraph = ParagraphBuilder.CreateStandardTextParagraph(document);
}
else
{
paragraph = ParagraphBuilder.CreateParagraphWithCustomStyle(
document, "P" + Convert.ToString(document.DocumentMetadata.ParagraphCount + nodeStart.ChildNodes.Count + 1));
}
paragraph.TextContent = TextBuilder.BuildTextCollection(document, childNode.InnerText);
pCollection.Add(paragraph);
}
else
{
Paragraph paragraph = null;
if (useStandardStyle)
{
paragraph = ParagraphBuilder.CreateStandardTextParagraph(document);
}
else
{
paragraph = ParagraphBuilder.CreateParagraphWithCustomStyle(
document, "P" + Convert.ToString(document.DocumentMetadata.ParagraphCount + nodeStart.ChildNodes.Count + 1));
}
pCollection.Add(paragraph);
}
}
}
else
{
Paragraph paragraph = null;
if (useStandardStyle)
{
paragraph = ParagraphBuilder.CreateStandardTextParagraph(document);
}
else
{
paragraph = ParagraphBuilder.CreateParagraphWithCustomStyle(
document, "P" + Convert.ToString(document.DocumentMetadata.ParagraphCount + 1));
}
paragraph.TextContent = TextBuilder.BuildTextCollection(document, nodeStart.InnerText);
pCollection.Add(paragraph);
}
}
return(pCollection);
}