KMPDFConvertManager.swift 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. //
  2. // KMPDFConvertManager.swift
  3. // PDF Master
  4. //
  5. // Created by tangchao on 2022/12/7.
  6. //
  7. import Cocoa
  8. class KMPDFConvertManager: NSObject {
  9. static let defaultManager = KMPDFConvertManager()
  10. var operationQueue: OperationQueue = OperationQueue()
  11. lazy var ocrLanguages: [COCRLanguage] = {
  12. return [.chinese, .chineseTraditional, .english, .japanese, .korean,
  13. // // Latin
  14. .serbian, .occitan, .danish, .german, .french, .italian, .spanish, .portuguese, .maori, .malay,
  15. .maltese, .dutch, .norwegian, .polish, .romanian, .slovak, .slovenian, .albanian, .swedish, .swahili,
  16. .tagalog, .turish, .uzbek, .vietnamese, .afrikaans, .azerbaijani, .bosnian, .czech, .welsh, .estonian,
  17. .irish, .croatian, .hungarian, .indonesian, .icelandic, .kurdish, .lithuanian, .latvian,
  18. // Devanagari
  19. // .marathi, .nepali, .hindi, .bihari, .maithili, .angika, .bhojpuri, .magahi, .nagpur, .newari,
  20. // .goanKonkani, .saudiArabia
  21. ]
  22. }()
  23. lazy var ocrLanguageStrings: [String] = {
  24. var array: [String] = []
  25. for ocrLanguage in self.ocrLanguages {
  26. array.append(self.ocrLanguageString(ocrLanguage: ocrLanguage))
  27. }
  28. return array
  29. }()
  30. override init() {
  31. super.init()
  32. operationQueue.maxConcurrentOperationCount = 1
  33. }
  34. func convert(convert: KMPDFConvert, completion: @escaping (_ finished: Bool, _ error: Error?) -> ()) {
  35. convert.callback = completion
  36. operationQueue.addOperation(convert)
  37. }
  38. func convert(convert: KMPDFConvert, progress:@escaping (Int)->Void, completion: @escaping (_ finished: Bool, _ error: Error?) -> ()) {
  39. convert.callback = completion
  40. convert.progress = progress
  41. operationQueue.addOperation(convert)
  42. }
  43. func cancel(convert: KMPDFConvert) {
  44. convert.cancel()
  45. self.operationQueue.cancelAllOperations()
  46. }
  47. public func ocrLanguageString(ocrLanguage: COCRLanguage) -> String {
  48. switch ocrLanguage {
  49. case .chinese:
  50. return NSLocalizedString("Chinese", comment: "")
  51. case .chineseTraditional:
  52. return NSLocalizedString("Chinese Traditional", comment: "")
  53. case .english:
  54. return NSLocalizedString("English", comment: "")
  55. case .japanese:
  56. return NSLocalizedString("Japanese", comment: "")
  57. case .korean:
  58. return NSLocalizedString("Kroean", comment: "")
  59. /// Latin
  60. case .serbian:
  61. return NSLocalizedString("Serbian", comment: "")
  62. case .occitan:
  63. return NSLocalizedString("Occitan", comment: "")
  64. case .danish:
  65. return NSLocalizedString("Danish", comment: "")
  66. case .german:
  67. return NSLocalizedString("German", comment: "")
  68. case .french:
  69. return NSLocalizedString("French", comment: "")
  70. case .italian:
  71. return NSLocalizedString("Italian", comment: "")
  72. case .spanish:
  73. return NSLocalizedString("Spanish", comment: "")
  74. case .portuguese:
  75. return NSLocalizedString("Portuguese", comment: "")
  76. case .maori:
  77. return NSLocalizedString("Maori", comment: "")
  78. case .malay:
  79. return NSLocalizedString("Malay", comment: "")
  80. case .maltese:
  81. return NSLocalizedString("Maltese", comment: "")
  82. case .dutch:
  83. return NSLocalizedString("Dutch", comment: "")
  84. case .norwegian:
  85. return NSLocalizedString("Norwegian", comment: "")
  86. case .polish:
  87. return NSLocalizedString("Polish", comment: "")
  88. case .romanian:
  89. return NSLocalizedString("Romanian", comment: "")
  90. case .slovak:
  91. return NSLocalizedString("Slovak", comment: "")
  92. case .slovenian:
  93. return NSLocalizedString("Slovenian", comment: "")
  94. case .albanian:
  95. return NSLocalizedString("Albanian", comment: "")
  96. case .swedish:
  97. return NSLocalizedString("Swedish", comment: "")
  98. case .swahili:
  99. return NSLocalizedString("Swahili", comment: "")
  100. case .tagalog:
  101. return NSLocalizedString("Tagalog", comment: "")
  102. case .turish:
  103. return NSLocalizedString("Turish", comment: "")
  104. case .uzbek:
  105. return NSLocalizedString("Uzbek", comment: "")
  106. case .vietnamese:
  107. return NSLocalizedString("Vietnamese", comment: "")
  108. case .afrikaans:
  109. return NSLocalizedString("Afrikaans", comment: "")
  110. case .azerbaijani:
  111. return NSLocalizedString("Azerbaijani", comment: "")
  112. case .bosnian:
  113. return NSLocalizedString("Bosnian", comment: "")
  114. case .czech:
  115. return NSLocalizedString("Czech", comment: "")
  116. case .welsh:
  117. return NSLocalizedString("Welsh", comment: "")
  118. case .estonian:
  119. return NSLocalizedString("Estonian", comment: "")
  120. case .irish:
  121. return NSLocalizedString("Irish", comment: "")
  122. case .croatian:
  123. return NSLocalizedString("Croatian", comment: "")
  124. case .hungarian:
  125. return NSLocalizedString("Hungarian", comment: "")
  126. case .indonesian:
  127. return NSLocalizedString("Indonesian", comment: "")
  128. case .icelandic:
  129. return NSLocalizedString("Icelandic", comment: "")
  130. case .kurdish:
  131. return NSLocalizedString("Kurdish", comment: "")
  132. case .lithuanian:
  133. return NSLocalizedString("Lithuanian", comment: "")
  134. case .latvian:
  135. return NSLocalizedString("Latvian", comment: "")
  136. /// Devanagari
  137. case .marathi:
  138. return NSLocalizedString("Marathi", comment: "")
  139. case .nepali:
  140. return NSLocalizedString("Nepali", comment: "")
  141. case .hindi:
  142. return NSLocalizedString("Hindi", comment: "")
  143. case .bihari:
  144. return NSLocalizedString("Bihari", comment: "")
  145. case .maithili:
  146. return NSLocalizedString("Maithili", comment: "")
  147. case .angika:
  148. return NSLocalizedString("Angika", comment: "")
  149. case .bhojpuri:
  150. return NSLocalizedString("Bhojpuri", comment: "")
  151. case .magahi:
  152. return NSLocalizedString("Magahi", comment: "")
  153. case .nagpur:
  154. return NSLocalizedString("Nagpur", comment: "")
  155. case .newari:
  156. return NSLocalizedString("Newari", comment: "")
  157. case .goanKonkani:
  158. return NSLocalizedString("GoanKonkani", comment: "")
  159. case .saudiArabia:
  160. return NSLocalizedString("SaudiArabia", comment: "")
  161. }
  162. }
  163. }