mergeMultiplePDF static method

Future<MergeMultiplePDFResponse> mergeMultiplePDF({
  1. required List<String> paths,
  2. required String outputDirPath,
})

For Merger multiple PDF paths is a list of paths, example List

Implementation

static Future<MergeMultiplePDFResponse> mergeMultiplePDF(
    {required List<String> paths, required String outputDirPath}) async {
  final Map<String, dynamic> params = <String, dynamic>{
    'paths': paths,
    'outputDirPath': outputDirPath
  };

  if (paths.length == 0) {
    mergeMultiplePDFResponse.value.status = Status.error;
    mergeMultiplePDFResponse.value.message = Status.errorMessage;
  } else {
    try {
      bool isPDF = true;

      for (int i = 0; i < paths.length; i++) {
        if (!GetUtils.isPDF(paths[i])) {
          isPDF = false;
        }
      }

      if (!isPDF) {
        mergeMultiplePDFResponse.value.status = Status.error;
        mergeMultiplePDFResponse.value.message = Status.errorMessagePDF;
      } else {
        final String? response =
            await _channel.invokeMethod('mergeMultiplePDF', params);

        if (response != "error") {
          mergeMultiplePDFResponse.value.status = Status.success;
          mergeMultiplePDFResponse.value.message = Status.successMessage;
          mergeMultiplePDFResponse.value.response = response;
        } else {
          mergeMultiplePDFResponse.value.status = Status.error;
          mergeMultiplePDFResponse.value.message = Status.errorMessage;
        }
      }
    } on Exception catch (exception) {
      mergeMultiplePDFResponse.value.status = Status.error;
      mergeMultiplePDFResponse.value.message = exception.toString();
    } catch (e) {
      mergeMultiplePDFResponse.value.status = Status.error;
      mergeMultiplePDFResponse.value.message = e.toString();
    }
  }

  return mergeMultiplePDFResponse.value;
}