Example #1
0
        public TempTextLineCopyContext(TextLineBox textline, out Typography.Text.TextBufferSpan buffSpan)
        {
            _tempStBuilder = StringBuilderPool <StringBuilderPoolOwner> .GetFreeStringBuilder();

            textline.CopyLineContent(_tempStBuilder);

            int len = _tempStBuilder.Length;

            char[] charBuffer = new char[len];
            _tempStBuilder.CopyTo(0, charBuffer, 0, len);
            buffSpan = new Typography.Text.TextBufferSpan(charBuffer);
        }
Example #2
0
        Size MeasureCopyRunLength(CopyRun copyRun)
        {
            //IAdvanceTextService txServices = GlobalTextService.AdvanceTextService;

            char[] mybuffer = copyRun.RawContent;
            //if (txServices.SupportsWordBreak)
            //{
            var textBufferSpan = new Typography.Text.TextBufferSpan(mybuffer);

            _lineSegs.Clear();
            _wordVisitor.SetLineSegmentList(_lineSegs);
            Typography.Text.GlobalTextService.TxtClient.BreakToLineSegments(textBufferSpan, _wordVisitor);

            var result = new TextSpanMeasureResult();

            result.outputXAdvances = new int[mybuffer.Length];

            Typography.Text.GlobalTextService.TxtClient.CalculateUserCharGlyphAdvancePos(textBufferSpan, _lineSegs,
                                                                                         DefaultRunStyle.ReqFont,
                                                                                         ref result);

            return(new Size(result.outputTotalW, result.lineHeight));
            //}
            //else
            //{


            //    var textBufferSpan = new Typography.Text.TextBufferSpan(mybuffer);

            //    var result = new TextSpanMeasureResult();
            //    result.outputXAdvances = new int[mybuffer.Length];

            //    txServices.CalculateUserCharGlyphAdvancePos(textBufferSpan,
            //        DefaultRunStyle.ReqFont,
            //        ref result);

            //    return new Size(result.outputTotalW, result.lineHeight);
            //}
        }