示例#1
0
 public void UnderlineJoinedSentenceUnit(Text[] sentenceArray, int unitStartPosition, int unitEndPosition)
 {
     for (int i = unitStartPosition; i < unitEndPosition; i++)
     {
         OpenXmlTextHelper.UnderlineWordRun(
             OpenXmlTextHelper.GetParentRunProperties(sentenceArray, i));
     }
 }
示例#2
0
        private Paragraph MoveSingleAdverbBeforeVBOrPASTorPRESUnit(
            Text[] sentenceArray, int adverbIndexPosition, int adverbBreakerPosition)
        {
            var VbPastPresPosition =
                _sentence.GetPositionOfClosestSpecifiedUnit(
                    sentenceArray, adverbIndexPosition, text => text.IsVbPastPres());

            var adverbUnit =
                sentenceArray
                .Skip(adverbIndexPosition)
                .Take(adverbBreakerPosition - adverbIndexPosition);

            Text[] beforeVbPastPres;
            Text[] afterVbPastPres;

            ArrayUtility.SplitArrayAtPosition(
                sentenceArray, VbPastPresPosition, out beforeVbPastPres, out afterVbPastPres);

            Text[] beforeADV;
            Text[] afterADV;

            ArrayUtility.SplitArrayAtPosition(
                afterVbPastPres, adverbIndexPosition, out beforeADV, out afterADV);

            var vbPastPres =
                OpenXmlTextHelper.RemoveUnitFromOriginalPosition(
                    beforeADV, t => t.IsAdverb());

            var arr =
                beforeVbPastPres
                .Concat(adverbUnit)
                .Concat(vbPastPres)
                .Concat(afterADV).ToArray();

            if (arr[arr.Length - 3].Text == " " &&
                (arr[arr.Length - 4].Text == " " ||
                 arr[arr.Length - 4].Text.EndsWith(" ")))
            {
                arr = arr.RemoveAt(arr.Length - 3);
            }

            var wordElements = OpenXmlHelper.BuildWordsIntoOpenXmlElement(arr);

            return(new Paragraph(wordElements));
        }