| | |
| | | int rectWidth = int.Parse(rectRegexResult.Groups[3].Value); |
| | | int rectHeight = int.Parse(rectRegexResult.Groups[4].Value); |
| | | |
| | | var fiEnum = fieldRegexResult.Groups; |
| | | |
| | | // 模板字符串 位置 字符宽高 |
| | | int fieldLocationX = int.Parse(fieldRegexResult.Groups[1].Value); |
| | |
| | | fieldWidth = fieldHeight; |
| | | } |
| | | |
| | | // 计算每行应该放多少字符(正确算法) |
| | | // 计算每行应该放多少字符 |
| | | int maxCharsPerLine = (int)Math.Ceiling((double)fieldValue.Length / lineCount); |
| | | |
| | | for (int i = 0; i < lineCount; i++) |
| | |
| | | // 起始位置 |
| | | int start = i * maxCharsPerLine; |
| | | |
| | | // 剩余多少字符(核心:保证不越界) |
| | | // 剩余多少字符 |
| | | int remaining = fieldValue.Length - start; |
| | | |
| | | if (remaining <= 0) |
| | | break; |
| | | |
| | | // 本次取几个字符(绝对安全) |
| | | // 本次取几个字符 |
| | | int take = Math.Min(maxCharsPerLine, remaining); |
| | | |
| | | // 截取当前行文本 |