ConverFilePlugin.swift 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //
  2. // ConverFilePlugin.swift
  3. // Runner
  4. //
  5. // Copyright © 2014-2023 PDF Technologies, Inc. All Rights Reserved.
  6. //
  7. // THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
  8. // AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
  9. // UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
  10. // This notice may not be removed from this file.
  11. //
  12. import Foundation
  13. import ComPDFKit_Conversion
  14. class ConverFilePlugin{
  15. init(messenger : FlutterBinaryMessenger){
  16. let channel = FlutterEventChannel(name: "com.compdfkit.conversion.flutter.convert", binaryMessenger: messenger)
  17. channel.setStreamHandler(SwiftStreamHandler())
  18. }
  19. }
  20. class SwiftStreamHandler: NSObject,FlutterStreamHandler {
  21. var util:ConvertUtil?
  22. public func onListen(withArguments arguments: Any?, eventSink events: @escaping FlutterEventSink) -> FlutterError? {
  23. let convertData = arguments as! [String: String];
  24. let filePath = convertData[params_file_path] ?? "";
  25. let convertType = convertData[params_convert_type]!;
  26. let dataTag = String(convertData[params_data_tag]!);
  27. let queue = DispatchQueue(label: "com.compdfkit.conversion.flutter")
  28. queue.async {
  29. self.util = ConvertUtil()
  30. let options = self.util?.getConvertOptions(withArguments: arguments)
  31. self.util?.convert(options: options!, filePath: filePath, convertType: convertType) { progress, status, outputPath in
  32. events(["progress": progress, params_data_tag: dataTag, "status" : status])
  33. }
  34. }
  35. return nil
  36. }
  37. public func onCancel(withArguments arguments: Any?) -> FlutterError? {
  38. return nil
  39. }
  40. }