paginate method
Implementation
List<String> paginate() {
final List<String> pages = [];
final TextPainter textPainter = TextPainter(
textDirection: TextDirection.ltr,
);
String remainingText = text;
while (remainingText.isNotEmpty) {
textPainter.text = TextSpan(text: remainingText, style: textStyle);
textPainter.layout(maxWidth: pageSize.width);
int endIndex = textPainter
.getPositionForOffset(
Offset(pageSize.width, pageSize.height),
)
.offset;
// Kelimeyi yarıda kesmemek için bir önceki boşluğa kadar geri git
while (endIndex > 0 && remainingText[endIndex - 1] != ' ') {
endIndex--;
}
if (endIndex == 0) {
break;
}
pages.add(remainingText.substring(0, endIndex).trim());
remainingText = remainingText.substring(endIndex).trim();
}
return pages;
}