KMEnumExtensions.swift 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. //
  2. // KMEnumExtensions.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by tangchao on 2023/7/14.
  6. //
  7. import Foundation
  8. @objc enum KMSubscribeWaterMarkType: Int {
  9. case none = 0
  10. case stamp = 1
  11. case link
  12. case sign
  13. case editText
  14. case editImage
  15. case insert
  16. case extract
  17. case replace
  18. case split
  19. case delete
  20. case rotate
  21. case copy
  22. case toWord
  23. case toExcel
  24. case toPPT
  25. case toRTF
  26. case toCSV
  27. case toHTML
  28. case toText
  29. case toImage
  30. case compress
  31. case merge
  32. case setPassword
  33. case removePassword
  34. case crop
  35. case aiTranslate
  36. case aiRewrite
  37. case aiCorrect
  38. case save
  39. case searchReplace
  40. case adsWeb
  41. case openTab
  42. case imageToPDF
  43. case batch
  44. case pdfEdit
  45. case print
  46. case ocr
  47. case fileCompare
  48. case watermark
  49. case background
  50. case headerfooter
  51. case bates
  52. case redact
  53. case digitalSign
  54. case form
  55. case share
  56. case measure
  57. case themeColor
  58. case invalid
  59. func isConvertType() -> Bool {
  60. if (self == .toWord || self == .toExcel || self == .toPPT || self == .toRTF || self == .toCSV || self == .toHTML || self == .toText || self == .toImage) {
  61. return true
  62. }
  63. return false
  64. }
  65. }
  66. protocol KMSubscribeWaterMarkTypeConvertProtocol {
  67. func toSubscribeWaterMarkType() -> KMSubscribeWaterMarkType
  68. }
  69. extension KMToolbarType: KMSubscribeWaterMarkTypeConvertProtocol {
  70. func toSubscribeWaterMarkType() -> KMSubscribeWaterMarkType {
  71. switch self {
  72. case .word:
  73. return .toWord
  74. case .excel:
  75. return .toExcel
  76. case .ppt:
  77. return .toPPT
  78. case .rtf:
  79. return .toRTF
  80. case .csv:
  81. return .toCSV
  82. case .html:
  83. return .toHTML
  84. case .conversion_text:
  85. return .toText
  86. case .conversion_image:
  87. return .toImage
  88. case .compress:
  89. return .compress
  90. case .merge:
  91. return .merge
  92. default:
  93. return .none
  94. }
  95. }
  96. }
  97. extension KMPDFConvertType: KMSubscribeWaterMarkTypeConvertProtocol {
  98. func toSubscribeWaterMarkType() -> KMSubscribeWaterMarkType {
  99. switch self {
  100. case .word:
  101. return .toWord
  102. case .excel:
  103. return .toExcel
  104. case .ppt:
  105. return .toPPT
  106. case .rtf:
  107. return .toRTF
  108. case .csv:
  109. return .toCSV
  110. case .html:
  111. return .toHTML
  112. case .text:
  113. return .toText
  114. case .image:
  115. return .toImage
  116. default:
  117. return .none
  118. }
  119. }
  120. }
  121. extension KMItemKey: KMSubscribeWaterMarkTypeConvertProtocol {
  122. func toSubscribeWaterMarkType() -> KMSubscribeWaterMarkType {
  123. switch self {
  124. case .leftRotate:
  125. return .rotate
  126. case .rightRotate:
  127. return .rotate
  128. case .paste:
  129. return .copy
  130. case .delete:
  131. return .delete
  132. default:
  133. return .none
  134. }
  135. }
  136. }
  137. extension KMPageEditType: KMSubscribeWaterMarkTypeConvertProtocol {
  138. func toSubscribeWaterMarkType() -> KMSubscribeWaterMarkType {
  139. switch self {
  140. case .leftRotate:
  141. return .rotate
  142. case .rightRotate:
  143. return .rotate
  144. case .insert:
  145. return .insert
  146. case .extract:
  147. return .extract
  148. case .replace:
  149. return .replace
  150. case .split:
  151. return .split
  152. case .reverse:
  153. return .none
  154. case .delete:
  155. return .delete
  156. case .paste:
  157. return .copy
  158. default:
  159. return .none
  160. }
  161. }
  162. }