|
@@ -33,6 +33,8 @@ let CHANGE_KEY = "change"
|
|
|
let REDEFINE_KEY = "redefine"
|
|
|
let COLOR_KEY = "fontColor"
|
|
|
let ALIGNMENT_KEY = "FontAlignment"
|
|
|
+let Bold_KEY = "bold"
|
|
|
+let Italic_KEY = "italic"
|
|
|
|
|
|
//字体样式类型
|
|
|
enum KMEditPDFTextFontType: String, CaseIterable {
|
|
@@ -87,14 +89,14 @@ enum KMEditPDFTextFontType: String, CaseIterable {
|
|
|
|
|
|
//默认字体样式
|
|
|
let defaultTextPresupposition: NSDictionary = [
|
|
|
- KMEditPDFTextFontType.commonly.rawValue: [FONTNAME_KEY: "Helvetica", FONTSIZE_KEY: "12.0", REDEFINE_KEY: false, CHANGE_KEY: false, COLOR_KEY: COLOR_DEFAULT, ALIGNMENT_KEY: ALIGNMENT_DEFAULT] as [String : Any],
|
|
|
- KMEditPDFTextFontType.customize.rawValue: [FONTNAME_KEY: "Helvetica", FONTSIZE_KEY: "12.0", REDEFINE_KEY: false, CHANGE_KEY: false] as [String : Any],
|
|
|
- KMEditPDFTextFontType.h1.rawValue: [FONTNAME_KEY: "Helvetica-Bold", FONTSIZE_KEY: "36.0", REDEFINE_KEY: false, CHANGE_KEY: false] as [String : Any],
|
|
|
- KMEditPDFTextFontType.h2.rawValue: [FONTNAME_KEY: "Helvetica-Bold", FONTSIZE_KEY: "24.0", REDEFINE_KEY: false, CHANGE_KEY: false] as [String : Any],
|
|
|
- KMEditPDFTextFontType.h3.rawValue: [FONTNAME_KEY: "Helvetica-Bold", FONTSIZE_KEY: "18.0", REDEFINE_KEY: false, CHANGE_KEY: false] as [String : Any],
|
|
|
- KMEditPDFTextFontType.b1.rawValue: [FONTNAME_KEY: "Helvetica", FONTSIZE_KEY: "14.0", REDEFINE_KEY: false, CHANGE_KEY: false] as [String : Any],
|
|
|
- KMEditPDFTextFontType.b2.rawValue: [FONTNAME_KEY: "Helvetica", FONTSIZE_KEY: "12.0", REDEFINE_KEY: false, CHANGE_KEY: false] as [String : Any],
|
|
|
- KMEditPDFTextFontType.b3.rawValue: [FONTNAME_KEY: "Helvetica", FONTSIZE_KEY: "11.0", REDEFINE_KEY: false, CHANGE_KEY: false] as [String : Any]]
|
|
|
+ KMEditPDFTextFontType.commonly.rawValue: [FONTNAME_KEY: "Helvetica", FONTSIZE_KEY: "12.0", REDEFINE_KEY: false, CHANGE_KEY: false, COLOR_KEY: COLOR_DEFAULT, ALIGNMENT_KEY: ALIGNMENT_DEFAULT, Bold_KEY : false, Italic_KEY : false] as [String : Any],
|
|
|
+ KMEditPDFTextFontType.customize.rawValue: [FONTNAME_KEY: "Helvetica", FONTSIZE_KEY: "12.0", REDEFINE_KEY: false, CHANGE_KEY: false, Bold_KEY : false, Italic_KEY : false] as [String : Any],
|
|
|
+ KMEditPDFTextFontType.h1.rawValue: [FONTNAME_KEY: "Helvetica-Bold", FONTSIZE_KEY: "36.0", REDEFINE_KEY: false, CHANGE_KEY: false, Bold_KEY : false, Italic_KEY : false] as [String : Any],
|
|
|
+ KMEditPDFTextFontType.h2.rawValue: [FONTNAME_KEY: "Helvetica-Bold", FONTSIZE_KEY: "24.0", REDEFINE_KEY: false, CHANGE_KEY: false, Bold_KEY : false, Italic_KEY : false] as [String : Any],
|
|
|
+ KMEditPDFTextFontType.h3.rawValue: [FONTNAME_KEY: "Helvetica-Bold", FONTSIZE_KEY: "18.0", REDEFINE_KEY: false, CHANGE_KEY: false, Bold_KEY : false, Italic_KEY : false] as [String : Any],
|
|
|
+ KMEditPDFTextFontType.b1.rawValue: [FONTNAME_KEY: "Helvetica", FONTSIZE_KEY: "14.0", REDEFINE_KEY: false, CHANGE_KEY: false, Bold_KEY : false, Italic_KEY : false] as [String : Any],
|
|
|
+ KMEditPDFTextFontType.b2.rawValue: [FONTNAME_KEY: "Helvetica", FONTSIZE_KEY: "12.0", REDEFINE_KEY: false, CHANGE_KEY: false, Bold_KEY : false, Italic_KEY : false] as [String : Any],
|
|
|
+ KMEditPDFTextFontType.b3.rawValue: [FONTNAME_KEY: "Helvetica", FONTSIZE_KEY: "11.0", REDEFINE_KEY: false, CHANGE_KEY: false, Bold_KEY : false, Italic_KEY : false] as [String : Any]]
|
|
|
|
|
|
let defaultFontStyles: Array = ["Regular", "Bold", "Italic", "Bold Italic"]
|
|
|
|
|
@@ -107,6 +109,9 @@ let defaultFontStyles: Array = ["Regular", "Bold", "Italic", "Bold Italic"]
|
|
|
var type: KMEditPDFTextFontType = .customize
|
|
|
var color: NSColor = NSColor.black
|
|
|
var alignment: NSTextAlignment = ALIGNMENT_DEFAULT
|
|
|
+
|
|
|
+ var bold: Bool = false
|
|
|
+ var italic: Bool = false
|
|
|
}
|
|
|
|
|
|
@objcMembers class KMEditPDFTextManager: NSObject {
|
|
@@ -152,14 +157,15 @@ extension KMEditPDFTextManager {
|
|
|
fontSize: CGFloat(Float(dic[FONTSIZE_KEY] as? String ?? "12") ?? Float(FONTSIZE_DEFAULT)),
|
|
|
redefine: false,
|
|
|
change: false,
|
|
|
- type: KMEditPDFTextFontType(rawValue: type) ?? .customize)
|
|
|
+ type: KMEditPDFTextFontType(rawValue: type) ?? .customize,
|
|
|
+ bold: dic[Bold_KEY] as? Bool ?? false, italic: dic[Italic_KEY] as? Bool ?? false)
|
|
|
}
|
|
|
|
|
|
@objc func changeTextPresupposition(fontName: String, fontSize: CGFloat, type: String) {
|
|
|
self.setTextPresupposition(fontName: fontName,
|
|
|
fontSize: fontSize,
|
|
|
change: true,
|
|
|
- type: KMEditPDFTextFontType(rawValue: type) ?? .customize)
|
|
|
+ type: KMEditPDFTextFontType(rawValue: type) ?? .customize, bold: nil, italic: nil)
|
|
|
}
|
|
|
|
|
|
@objc func reDefineTextPresupposition(fontName: String, fontSize: CGFloat, type: String) {
|
|
@@ -167,17 +173,18 @@ extension KMEditPDFTextManager {
|
|
|
fontSize: fontSize,
|
|
|
redefine: true,
|
|
|
change: false,
|
|
|
- type: KMEditPDFTextFontType(rawValue: type) ?? .customize)
|
|
|
+ type: KMEditPDFTextFontType(rawValue: type) ?? .customize,
|
|
|
+ bold: nil, italic: nil)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
extension KMEditPDFTextManager {
|
|
|
//改变单个字体样式
|
|
|
- func changeTextPresupposition(fontName: String, fontSize: CGFloat, type: KMEditPDFTextFontType) {
|
|
|
+ func changeTextPresupposition(fontName: String, fontSize: CGFloat, type: KMEditPDFTextFontType, bold: Bool?, italic: Bool?) {
|
|
|
self.setTextPresupposition(fontName: fontName,
|
|
|
fontSize: fontSize,
|
|
|
change: true,
|
|
|
- type: type)
|
|
|
+ type: type, bold: bold, italic: italic)
|
|
|
}
|
|
|
|
|
|
//重定义单个字体样式
|
|
@@ -186,7 +193,8 @@ extension KMEditPDFTextManager {
|
|
|
fontSize: fontSize,
|
|
|
redefine: true,
|
|
|
change: false,
|
|
|
- type: type)
|
|
|
+ type: type,
|
|
|
+ bold: nil, italic: nil)
|
|
|
}
|
|
|
|
|
|
//重置单个字体样式
|
|
@@ -196,7 +204,8 @@ extension KMEditPDFTextManager {
|
|
|
fontSize: CGFloat(Float(dic[FONTSIZE_KEY] as? String ?? "12") ?? Float(FONTSIZE_DEFAULT)),
|
|
|
redefine: false,
|
|
|
change: false,
|
|
|
- type: type)
|
|
|
+ type: type,
|
|
|
+ bold: dic[Bold_KEY] as? Bool ?? false, italic: dic[Italic_KEY] as? Bool ?? false)
|
|
|
}
|
|
|
|
|
|
//获取保存的自定义字体样式
|
|
@@ -432,11 +441,19 @@ extension KMEditPDFTextManager {
|
|
|
//MARK: - private
|
|
|
extension KMEditPDFTextManager {
|
|
|
//设置相应的字体样式
|
|
|
- private func setTextPresupposition(fontName: String, fontSize: CGFloat, redefine: Bool = false, change: Bool = false, type: KMEditPDFTextFontType) {
|
|
|
+ private func setTextPresupposition(fontName: String, fontSize: CGFloat, redefine: Bool = false, change: Bool = false, type: KMEditPDFTextFontType, bold: Bool?, italic: Bool?) {
|
|
|
let tempFontName = self.checkFontName(fontName: fontName)
|
|
|
let model = self.fetchUserDefaultData(type: type)
|
|
|
let colorString: String = model.color.toHex(alpha: true) ?? ""
|
|
|
- let fontDic: NSDictionary = [FONTNAME_KEY: tempFontName, FONTSIZE_KEY: fontSize.description, REDEFINE_KEY: redefine, CHANGE_KEY: change, COLOR_KEY: colorString, ALIGNMENT_KEY: model.alignment.rawValue]
|
|
|
+ var boldV = model.bold
|
|
|
+ if let data = bold {
|
|
|
+ boldV = data
|
|
|
+ }
|
|
|
+ var italicV = model.italic
|
|
|
+ if let data = italic {
|
|
|
+ italicV = data
|
|
|
+ }
|
|
|
+ let fontDic: NSDictionary = [FONTNAME_KEY: tempFontName, FONTSIZE_KEY: fontSize.description, REDEFINE_KEY: redefine, CHANGE_KEY: change, COLOR_KEY: colorString, ALIGNMENT_KEY: model.alignment.rawValue, Bold_KEY : boldV, Italic_KEY : italicV]
|
|
|
|
|
|
let userDefaults = UserDefaults.standard
|
|
|
switch type {
|
|
@@ -512,6 +529,9 @@ extension KMEditPDFTextManager {
|
|
|
// }
|
|
|
// }
|
|
|
|
|
|
+ let bold = data[Bold_KEY] as? Bool ?? false
|
|
|
+ let italic = data[Italic_KEY] as? Bool ?? false
|
|
|
+
|
|
|
let resultModel: KMEditPDFTextFontModel = KMEditPDFTextFontModel()
|
|
|
resultModel.fontName = fontName
|
|
|
resultModel.fontSize = fontSize
|
|
@@ -520,6 +540,9 @@ extension KMEditPDFTextManager {
|
|
|
resultModel.type = type
|
|
|
resultModel.color = NSColor.km_init(hex: colorString)
|
|
|
resultModel.alignment = alignment
|
|
|
+
|
|
|
+ resultModel.bold = bold
|
|
|
+ resultModel.italic = italic
|
|
|
// if type == .customize {
|
|
|
// resultModel.color = UserDefaults.standard.pdfListViewColor(forKey: FontColor_USERDEFAULTS) ?? NSColor.black
|
|
|
// }
|