public void TrailSpaces(TxtLeadingSpacesOptions txtLeadingSpacesOptions, TxtTrailingSpacesOptions txtTrailingSpacesOptions)
        {
            //ExStart
            //ExFor:TxtLoadOptions.TrailingSpacesOptions
            //ExFor:TxtLoadOptions.LeadingSpacesOptions
            //ExFor:TxtTrailingSpacesOptions
            //ExFor:TxtLeadingSpacesOptions
            //ExSummary:Shows how to trim whitespace when loading plaintext documents.
            string textDoc = "      Line 1 \n" +
                             "    Line 2   \n" +
                             " Line 3       ";

            // Create a "TxtLoadOptions" object, which we can pass to a document's constructor
            // to modify how we load a plaintext document.
            TxtLoadOptions loadOptions = new TxtLoadOptions();

            // Set the "LeadingSpacesOptions" property to "TxtLeadingSpacesOptions.Preserve"
            // to preserve all whitespace characters at the start of every line.
            // Set the "LeadingSpacesOptions" property to "TxtLeadingSpacesOptions.ConvertToIndent"
            // to remove all whitespace characters from the start of every line,
            // and then apply a left first line indent to the paragraph to simulate the effect of the whitespaces.
            // Set the "LeadingSpacesOptions" property to "TxtLeadingSpacesOptions.Trim"
            // to remove all whitespace characters from every line's start.
            loadOptions.LeadingSpacesOptions = txtLeadingSpacesOptions;

            // Set the "TrailingSpacesOptions" property to "TxtTrailingSpacesOptions.Preserve"
            // to preserve all whitespace characters at the end of every line.
            // Set the "TrailingSpacesOptions" property to "TxtTrailingSpacesOptions.Trim" to
            // remove all whitespace characters from the end of every line.
            loadOptions.TrailingSpacesOptions = txtTrailingSpacesOptions;

            Document            doc        = new Document(new MemoryStream(Encoding.UTF8.GetBytes(textDoc)), loadOptions);
            ParagraphCollection paragraphs = doc.FirstSection.Body.Paragraphs;

            switch (txtLeadingSpacesOptions)
            {
            case TxtLeadingSpacesOptions.ConvertToIndent:
                Assert.AreEqual(37.8d, paragraphs[0].ParagraphFormat.FirstLineIndent);
                Assert.AreEqual(25.2d, paragraphs[1].ParagraphFormat.FirstLineIndent);
                Assert.AreEqual(6.3d, paragraphs[2].ParagraphFormat.FirstLineIndent);

                Assert.True(paragraphs[0].GetText().StartsWith("Line 1"));
                Assert.True(paragraphs[1].GetText().StartsWith("Line 2"));
                Assert.True(paragraphs[2].GetText().StartsWith("Line 3"));
                break;

            case TxtLeadingSpacesOptions.Preserve:
                Assert.True(paragraphs.All(p => ((Paragraph)p).ParagraphFormat.FirstLineIndent == 0.0d));

                Assert.True(paragraphs[0].GetText().StartsWith("      Line 1"));
                Assert.True(paragraphs[1].GetText().StartsWith("    Line 2"));
                Assert.True(paragraphs[2].GetText().StartsWith(" Line 3"));
                break;

            case TxtLeadingSpacesOptions.Trim:
                Assert.True(paragraphs.All(p => ((Paragraph)p).ParagraphFormat.FirstLineIndent == 0.0d));

                Assert.True(paragraphs[0].GetText().StartsWith("Line 1"));
                Assert.True(paragraphs[1].GetText().StartsWith("Line 2"));
                Assert.True(paragraphs[2].GetText().StartsWith("Line 3"));
                break;
            }

            switch (txtTrailingSpacesOptions)
            {
            case TxtTrailingSpacesOptions.Preserve:
                Assert.True(paragraphs[0].GetText().EndsWith("Line 1 \r"));
                Assert.True(paragraphs[1].GetText().EndsWith("Line 2   \r"));
                Assert.True(paragraphs[2].GetText().EndsWith("Line 3       \f"));
                break;

            case TxtTrailingSpacesOptions.Trim:
                Assert.True(paragraphs[0].GetText().EndsWith("Line 1\r"));
                Assert.True(paragraphs[1].GetText().EndsWith("Line 2\r"));
                Assert.True(paragraphs[2].GetText().EndsWith("Line 3\f"));
                break;
            }
            //ExEnd
        }
        public void TrailSpaces(TxtLeadingSpacesOptions txtLeadingSpacesOptions, TxtTrailingSpacesOptions txtTrailingSpacesOptions)
        {
            //ExStart
            //ExFor:TxtLoadOptions.TrailingSpacesOptions
            //ExFor:TxtLoadOptions.LeadingSpacesOptions
            //ExFor:TxtTrailingSpacesOptions
            //ExFor:TxtLeadingSpacesOptions
            //ExSummary:Shows how to trim whitespace when loading plaintext documents.
            string textDoc = "      Line 1 \n" +
                             "    Line 2   \n" +
                             " Line 3       ";

            TxtLoadOptions loadOptions = new TxtLoadOptions
            {
                LeadingSpacesOptions  = txtLeadingSpacesOptions,
                TrailingSpacesOptions = txtTrailingSpacesOptions
            };

            // Load the document while applying LoadOptions as a parameter and verify the result
            Document doc = new Document(new MemoryStream(Encoding.UTF8.GetBytes(textDoc)), loadOptions);

            ParagraphCollection paragraphs = doc.FirstSection.Body.Paragraphs;

            switch (txtLeadingSpacesOptions)
            {
            case TxtLeadingSpacesOptions.ConvertToIndent:
                Assert.AreEqual(37.8d, paragraphs[0].ParagraphFormat.FirstLineIndent);
                Assert.AreEqual(25.2d, paragraphs[1].ParagraphFormat.FirstLineIndent);
                Assert.AreEqual(6.3d, paragraphs[2].ParagraphFormat.FirstLineIndent);

                Assert.True(paragraphs[0].GetText().StartsWith("Line 1"));
                Assert.True(paragraphs[1].GetText().StartsWith("Line 2"));
                Assert.True(paragraphs[2].GetText().StartsWith("Line 3"));
                break;

            case TxtLeadingSpacesOptions.Preserve:
                Assert.True(paragraphs.All(p => ((Paragraph)p).ParagraphFormat.FirstLineIndent == 0.0d));

                Assert.True(paragraphs[0].GetText().StartsWith("      Line 1"));
                Assert.True(paragraphs[1].GetText().StartsWith("    Line 2"));
                Assert.True(paragraphs[2].GetText().StartsWith(" Line 3"));
                break;

            case TxtLeadingSpacesOptions.Trim:
                Assert.True(paragraphs.All(p => ((Paragraph)p).ParagraphFormat.FirstLineIndent == 0.0d));

                Assert.True(paragraphs[0].GetText().StartsWith("Line 1"));
                Assert.True(paragraphs[1].GetText().StartsWith("Line 2"));
                Assert.True(paragraphs[2].GetText().StartsWith("Line 3"));
                break;
            }

            switch (txtTrailingSpacesOptions)
            {
            case TxtTrailingSpacesOptions.Preserve:
                Assert.True(paragraphs[0].GetText().EndsWith("Line 1 \r"));
                Assert.True(paragraphs[1].GetText().EndsWith("Line 2   \r"));
                Assert.True(paragraphs[2].GetText().EndsWith("Line 3       \f"));
                break;

            case TxtTrailingSpacesOptions.Trim:
                Assert.True(paragraphs[0].GetText().EndsWith("Line 1\r"));
                Assert.True(paragraphs[1].GetText().EndsWith("Line 2\r"));
                Assert.True(paragraphs[2].GetText().EndsWith("Line 3\f"));
                break;
            }
            //ExEnd
        }