text property
Gets the entire text content of the document.
Implementation
Future<String> get text async {
// Collecting missing pages
List<int> missingPagesNumbers = [];
_pages.forEach((page) {
if (page._text == null) {
missingPagesNumbers.add(page.number);
}
});
late List<String> missingPagesTexts;
// Reading missing pages, if any exists
if (missingPagesNumbers.isNotEmpty) {
try {
missingPagesTexts =
List<String>.from(await (_CHANNEL.invokeMethod('getDocText', {
"path": _file.path,
"missingPagesNumbers": missingPagesNumbers,
"password": _password
})));
} on Exception catch (e) {
return Future.error(e);
}
}
// Populating missing pages
for (var i = 0; i < missingPagesNumbers.length; i++) {
pageAt(missingPagesNumbers[i])._text = missingPagesTexts[i];
}
/// Returning the entire text, concatenating all pages
return _pages.fold<String>("", (pv, page) => "$pv${page._text}");
}