text property

Future<String> text

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}");
}