123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- //
- // KMHeaderFooterAdjectiveModel.swift
- // PDF Reader Pro
- //
- // Created by tangchao on 2022/12/27.
- //
- import Cocoa
- enum KMHeaderFooterObjectType: Int {
- case headerFooter = 0
- case bates
- }
- @objcMembers class KMHeaderFooterAdjectiveModel: KMWatermarkAdjectiveBaseModel , NSCoding {
- var type: KMHeaderFooterObjectType = .headerFooter
-
- // 是否数据迁移(原App数据迁移)
- var isMigrate = false
- // 是否已被更新
- var isUpdated = false
-
- var leftMargin: Int = 30
- var rightMargin: Int = 30
- var bottomMargin: Int = 30
- var topMargin: Int = 30
- var topLeftString: String = ""
- var topCenterString: String = ""
- var topRightString: String = ""
- var bottomLeftString: String = ""
- var bottomCenterString: String = ""
- var bottomRightString: String = ""
-
- var startString: String = "1"
-
- var name: String = ""
-
- var cellHeight: CGFloat {
- get {
- var height: CGFloat = 45.0
-
- if (self.topLeftString.count > 0) {
- height += 20.0
- }
- if (self.topCenterString.count > 0) {
- height += 20.0
- }
- if (self.topRightString.count > 0) {
- height += 20.0
- }
- if (self.bottomLeftString.count > 0) {
- height += 20.0
- }
- if (self.bottomCenterString.count > 0) {
- height += 20.0
- }
- if (self.bottomRightString.count > 0) {
- height += 20.0
- }
-
- return height
- }
- }
-
- var hasVaild: Bool {
- get {
- for string in [self.topLeftString, self.topCenterString, self.topRightString,
- self.bottomLeftString, self.bottomCenterString, self.bottomRightString] {
- if (!string.isEmpty) {
- return true
- }
- }
-
- return false
- }
- }
-
- override init() {
- super.init()
-
- self.textFont = .font(name: "Helvetica", size: 10)
- self.textColor = .color(red: 0.0, green: 0.0, blue: 0.0, alpha: 1.0)
- }
-
- required init?(coder: NSCoder) {
- super.init()
- type = KMHeaderFooterObjectType.init(rawValue: coder.decodeInteger(forKey: "type"))!
- pageRangeType = KMWatermarkeModelPageRangeType.init(rawValue: coder.decodeInteger(forKey: "pageChoice"))!
- leftMargin = coder.decodeInteger(forKey: "leftMargin")
- rightMargin = coder.decodeInteger(forKey: "rightMargin")
- bottomMargin = coder.decodeInteger(forKey: "bottomMargin")
- topMargin = coder.decodeInteger(forKey: "topMargin")
- topLeftString = coder.decodeObject(forKey: "topLeftString") as? String ?? ""
- topCenterString = coder.decodeObject(forKey: "topCenterString") as? String ?? ""
- topRightString = coder.decodeObject(forKey: "topRightString") as? String ?? ""
- bottomLeftString = coder.decodeObject(forKey: "bottomLeftString") as? String ?? ""
- bottomCenterString = coder.decodeObject(forKey: "bottomCenterString") as? String ?? ""
- bottomRightString = coder.decodeObject(forKey: "bottomRightString") as? String ?? ""
- startString = coder.decodeObject(forKey: "startString") as? String ?? ""
- fontSize = coder.decodeFloat(forKey: "fontSize")
- tempTextColor = coder.decodeObject(forKey: "textColor") as? NSColor ?? NSColor.black
- id = coder.decodeObject(forKey: "headerFooterID") as? String ?? ""
- pageRangeString = coder.decodeObject(forKey: "pagesString") as? String ?? ""
- // hasHeader = coder.decodeBool(forKey: "hasHeader")
- // hasFooter = coder.decodeBool(forKey: "hasFooter")
- // cellHeight = coder.decodeFloat(forKey: "cellHeight")
- // dateFormatString = coder.decodeObject(forKey: "dateFormatString") as? String ?? "m/d"
- // pageFormatString = coder.decodeObject(forKey: "pageFormatString") as? String ?? "1"
- // isBates = coder.decodeBool(forKey: "isBates")
- // batesPrefixString = coder.decodeObject(forKey: "batesPrefixString") as? String ?? ""
- // batesSuffixString = coder.decodeObject(forKey: "batesSuffixString") as? String ?? ""
- // batesDigits = coder.decodeInteger(forKey: "batesDigits")
- }
- func encode(with coder: NSCoder) {
- coder.encode(type.rawValue, forKey: "type")
- coder.encode(pageRangeType.rawValue, forKey: "pageChoice")
- coder.encode(leftMargin, forKey: "leftMargin")
- coder.encode(rightMargin, forKey: "rightMargin")
- coder.encode(bottomMargin, forKey: "bottomMargin")
- coder.encode(topMargin, forKey: "topMargin")
- coder.encode(topLeftString, forKey: "topLeftString")
- coder.encode(topCenterString, forKey: "topCenterString")
- coder.encode(topRightString, forKey: "topRightString")
- coder.encode(bottomLeftString, forKey: "bottomLeftString")
- coder.encode(bottomCenterString, forKey: "bottomCenterString")
- coder.encode(bottomRightString, forKey: "bottomRightString")
- coder.encode(startString, forKey: "startString")
- coder.encode(fontSize, forKey: "fontSize")
- coder.encode(self.getTextColor(), forKey: "textColor")
- // coder.encode(hasHeader, forKey: "hasHeader")
- // coder.encode(hasFooter, forKey: "hasFooter")
- // coder.encode(cellHeight, forKey: "cellHeight")
- coder.encode(id, forKey: "headerFooterID")
- coder.encode(pageRangeString, forKey: "pagesString")
-
- // coder.encode(dateFormatString, forKey: "dateFormatString")
- // coder.encode(pageFormatString, forKey: "pageFormatString")
- // coder.encode(isBates, forKey: "isBates")
- // coder.encode(batesPrefixString, forKey: "batesPrefixString")
- // coder.encode(batesSuffixString, forKey: "batesSuffixString")
- // coder.encode(batesDigits, forKey: "batesDigits")
- }
- // func copy(with zone: NSZone? = nil) -> Any {
- // let obj = KMHeaderFooterObject()
- // obj.pageRangeType = pageRangeType
- // obj.leftMargin = leftMargin
- // obj.rightMargin = rightMargin
- // obj.bottomMargin = bottomMargin
- // obj.topMargin = topMargin
- // obj.topLeftString = topLeftString
- // obj.topCenterString = topCenterString
- // obj.topRightString = topRightString
- // obj.bottomLeftString = bottomLeftString
- // obj.bottomCenterString = bottomCenterString
- // obj.bottomRightString = bottomRightString
- // obj.startString = startString
- // obj.fontSize = fontSize
- // obj.textColor = textColor
- //// obj.hasHeader = hasHeader
- //// obj.hasFooter = hasFooter
- //// obj.cellHeight = cellHeight
- // obj.id = id
- // obj.pageCount = pageCount
- // obj.pageRangeString = pageRangeString
- //
- // obj.dateFormatString = dateFormatString
- // obj.pageFormatString = pageFormatString
- // obj.isBates = isBates
- // obj.batesPrefixString = batesPrefixString
- // obj.batesSuffixString = batesSuffixString
- // obj.batesDigits = batesDigits
- // return obj
- // }
- }
|