createPDFFromMultipleImage static method

Future<CreatePDFFromMultipleImageResponse> createPDFFromMultipleImage({
  1. required List<String> paths,
  2. required String outputDirPath,
  3. int? maxWidth,
  4. int? maxHeight,
  5. bool? needImageCompressor,
})

For Creating a PDF from multiple image paths is a list of paths, example List

Implementation

static Future<CreatePDFFromMultipleImageResponse> createPDFFromMultipleImage(
    {required List<String> paths,
    required String outputDirPath,
    int? maxWidth,
    int? maxHeight,
    bool? needImageCompressor}) async {
  final Map<String, dynamic> params = <String, dynamic>{
    'paths': paths,
    'outputDirPath': outputDirPath,
    'needImageCompressor': needImageCompressor ?? true,
    'maxWidth': maxWidth ?? 360,
    'maxHeight': maxHeight ?? 360
  };

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

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

      if (!isImage) {
        createPDFFromMultipleImageResponse.value.status = Status.error;
        createPDFFromMultipleImageResponse.value.message =
            Status.errorMessageImage;
      } else {
        final String? response =
            await _channel.invokeMethod('createPDFFromMultipleImage', params);

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

  return createPDFFromMultipleImageResponse.value;
}