|
@@ -50,32 +50,42 @@ class KMWatermarkManager: NSObject {
|
|
|
|
|
|
let watermarkPlistPath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.applicationSupportDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).last?.stringByAppendingPathComponent(Bundle.main.bundleIdentifier!).stringByAppendingPathComponent("watermark").stringByAppendingPathComponent("watermark.plist")
|
|
|
|
|
|
+ let watermarkImageFolder = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.applicationSupportDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).last?.stringByAppendingPathComponent(Bundle.main.bundleIdentifier!).stringByAppendingPathComponent("watermark").stringByAppendingPathComponent("image")
|
|
|
+
|
|
|
static let defaultManager = KMWatermarkManager()
|
|
|
|
|
|
var watermarks: Array<KMPDFWatermarkData> = []
|
|
|
|
|
|
override init() {
|
|
|
super.init()
|
|
|
+
|
|
|
+#if DEBUG
|
|
|
+ print("watermarkPlistPath=\(watermarkPlistPath ?? "")")
|
|
|
+#endif
|
|
|
+
|
|
|
+ if (!FileManager.default.fileExists(atPath: watermarkFolderPath!)) {
|
|
|
+ try?FileManager.default.createDirectory(atPath: watermarkFolderPath!, withIntermediateDirectories: true, attributes: nil)
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!FileManager.default.fileExists(atPath: watermarkImageFolder!)) {
|
|
|
+ let create: ()? = try?FileManager.default.createDirectory(atPath: watermarkImageFolder!, withIntermediateDirectories: false)
|
|
|
+ }
|
|
|
+
|
|
|
if (FileManager.default.fileExists(atPath: watermarkPlistPath!)) {
|
|
|
let dataDict = NSDictionary(contentsOfFile: watermarkPlistPath!)
|
|
|
for keyIndex in 0 ..< (dataDict?.allKeys.count ?? 0) {
|
|
|
let key: String = dataDict?.allKeys[keyIndex] as! String
|
|
|
- let watermarkDict: NSDictionary = dataDict?.object(forKey: key) as! NSDictionary
|
|
|
|
|
|
+ let watermarkDict: NSDictionary = dataDict?.object(forKey: key) as! NSDictionary
|
|
|
let model = parseDictionary(dict: watermarkDict)
|
|
|
- let image = self.drawImageAtpageRect(rect: CGRectMake(0, 0, 136, 181), data: model)
|
|
|
- model.resultImage = image
|
|
|
-
|
|
|
- self.watermarks.append(model)
|
|
|
+ watermarks.append(model)
|
|
|
}
|
|
|
- self.watermarks.sort(){$0.tag > $1.tag}
|
|
|
-
|
|
|
-#if DEBUG
|
|
|
- print("watermarkPlistPath=\(watermarkPlistPath ?? "")")
|
|
|
-#endif
|
|
|
+ watermarks.sort(){$0.tag > $1.tag}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //MARK: - 增删改查
|
|
|
func addWatermark(watermark: KMPDFWatermarkData) -> Bool {
|
|
|
if (!FileManager.default.fileExists(atPath: watermarkFolderPath!)) {
|
|
|
let create: ()? = try?FileManager.default.createDirectory(atPath: watermarkFolderPath!, withIntermediateDirectories: true, attributes: nil)
|
|
@@ -85,10 +95,7 @@ class KMWatermarkManager: NSObject {
|
|
|
}
|
|
|
|
|
|
if (!FileManager.default.fileExists(atPath: watermarkPlistPath!)) {
|
|
|
- let create = try?FileManager.default.createFile(atPath: watermarkPlistPath!, contents: nil)
|
|
|
- if (create == nil) {
|
|
|
- return false
|
|
|
- }
|
|
|
+ FileManager.default.createFile(atPath: watermarkPlistPath!, contents: nil)
|
|
|
}
|
|
|
|
|
|
let dict = NSDictionary(contentsOfFile: watermarkPlistPath!)
|
|
@@ -101,10 +108,6 @@ class KMWatermarkManager: NSObject {
|
|
|
|
|
|
let watermarkDict = self.parseWaterMark(model: watermark)
|
|
|
if (watermarkDict.isEmpty) {
|
|
|
- let alert = NSAlert()
|
|
|
- alert.alertStyle = .critical
|
|
|
- alert.messageText = NSLocalizedString("文件\(watermark.imagePath?.lastPathComponent)已损坏", comment: "")
|
|
|
- alert.runModal()
|
|
|
return false
|
|
|
}
|
|
|
|
|
@@ -122,6 +125,7 @@ class KMWatermarkManager: NSObject {
|
|
|
} else {
|
|
|
self.watermarks.insert(watermark, at: 0)
|
|
|
}
|
|
|
+ watermark.updatePreviewImage()
|
|
|
}
|
|
|
return result
|
|
|
}
|
|
@@ -135,10 +139,7 @@ class KMWatermarkManager: NSObject {
|
|
|
}
|
|
|
|
|
|
if (!FileManager.default.fileExists(atPath: watermarkPlistPath!)) {
|
|
|
- let create = try?FileManager.default.createFile(atPath: watermarkPlistPath!, contents: nil)
|
|
|
- if (create == nil) {
|
|
|
- return false
|
|
|
- }
|
|
|
+ FileManager.default.createFile(atPath: watermarkPlistPath!, contents: nil)
|
|
|
}
|
|
|
|
|
|
var flagModel: KMPDFWatermarkData!
|
|
@@ -163,20 +164,17 @@ class KMWatermarkManager: NSObject {
|
|
|
|
|
|
let watermarkDict = self.parseWaterMark(model: watermark)
|
|
|
if (watermarkDict.isEmpty) {
|
|
|
- let alert = NSAlert()
|
|
|
- alert.alertStyle = .critical
|
|
|
- alert.messageText = NSLocalizedString("文件\(watermark.imagePath?.lastPathComponent)已损坏", comment: "")
|
|
|
- alert.runModal()
|
|
|
return false
|
|
|
}
|
|
|
|
|
|
newDict.setObject(watermarkDict, forKey: flagModel.tag as NSCopying)
|
|
|
let result = newDict.write(toFile: watermarkPlistPath!, atomically: true)
|
|
|
if (result) {
|
|
|
- let index = self.watermarks.index(of: flagModel)
|
|
|
- self.watermarks[index!] = watermark
|
|
|
+ if let index = self.watermarks.firstIndex(of: flagModel) {
|
|
|
+ self.watermarks[index] = watermark
|
|
|
+ }
|
|
|
+ watermark.updatePreviewImage()
|
|
|
}
|
|
|
-
|
|
|
return result
|
|
|
}
|
|
|
|
|
@@ -232,72 +230,128 @@ class KMWatermarkManager: NSObject {
|
|
|
return result
|
|
|
}
|
|
|
|
|
|
- func removeAllTextWatermarks() -> Bool {
|
|
|
- if (!FileManager.default.fileExists(atPath: watermarkPlistPath!)) {
|
|
|
- return false
|
|
|
- }
|
|
|
+ //MARK: - private
|
|
|
+ func setDictToWatermarK(dict: NSDictionary, _ model: KMPDFWatermarkData) {
|
|
|
|
|
|
- let dictionary = NSDictionary(contentsOfFile: watermarkPlistPath!)
|
|
|
- var newDictionary: NSMutableDictionary!
|
|
|
- if (dictionary != nil) {
|
|
|
- newDictionary = NSMutableDictionary(dictionary: dictionary!)
|
|
|
- } else {
|
|
|
- newDictionary = NSMutableDictionary()
|
|
|
- }
|
|
|
+ model.watermarkType = (dict.object(forKey: KMWatermarkKey.watermarkType.rawValue) as? CPDFWatermarkType) ?? .text
|
|
|
|
|
|
- let count = self.watermarks.count-1
|
|
|
- var deleteArray: Array<KMPDFWatermarkData> = []
|
|
|
- for i in 0 ... count {
|
|
|
- let model = self.watermarks[i]
|
|
|
- if (model.watermarkType == .text) {
|
|
|
- newDictionary.removeObject(forKey: model.tag as Any)
|
|
|
- deleteArray.append(model)
|
|
|
+ model.text = (dict.object(forKey: KMWatermarkKey.text.rawValue) as? String)
|
|
|
+ model.fontName = (dict.object(forKey: KMWatermarkKey.textFontName.rawValue) as? String) ?? ""
|
|
|
+ model.fontStyle = (dict.object(forKey: KMWatermarkKey.textfontStyle.rawValue) as? String) ?? ""
|
|
|
+ model.fontSize = (dict.object(forKey: KMWatermarkKey.textFontSize.rawValue) as? CGFloat) ?? 12
|
|
|
+
|
|
|
+ if let pathValue = dict.object(forKey: KMWatermarkKey.imagePath.rawValue) {
|
|
|
+ let path = watermarkFolderPath?.stringByAppendingPathComponent(pathValue as! String)
|
|
|
+ if (FileManager.default.fileExists(atPath: path!)) {
|
|
|
+ model.imagePath = path ?? ""
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- let result = newDictionary.write(toFile: watermarkPlistPath!, atomically: true)
|
|
|
- if (result) {
|
|
|
- for model in deleteArray {
|
|
|
- self.watermarks.removeObject(model)
|
|
|
- }
|
|
|
+
|
|
|
+ model.isScale = (dict.object(forKey: KMWatermarkKey.isScale.rawValue) as? Bool) ?? false
|
|
|
+ model.scale = (dict.object(forKey: KMWatermarkKey.scale.rawValue) as? CGFloat) ?? 1
|
|
|
+ model.rotation = dict.object(forKey: KMWatermarkKey.rotate.rawValue) as? CGFloat ?? 0
|
|
|
+ model.opacity = (dict.object(forKey: KMWatermarkKey.opacity.rawValue) as? CGFloat) ?? 1
|
|
|
+ model.verticalPosition = (dict.object(forKey: KMWatermarkKey.verticalMode.rawValue) as? CPDFWatermarkVerticalPosition) ?? .center
|
|
|
+ model.ty = dict.object(forKey: KMWatermarkKey.verticalSpace.rawValue) as? CGFloat ?? 0
|
|
|
+ model.horizontalPosition = (dict.object(forKey: KMWatermarkKey.horizontalMode.rawValue) as? CPDFWatermarkHorizontalPosition) ?? .center
|
|
|
+ model.tx = dict.object(forKey: KMWatermarkKey.horizontalSpace.rawValue) as? CGFloat ?? 0
|
|
|
+ if let textColorKey = dict.object(forKey: KMWatermarkKey.textColor.rawValue) as? String {
|
|
|
+ model.textColor = NSColor.km_init(hex: textColorKey)
|
|
|
+ } else {
|
|
|
+ let red: CGFloat = dict.object(forKey: KMWatermarkKey.red.rawValue) as? CGFloat ?? 0
|
|
|
+ let green: CGFloat = dict.object(forKey: KMWatermarkKey.green.rawValue) as? CGFloat ?? 0
|
|
|
+ let blue: CGFloat = dict.object(forKey: KMWatermarkKey.blue.rawValue) as? CGFloat ?? 0
|
|
|
+ model.textColor = NSColor(red: red, green: green, blue: blue, alpha: 1.0)
|
|
|
}
|
|
|
+ model.isFront = (dict.object(forKey: KMWatermarkKey.isFront.rawValue) as? Bool) ?? false
|
|
|
+ model.isTilePage = (dict.object(forKey: KMWatermarkKey.isTile.rawValue) as? Bool) ?? false
|
|
|
+ model.horizontalSpacing = (dict.object(forKey: KMWatermarkKey.tileHorizontalSpace.rawValue) as? CGFloat) ?? 0
|
|
|
+ model.verticalSpacing = (dict.object(forKey: KMWatermarkKey.tileVerticalSpace.rawValue) as? CGFloat) ?? 0
|
|
|
+ model.tag = (dict.object(forKey: KMWatermarkKey.tag.rawValue) as? String) ?? ""
|
|
|
+ model.watermarkName = (dict.object(forKey: KMWatermarkKey.watermarkName.rawValue) as? String) ?? ""
|
|
|
|
|
|
- return result
|
|
|
}
|
|
|
|
|
|
- func removeAllFileWatermarks() -> Bool {
|
|
|
- if (!FileManager.default.fileExists(atPath: watermarkPlistPath!)) {
|
|
|
- return false
|
|
|
+ //MARK: - Parse
|
|
|
+ func parseWaterMark(model: KMPDFWatermarkData) -> Dictionary<String, Any> {
|
|
|
+
|
|
|
+ var dict: [String : Any] = [:]
|
|
|
+
|
|
|
+ if model.watermarkType == .text {
|
|
|
+ dict[KMWatermarkKey.watermarkType.rawValue] = "0"
|
|
|
+ } else if model.watermarkType == .image {
|
|
|
+ dict[KMWatermarkKey.watermarkType.rawValue] = "1"
|
|
|
}
|
|
|
|
|
|
- let dictionary = NSDictionary(contentsOfFile: watermarkPlistPath!)
|
|
|
- var newDictionary: NSMutableDictionary!
|
|
|
- if (dictionary != nil) {
|
|
|
- newDictionary = NSMutableDictionary(dictionary: dictionary!)
|
|
|
- } else {
|
|
|
- newDictionary = NSMutableDictionary()
|
|
|
+ if let text = model.text {
|
|
|
+ dict[KMWatermarkKey.text.rawValue] = text
|
|
|
+ }
|
|
|
+ dict[KMWatermarkKey.textFontName.rawValue] = model.fontName
|
|
|
+ dict[KMWatermarkKey.textfontStyle.rawValue] = model.fontStyle
|
|
|
+ dict[KMWatermarkKey.textFontSize.rawValue] = model.fontSize
|
|
|
+ if let imagePath = model.imagePath {
|
|
|
+ dict[KMWatermarkKey.imagePath.rawValue] = imagePath
|
|
|
}
|
|
|
+ dict[KMWatermarkKey.isFront.rawValue] = model.isFront
|
|
|
+ dict[KMWatermarkKey.isScale.rawValue] = model.isScale
|
|
|
+ dict[KMWatermarkKey.scale.rawValue] = model.scale
|
|
|
+ dict[KMWatermarkKey.opacity.rawValue] = model.opacity
|
|
|
+ dict[KMWatermarkKey.rotate.rawValue] = model.rotation
|
|
|
+ dict[KMWatermarkKey.verticalMode.rawValue] = model.verticalPosition.rawValue
|
|
|
+ dict[KMWatermarkKey.verticalSpace.rawValue] = model.ty
|
|
|
+ dict[KMWatermarkKey.horizontalMode.rawValue] = model.horizontalPosition.rawValue
|
|
|
+ dict[KMWatermarkKey.horizontalSpace.rawValue] = model.tx
|
|
|
+ dict[KMWatermarkKey.textColor.rawValue] = model.textColor.toHex()
|
|
|
+ dict[KMWatermarkKey.isTile.rawValue] = model.isTilePage
|
|
|
+ dict[KMWatermarkKey.tileVerticalSpace.rawValue] = model.verticalSpacing
|
|
|
+ dict[KMWatermarkKey.tileHorizontalSpace.rawValue] = model.horizontalSpacing
|
|
|
+ dict[KMWatermarkKey.tag.rawValue] = model.tag
|
|
|
+ dict[KMWatermarkKey.watermarkName.rawValue] = model.watermarkName
|
|
|
|
|
|
- let count = self.watermarks.count-1
|
|
|
- var deleteArray: Array<KMPDFWatermarkData> = []
|
|
|
- for i in 0 ... count {
|
|
|
- let model = self.watermarks[i]
|
|
|
- if (model.image != nil) {
|
|
|
- newDictionary.removeObject(forKey: model.tag as Any)
|
|
|
- deleteArray.append(model)
|
|
|
- }
|
|
|
+ return dict
|
|
|
+ }
|
|
|
+
|
|
|
+ private func parseDictionary(dict: NSDictionary) -> KMPDFWatermarkData {
|
|
|
+ let model = KMPDFWatermarkData()
|
|
|
+
|
|
|
+ model.watermarkType = (dict.object(forKey: KMWatermarkKey.watermarkType.rawValue) as? CPDFWatermarkType) ?? .text
|
|
|
+
|
|
|
+ model.text = (dict.object(forKey: KMWatermarkKey.text.rawValue) as? String)
|
|
|
+ model.fontName = (dict.object(forKey: KMWatermarkKey.textFontName.rawValue) as? String) ?? ""
|
|
|
+ model.fontStyle = (dict.object(forKey: KMWatermarkKey.textfontStyle.rawValue) as? String) ?? ""
|
|
|
+ model.fontSize = (dict.object(forKey: KMWatermarkKey.textFontSize.rawValue) as? CGFloat) ?? 12
|
|
|
+
|
|
|
+ if let pathValue = dict.object(forKey: KMWatermarkKey.imagePath.rawValue) {
|
|
|
+ model.imagePath = pathValue as? String
|
|
|
}
|
|
|
|
|
|
- let result = newDictionary.write(toFile: watermarkPlistPath!, atomically: true)
|
|
|
- if (result) {
|
|
|
- for model in deleteArray {
|
|
|
- self.watermarks.removeObject(model)
|
|
|
- }
|
|
|
+ model.isScale = (dict.object(forKey: KMWatermarkKey.isScale.rawValue) as? Bool) ?? false
|
|
|
+ model.scale = (dict.object(forKey: KMWatermarkKey.scale.rawValue) as? CGFloat) ?? 1
|
|
|
+ model.rotation = dict.object(forKey: KMWatermarkKey.rotate.rawValue) as? CGFloat ?? 0
|
|
|
+ model.opacity = (dict.object(forKey: KMWatermarkKey.opacity.rawValue) as? CGFloat) ?? 1
|
|
|
+ model.verticalPosition = (dict.object(forKey: KMWatermarkKey.verticalMode.rawValue) as? CPDFWatermarkVerticalPosition) ?? .center
|
|
|
+ model.ty = dict.object(forKey: KMWatermarkKey.verticalSpace.rawValue) as? CGFloat ?? 0
|
|
|
+ model.horizontalPosition = (dict.object(forKey: KMWatermarkKey.horizontalMode.rawValue) as? CPDFWatermarkHorizontalPosition) ?? .center
|
|
|
+ model.tx = dict.object(forKey: KMWatermarkKey.horizontalSpace.rawValue) as? CGFloat ?? 0
|
|
|
+ if let textColorKey = dict.object(forKey: KMWatermarkKey.textColor.rawValue) as? String {
|
|
|
+ model.textColor = NSColor.km_init(hex: textColorKey)
|
|
|
+ } else {
|
|
|
+ let red: CGFloat = dict.object(forKey: KMWatermarkKey.red.rawValue) as? CGFloat ?? 0
|
|
|
+ let green: CGFloat = dict.object(forKey: KMWatermarkKey.green.rawValue) as? CGFloat ?? 0
|
|
|
+ let blue: CGFloat = dict.object(forKey: KMWatermarkKey.blue.rawValue) as? CGFloat ?? 0
|
|
|
+ model.textColor = NSColor(red: red, green: green, blue: blue, alpha: 1.0)
|
|
|
}
|
|
|
+ model.isFront = (dict.object(forKey: KMWatermarkKey.isFront.rawValue) as? Bool) ?? false
|
|
|
+ model.isTilePage = (dict.object(forKey: KMWatermarkKey.isTile.rawValue) as? Bool) ?? false
|
|
|
+ model.horizontalSpacing = (dict.object(forKey: KMWatermarkKey.tileHorizontalSpace.rawValue) as? CGFloat) ?? 0
|
|
|
+ model.verticalSpacing = (dict.object(forKey: KMWatermarkKey.tileVerticalSpace.rawValue) as? CGFloat) ?? 0
|
|
|
+ model.tag = (dict.object(forKey: KMWatermarkKey.tag.rawValue) as? String) ?? ""
|
|
|
+ model.watermarkName = (dict.object(forKey: KMWatermarkKey.watermarkName.rawValue) as? String) ?? ""
|
|
|
|
|
|
- return result
|
|
|
+ return model
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ //MARK: - Getter
|
|
|
func drawImageAtpageRect(rect: NSRect, data: KMPDFWatermarkData) -> NSImage? {
|
|
|
var size = NSZeroSize
|
|
|
let text: String = data.text ?? ""
|
|
@@ -498,129 +552,12 @@ class KMWatermarkManager: NSObject {
|
|
|
return image
|
|
|
}
|
|
|
|
|
|
- //MARK: - private
|
|
|
- func setDictToWatermarK(dict: NSDictionary, _ model: KMPDFWatermarkData) {
|
|
|
-
|
|
|
- model.watermarkType = (dict.object(forKey: KMWatermarkKey.watermarkType.rawValue) as? CPDFWatermarkType) ?? .text
|
|
|
-
|
|
|
- model.text = (dict.object(forKey: KMWatermarkKey.text.rawValue) as? String)
|
|
|
- model.fontName = (dict.object(forKey: KMWatermarkKey.textFontName.rawValue) as? String) ?? ""
|
|
|
- model.fontStyle = (dict.object(forKey: KMWatermarkKey.textfontStyle.rawValue) as? String) ?? ""
|
|
|
- model.fontSize = (dict.object(forKey: KMWatermarkKey.textFontSize.rawValue) as? CGFloat) ?? 12
|
|
|
-
|
|
|
- if let pathValue = dict.object(forKey: KMWatermarkKey.imagePath.rawValue) {
|
|
|
- let path = watermarkFolderPath?.stringByAppendingPathComponent(pathValue as! String)
|
|
|
- if (FileManager.default.fileExists(atPath: path!)) {
|
|
|
- model.imagePath = path ?? ""
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- model.isScale = (dict.object(forKey: KMWatermarkKey.isScale.rawValue) as? Bool) ?? false
|
|
|
- model.scale = (dict.object(forKey: KMWatermarkKey.scale.rawValue) as? CGFloat) ?? 1
|
|
|
- model.rotation = dict.object(forKey: KMWatermarkKey.rotate.rawValue) as? CGFloat ?? 0
|
|
|
- model.opacity = (dict.object(forKey: KMWatermarkKey.opacity.rawValue) as? CGFloat) ?? 1
|
|
|
- model.verticalPosition = (dict.object(forKey: KMWatermarkKey.verticalMode.rawValue) as? CPDFWatermarkVerticalPosition) ?? .center
|
|
|
- model.ty = dict.object(forKey: KMWatermarkKey.verticalSpace.rawValue) as? CGFloat ?? 0
|
|
|
- model.horizontalPosition = (dict.object(forKey: KMWatermarkKey.horizontalMode.rawValue) as? CPDFWatermarkHorizontalPosition) ?? .center
|
|
|
- model.tx = dict.object(forKey: KMWatermarkKey.horizontalSpace.rawValue) as? CGFloat ?? 0
|
|
|
- if let textColorKey = dict.object(forKey: KMWatermarkKey.textColor.rawValue) as? String {
|
|
|
- model.textColor = NSColor.km_init(hex: textColorKey)
|
|
|
- } else {
|
|
|
- let red: CGFloat = dict.object(forKey: KMWatermarkKey.red.rawValue) as? CGFloat ?? 0
|
|
|
- let green: CGFloat = dict.object(forKey: KMWatermarkKey.green.rawValue) as? CGFloat ?? 0
|
|
|
- let blue: CGFloat = dict.object(forKey: KMWatermarkKey.blue.rawValue) as? CGFloat ?? 0
|
|
|
- model.textColor = NSColor(red: red, green: green, blue: blue, alpha: 1.0)
|
|
|
- }
|
|
|
- model.isFront = (dict.object(forKey: KMWatermarkKey.isFront.rawValue) as? Bool) ?? false
|
|
|
- model.isTilePage = (dict.object(forKey: KMWatermarkKey.isTile.rawValue) as? Bool) ?? false
|
|
|
- model.horizontalSpacing = (dict.object(forKey: KMWatermarkKey.tileHorizontalSpace.rawValue) as? CGFloat) ?? 0
|
|
|
- model.verticalSpacing = (dict.object(forKey: KMWatermarkKey.tileVerticalSpace.rawValue) as? CGFloat) ?? 0
|
|
|
- model.tag = (dict.object(forKey: KMWatermarkKey.tag.rawValue) as? String) ?? ""
|
|
|
- model.watermarkName = (dict.object(forKey: KMWatermarkKey.watermarkName.rawValue) as? String) ?? ""
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- func parseWaterMark(model: KMPDFWatermarkData) -> Dictionary<String, Any> {
|
|
|
-
|
|
|
- var dict: [String : Any] = [:]
|
|
|
-
|
|
|
- if model.watermarkType == .text {
|
|
|
- dict[KMWatermarkKey.watermarkType.rawValue] = "0"
|
|
|
- } else if model.watermarkType == .image {
|
|
|
- dict[KMWatermarkKey.watermarkType.rawValue] = "1"
|
|
|
- }
|
|
|
-
|
|
|
- if let text = model.text {
|
|
|
- dict[KMWatermarkKey.text.rawValue] = text
|
|
|
- }
|
|
|
- dict[KMWatermarkKey.textFontName.rawValue] = model.fontName
|
|
|
- dict[KMWatermarkKey.textfontStyle.rawValue] = model.fontStyle
|
|
|
- dict[KMWatermarkKey.textFontSize.rawValue] = model.fontSize
|
|
|
-
|
|
|
- if let imagePath = model.imagePath {
|
|
|
- dict[KMWatermarkKey.imagePath.rawValue] = model.imagePath
|
|
|
- }
|
|
|
-
|
|
|
- dict[KMWatermarkKey.isFront.rawValue] = model.isFront
|
|
|
- dict[KMWatermarkKey.isScale.rawValue] = model.isScale
|
|
|
- dict[KMWatermarkKey.scale.rawValue] = model.scale
|
|
|
- dict[KMWatermarkKey.opacity.rawValue] = model.opacity
|
|
|
- dict[KMWatermarkKey.rotate.rawValue] = model.rotation
|
|
|
- dict[KMWatermarkKey.verticalMode.rawValue] = model.verticalPosition.rawValue
|
|
|
- dict[KMWatermarkKey.verticalSpace.rawValue] = model.ty
|
|
|
- dict[KMWatermarkKey.horizontalMode.rawValue] = model.horizontalPosition.rawValue
|
|
|
- dict[KMWatermarkKey.horizontalSpace.rawValue] = model.tx
|
|
|
- dict[KMWatermarkKey.textColor.rawValue] = model.textColor.toHex()
|
|
|
- dict[KMWatermarkKey.isTile.rawValue] = model.isTilePage
|
|
|
- dict[KMWatermarkKey.tileVerticalSpace.rawValue] = model.verticalSpacing
|
|
|
- dict[KMWatermarkKey.tileHorizontalSpace.rawValue] = model.horizontalSpacing
|
|
|
- dict[KMWatermarkKey.tag.rawValue] = model.tag
|
|
|
- dict[KMWatermarkKey.watermarkName.rawValue] = model.watermarkName
|
|
|
-
|
|
|
- return dict
|
|
|
- }
|
|
|
-
|
|
|
- private func parseDictionary(dict: NSDictionary) -> KMPDFWatermarkData {
|
|
|
- let model = KMPDFWatermarkData()
|
|
|
-
|
|
|
- model.watermarkType = (dict.object(forKey: KMWatermarkKey.watermarkType.rawValue) as? CPDFWatermarkType) ?? .text
|
|
|
-
|
|
|
- model.text = (dict.object(forKey: KMWatermarkKey.text.rawValue) as? String)
|
|
|
- model.fontName = (dict.object(forKey: KMWatermarkKey.textFontName.rawValue) as? String) ?? ""
|
|
|
- model.fontStyle = (dict.object(forKey: KMWatermarkKey.textfontStyle.rawValue) as? String) ?? ""
|
|
|
- model.fontSize = (dict.object(forKey: KMWatermarkKey.textFontSize.rawValue) as? CGFloat) ?? 12
|
|
|
-
|
|
|
- if let pathValue = dict.object(forKey: KMWatermarkKey.imagePath.rawValue) {
|
|
|
- let path = watermarkFolderPath?.stringByAppendingPathComponent(pathValue as! String)
|
|
|
- if (FileManager.default.fileExists(atPath: path!)) {
|
|
|
- model.imagePath = path ?? ""
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- model.isScale = (dict.object(forKey: KMWatermarkKey.isScale.rawValue) as? Bool) ?? false
|
|
|
- model.scale = (dict.object(forKey: KMWatermarkKey.scale.rawValue) as? CGFloat) ?? 1
|
|
|
- model.rotation = dict.object(forKey: KMWatermarkKey.rotate.rawValue) as? CGFloat ?? 0
|
|
|
- model.opacity = (dict.object(forKey: KMWatermarkKey.opacity.rawValue) as? CGFloat) ?? 1
|
|
|
- model.verticalPosition = (dict.object(forKey: KMWatermarkKey.verticalMode.rawValue) as? CPDFWatermarkVerticalPosition) ?? .center
|
|
|
- model.ty = dict.object(forKey: KMWatermarkKey.verticalSpace.rawValue) as? CGFloat ?? 0
|
|
|
- model.horizontalPosition = (dict.object(forKey: KMWatermarkKey.horizontalMode.rawValue) as? CPDFWatermarkHorizontalPosition) ?? .center
|
|
|
- model.tx = dict.object(forKey: KMWatermarkKey.horizontalSpace.rawValue) as? CGFloat ?? 0
|
|
|
- if let textColorKey = dict.object(forKey: KMWatermarkKey.textColor.rawValue) as? String {
|
|
|
- model.textColor = NSColor.km_init(hex: textColorKey)
|
|
|
- } else {
|
|
|
- let red: CGFloat = dict.object(forKey: KMWatermarkKey.red.rawValue) as? CGFloat ?? 0
|
|
|
- let green: CGFloat = dict.object(forKey: KMWatermarkKey.green.rawValue) as? CGFloat ?? 0
|
|
|
- let blue: CGFloat = dict.object(forKey: KMWatermarkKey.blue.rawValue) as? CGFloat ?? 0
|
|
|
- model.textColor = NSColor(red: red, green: green, blue: blue, alpha: 1.0)
|
|
|
- }
|
|
|
- model.isFront = (dict.object(forKey: KMWatermarkKey.isFront.rawValue) as? Bool) ?? false
|
|
|
- model.isTilePage = (dict.object(forKey: KMWatermarkKey.isTile.rawValue) as? Bool) ?? false
|
|
|
- model.horizontalSpacing = (dict.object(forKey: KMWatermarkKey.tileHorizontalSpace.rawValue) as? CGFloat) ?? 0
|
|
|
- model.verticalSpacing = (dict.object(forKey: KMWatermarkKey.tileVerticalSpace.rawValue) as? CGFloat) ?? 0
|
|
|
- model.tag = (dict.object(forKey: KMWatermarkKey.tag.rawValue) as? String) ?? ""
|
|
|
- model.watermarkName = (dict.object(forKey: KMWatermarkKey.watermarkName.rawValue) as? String) ?? ""
|
|
|
-
|
|
|
- return model
|
|
|
+ class func getFontSize() -> [String] {
|
|
|
+ return ["6","8","10","12","14",
|
|
|
+ "16","18","20","22","24",
|
|
|
+ "26","28","30","32","34",
|
|
|
+ "36","40","48","64","80",
|
|
|
+ "96","112"]
|
|
|
}
|
|
|
|
|
|
func fetchAvailableName() -> String {
|