extractText method
Implementation
String extractText(String path,
{int startPage = 1,
int endPage = 0,
String textOutEnc = 'UTF-8',
String layout = 'rawOrder',
String? ownerPassword,
String? userPassword,
Allocator allocator = calloc}) {
var pathC = stringToNativeInt8(path, allocator: allocator);
var textOutEncC = stringToNativeInt8(textOutEnc, allocator: allocator);
var layoutC = stringToNativeInt8(layout, allocator: allocator);
// ignore: omit_local_variable_types
Pointer<Pointer<Int8>> textOut = allocator();
var _ownerPassword = ownerPassword != null
? stringToNativeInt8(ownerPassword, allocator: allocator)
: nullptr;
var _userPassword = userPassword != null
? stringToNativeInt8(userPassword, allocator: allocator)
: nullptr;
try {
var _logCallbackC = Pointer.fromFunction<Void Function(Pointer<Int8>)>(
_logCallbackExtractText);
var result = pdfToTextBindings!.extractText(
pathC,
startPage,
endPage,
textOutEncC,
layoutC,
textOut,
_logCallbackC,
_ownerPassword,
_userPassword);
var textResult = nativeInt8ToString(textOut.value);
if (result == 0) {
return textResult;
} else {
throw Exception('Error extracting text from PDF: $_lastError');
}
} catch (e) {
rethrow;
} finally {
if (ownerPassword != null) {
allocator.free(_ownerPassword);
}
if (userPassword != null) {
allocator.free(_userPassword);
}
allocator.free(pathC);
allocator.free(textOutEncC);
allocator.free(textOut);
}
}