12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169 |
- //
- // CPDFJSONDataParse.swift
- // ComPDFKit_Tools
- //
- // Copyright © 2014-2024 PDF Technologies, Inc. All Rights Reserved.
- //
- // THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
- // AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
- // UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
- // This notice may not be removed from this file.
- //
- import UIKit
- import ComPDFKit
- import Foundation
- open class CPDFJSONDataParse: NSObject {
-
- public var configuration: CPDFConfiguration?
-
- public init(filePath jsonFilePath: String) {
- super.init()
-
- let jsonDic = readJSONFromPath(jsonFilePath)
-
- self.configuration = parseJSON(jsonDic)
-
-
- }
-
- public init(String jsonSting: String) {
- super.init()
-
- let jsonDic = readJSONSting(jsonSting)
-
- self.configuration = parseJSON(jsonDic)
- }
-
- public init(HttpURL httpUrl:String) {
- super.init()
-
- fetchJSONData(from: httpUrl) { result in
- switch result {
- case .success(let json):
- let jsonDic = self.getConfigDic(json)
- self.configuration = self.parseJSON(jsonDic)
- // Handle your JSON data here
- case .failure(let error):
- print("Failed to fetch JSON with error: \(error)")
- // Handle the error here
- }
- }
- }
-
- func fetchJSONData(from url: String, completion: @escaping (Result<[String: Any], Error>) -> Void) {
- guard let url = URL(string: url) else {
- completion(.failure(NSError(domain: "Invalid URL", code: 0, userInfo: nil)))
- return
- }
- URLSession.shared.dataTask(with: url) { data, response, error in
- if let error = error {
- completion(.failure(error))
- return
- }
- guard let data = data else {
- completion(.failure(NSError(domain: "No data received", code: 0, userInfo: nil)))
- return
- }
- do {
- let json = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] ?? [:]
- completion(.success(json))
- } catch {
- completion(.failure(error))
- }
- }.resume()
- }
- func readJSONFromPath(_ jsonFilePath: String) -> Dictionary<String, Any> {
- do {
- let jsonData = try Data(contentsOf: URL(fileURLWithPath: jsonFilePath))
-
- let jsonDic = try JSONSerialization.jsonObject(with: jsonData, options: JSONSerialization.ReadingOptions.mutableContainers) as? [String: Any] ?? [String: Any]()
-
- return jsonDic
- } catch{
-
- }
-
- return Dictionary()
- }
-
- func readJSONSting(_ jsonSting: String) -> Dictionary<String, Any> {
- do {
- if let jsonData = jsonSting.data(using: .utf8) {
-
- let jsonDic = try JSONSerialization.jsonObject(with: jsonData, options: JSONSerialization.ReadingOptions.mutableContainers) as? [String: Any] ?? [String: Any]()
-
- return jsonDic
- }
-
- } catch{
-
- }
-
- return Dictionary()
- }
-
- func getConfigDic(_ jsonDic: Dictionary<String, Any>) -> Dictionary<String, Any> {
- for (key, value) in jsonDic {
- if key == "list" {
- if let innerArray = value as? [Any] {
- for (_, item) in innerArray.enumerated() {
- if let innerDict = item as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if innerKey == "detail" {
- if let string = innerValue as? String {
- return readJSONSting(string)
- }
- }
- }
- }
- }
- }
- }
- }
- return [String: Any]()
- }
-
- func parseJSON(_ jsonDic: Dictionary<String, Any>) -> CPDFConfiguration {
- let configuration = CPDFConfiguration()
-
- for (key, value) in jsonDic {
-
- if key == "modeConfig" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if innerKey == "initialViewMode" {
- let innerValueString = innerValue as? String ?? ""
-
- if innerValueString == "viewer" {
- configuration.enterToolModel = .viewer
- } else if innerValueString == "annotations" {
- configuration.enterToolModel = .annotation
- } else if innerValueString == "contentEditor" {
- configuration.enterToolModel = .edit
- } else if innerValueString == "forms" {
- configuration.enterToolModel = .form
- } else if innerValueString == "signatures" {
- configuration.enterToolModel = .signature
- }
- } else if innerKey == "readerOnly" {
- configuration.readerOnly = innerValue as? Bool ?? false
- } else if innerKey == "availableViewModes" {
- if let innerArray = innerValue as? [Any] {
- var availableViewModes: [CPDFToolFunctionTypeState] = []
- for (_, item) in innerArray.enumerated() {
- let itemString = item as? String ?? ""
-
- if itemString == "viewer" && !availableViewModes.contains(.viewer) {
- availableViewModes.append(.viewer)
- } else if itemString == "annotations" && !availableViewModes.contains(.annotation) {
- availableViewModes.append(.annotation)
- } else if itemString == "contentEditor" && !availableViewModes.contains(.edit) {
- availableViewModes.append(.edit)
- } else if itemString == "forms" && !availableViewModes.contains(.form) {
- availableViewModes.append(.form)
- } else if itemString == "signatures" && !availableViewModes.contains(.signature) {
- availableViewModes.append(.signature)
- }
- }
- configuration.availableViewModes = availableViewModes
- }
- }
- }
- }
- } else if key == "toolbarConfig" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if let innerArray = innerValue as? [Any] {
- if innerKey == "iosRightBarAvailableActions" {
- var showRightItems: [CNavBarButtonItem] = []
- var rightItems: [CPDFViewBarRightButtonItem] = []
- for (_, item) in innerArray.enumerated() {
- let itemString = item as? String ?? ""
-
- if itemString == "search" && !rightItems.contains(.search) {
- let search = CNavBarButtonItem(viewRightBarButtonItem: .search)
- showRightItems.append(search)
- rightItems.append(.search)
- } else if itemString == "bota" && !rightItems.contains(.bota) {
- let bota = CNavBarButtonItem(viewRightBarButtonItem: .bota)
- showRightItems.append(bota)
- rightItems.append(.bota)
- } else if itemString == "menu" && !rightItems.contains(.more) {
- let more = CNavBarButtonItem(viewRightBarButtonItem: .more)
- showRightItems.append(more)
- rightItems.append(.more)
- }
- }
- configuration.showRightItems = showRightItems
- } else if innerKey == "iosLeftBarAvailableActions" {
- var showleftItems: [CNavBarButtonItem] = []
- var leftItems: [CPDFViewBarLeftButtonItem] = []
- for (_, item) in innerArray.enumerated() {
- let itemString = item as? String ?? ""
-
- if itemString == "back" && !leftItems.contains(.back) {
- let back = CNavBarButtonItem(viewLeftBarButtonItem: .back)
- showleftItems.append(back)
- leftItems.append(.back)
- } else if itemString == "thumbnail" && !leftItems.contains(.thumbnail) {
- let thumbnail = CNavBarButtonItem(viewLeftBarButtonItem: .thumbnail)
- showleftItems.append(thumbnail)
- leftItems.append(.thumbnail)
- }
- }
- configuration.showleftItems = showleftItems
- } else if innerKey == "availableMenus" {
- var showMoreItems: [CPDFPopMenuViewType] = []
- for (_, item) in innerArray.enumerated() {
- let itemString = item as? String ?? ""
-
- if itemString == "viewSettings" && !showMoreItems.contains(.setting) {
- showMoreItems.append(.setting)
- } else if itemString == "documentEditor" && !showMoreItems.contains(.pageEdit) {
- showMoreItems.append(.pageEdit)
- } else if itemString == "security" && !showMoreItems.contains(.security) {
- showMoreItems.append(.security)
- } else if itemString == "watermark" && !showMoreItems.contains(.watermark) {
- showMoreItems.append(.watermark)
- } else if itemString == "documentInfo" && !showMoreItems.contains(.info) {
- showMoreItems.append(.info)
- } else if itemString == "save" && !showMoreItems.contains(.save) {
- showMoreItems.append(.save)
- } else if itemString == "share" && !showMoreItems.contains(.share) {
- showMoreItems.append(.share)
- } else if itemString == "openDocument" && !showMoreItems.contains(.addFile) {
- showMoreItems.append(.addFile)
- } else if itemString == "flattened" && !showMoreItems.contains(.flattened) {
- showMoreItems.append(.flattened)
- }
- }
- configuration.showMoreItems = showMoreItems
- }
- }
- }
- }
- } else if key == "annotationsConfig" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if let innerArray = innerValue as? [Any] {
- if innerKey == "availableTypes" {
- var annotationsTypes: [CPDFAnnotationToolbarType] = []
- for (_, item) in innerArray.enumerated() {
- let itemString = item as? String ?? ""
-
- if itemString == "note" && !annotationsTypes.contains(.note) {
- annotationsTypes.append(.note)
- } else if itemString == "highlight" && !annotationsTypes.contains(.highlight) {
- annotationsTypes.append(.highlight)
- } else if itemString == "underline" && !annotationsTypes.contains(.underline) {
- annotationsTypes.append(.underline)
- } else if itemString == "squiggly" && !annotationsTypes.contains(.squiggly) {
- annotationsTypes.append(.squiggly)
- } else if itemString == "strikeout" && !annotationsTypes.contains(.strikeout) {
- annotationsTypes.append(.strikeout)
- } else if itemString == "ink" && !annotationsTypes.contains(.freehand) {
- annotationsTypes.append(.freehand)
- } else if itemString == "pencil" && !annotationsTypes.contains(.pencilDrawing) {
- annotationsTypes.append(.pencilDrawing)
- } else if itemString == "circle" && !annotationsTypes.contains(.shapeCircle) {
- annotationsTypes.append(.shapeCircle)
- } else if itemString == "square" && !annotationsTypes.contains(.shapeRectangle) {
- annotationsTypes.append(.shapeRectangle)
- } else if itemString == "arrow" && !annotationsTypes.contains(.shapeArrow) {
- annotationsTypes.append(.shapeArrow)
- } else if itemString == "line" && !annotationsTypes.contains(.shapeLine) {
- annotationsTypes.append(.shapeLine)
- } else if itemString == "freetext" && !annotationsTypes.contains(.freeText) {
- annotationsTypes.append(.freeText)
- } else if itemString == "signature" && !annotationsTypes.contains(.signature) {
- annotationsTypes.append(.signature)
- } else if itemString == "stamp" && !annotationsTypes.contains(.stamp) {
- annotationsTypes.append(.stamp)
- } else if itemString == "pictures" && !annotationsTypes.contains(.image) {
- annotationsTypes.append(.image)
- } else if itemString == "link" && !annotationsTypes.contains(.link) {
- annotationsTypes.append(.link)
- } else if itemString == "sound" && !annotationsTypes.contains(.sound) {
- annotationsTypes.append(.sound)
- }
- }
- configuration.annotationsTypes = annotationsTypes
- } else if innerKey == "availableTools" {
- var annotationsTools: [CPDFAnnotationPropertieType] = []
- for (_, item) in innerArray.enumerated() {
- let itemString = item as? String ?? ""
-
- if itemString == "setting" && !annotationsTools.contains(.setting) {
- annotationsTools.append(.setting)
- } else if itemString == "undo" && !annotationsTools.contains(.undo) {
- annotationsTools.append(.undo)
- } else if itemString == "redo" && !annotationsTools.contains(.redo) {
- annotationsTools.append(.redo)
- }
- }
- configuration.annotationsTools = annotationsTools
- }
- } else if let innerDict = innerValue as? [String: Any] {
- if innerKey == "initAttribute" {
- configuration.annotationAttribute = innerDict
- }
- }
- }
- }
- } else if key == "contentEditorConfig" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if let innerArray = innerValue as? [Any] {
- if innerKey == "availableTypes" {
- var contentEditorTypes: [CPDFEditMode] = []
- for (_, item) in innerArray.enumerated() {
- let itemString = item as? String ?? ""
-
- if itemString == "editorText" && !contentEditorTypes.contains(.text) {
- contentEditorTypes.append(.text)
- } else if itemString == "editorImage" && !contentEditorTypes.contains(.image) {
- contentEditorTypes.append(.image)
- }
- }
- configuration.contentEditorTypes = contentEditorTypes
- } else if innerKey == "availableTools" {
- var contentEditorTools: [CPDFEditToolMode] = []
- for (_, item) in innerArray.enumerated() {
- let itemString = item as? String ?? ""
-
- if itemString == "setting" && !contentEditorTools.contains(.setting) {
- contentEditorTools.append(.setting)
- } else if itemString == "undo" && !contentEditorTools.contains(.undo) {
- contentEditorTools.append(.undo)
- } else if itemString == "redo" && !contentEditorTools.contains(.redo) {
- contentEditorTools.append(.redo)
- }
- }
- configuration.contentEditorTools = contentEditorTools
- }
- } else if let innerDict = innerValue as? [String: Any] {
- if innerKey == "initAttribute" {
- configuration.contentEditorAttribute = innerDict
- CPDFJSONDataParse.initializeContentEditorAttribute(Configuration: configuration)
- }
- }
- }
- }
- } else if key == "formsConfig" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if let innerArray = innerValue as? [Any] {
- if innerKey == "availableTypes" {
- var formTypes: [CPDFFormToolbarSelectedIndex] = []
- for (_, item) in innerArray.enumerated() {
- let itemString = item as? String ?? ""
- if itemString == "textField" && !formTypes.contains(.text) {
- formTypes.append(.text)
- } else if itemString == "checkBox" && !formTypes.contains(.checkBox) {
- formTypes.append(.checkBox)
- } else if itemString == "radioButton" && !formTypes.contains(.radioButton) {
- formTypes.append(.radioButton)
- } else if itemString == "listBox" && !formTypes.contains(.list) {
- formTypes.append(.list)
- } else if itemString == "comboBox" && !formTypes.contains(.comboBox) {
- formTypes.append(.comboBox)
- } else if itemString == "signaturesFields" && !formTypes.contains(.sign) {
- formTypes.append(.sign)
- } else if itemString == "pushButton" && !formTypes.contains(.button) {
- formTypes.append(.button)
- }
- }
- configuration.formTypes = formTypes
- } else if innerKey == "availableTools" {
- var formTools: [CPDFFormPropertieType] = []
- for (_, item) in innerArray.enumerated() {
- let itemString = item as? String ?? ""
-
- if itemString == "undo" && !formTools.contains(.undo) {
- formTools.append(.undo)
- } else if itemString == "redo" && !formTools.contains(.redo) {
- formTools.append(.redo)
- }
- }
- configuration.formTools = formTools
- }
- } else if let innerDict = innerValue as? [String: Any] {
- if innerKey == "initAttribute" {
- configuration.formsAttribute = innerDict
- CPDFJSONDataParse.initializeFormsAttribute(Configuration: configuration)
- }
- }
- }
- }
- } else if key == "readerViewConfig" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- configuration.readerViewConfig = innerDict
- if innerKey == "linkHighlight" {
- let linkHighlight = innerValue as? Bool ?? false
- CPDFKitConfig.sharedInstance().setEnableLinkFieldHighlight(linkHighlight)
- } else if innerKey == "formFieldHighlight" {
- let formFieldHighlight = innerValue as? Bool ?? false
- CPDFKitConfig.sharedInstance().setEnableFormFieldHighlight(formFieldHighlight)
- }
- }
- }
- }
- }
-
- return configuration
- }
-
- class func initializeReaderViewConfig(_ configuration: CPDFConfiguration, PDFView pdfListView: CPDFListView) {
-
- for (key, value) in configuration.readerViewConfig {
- if key == "displayMode" {
- let valueString = value as? String ?? ""
- if valueString == "singlePage" {
- pdfListView.displayTwoUp = false
- pdfListView.displaysAsBook = false
- } else if valueString == "doublePage" {
- pdfListView.displayTwoUp = true
- pdfListView.displaysAsBook = false
- } else if valueString == "coverPage" {
- pdfListView.displayTwoUp = true
- pdfListView.displaysAsBook = true
- }
- } else if key == "continueMode" {
- let continueMode = value as? Bool ?? false
- pdfListView.displaysPageBreaks = continueMode
- } else if key == "verticalMode" {
- let verticalMode = value as? Bool ?? false
- if verticalMode {
- pdfListView.displayDirection = .vertical
- } else {
- pdfListView.displayDirection = .horizontal
- }
- } else if key == "cropMode" {
- let cropMode = value as? Bool ?? false
- pdfListView.displayCrop = cropMode
- } else if key == "themes" {
- let valueString = value as? String ?? ""
- if valueString == "light" {
- pdfListView.displayMode = .normal
- } else if valueString == "dark" {
- pdfListView.displayMode = .night
- } else if valueString == "sepia" {
- pdfListView.displayMode = .soft
- } else if valueString == "reseda" {
- pdfListView.displayMode = .green
- }
- } else if key == "enableSliderBar" {
- let enableSliderBar = value as? Bool ?? false
- pdfListView.pageSliderView?.isHidden = !enableSliderBar
- } else if key == "enablePageIndicator" {
- let enablePageIndicator = value as? Bool ?? false
- pdfListView.pageIndicatorView?.alpha = enablePageIndicator ? 1 : 0
- } else if key == "pageSpacing" {
- let pageSpacing = value as? CGFloat ?? 0
- pdfListView.pageBreakMargins = UIEdgeInsets(top: pageSpacing, left: 10.0, bottom: pageSpacing, right: 10.0)
- }
- }
-
- pdfListView.layoutDocumentView()
-
- for (key, value) in configuration.readerViewConfig {
- if key == "pageScale" {
- var pageScale = value as? CGFloat ?? 0
- if pageScale < 1 {
- pageScale = 1
- }
- pdfListView.setScaleFactor(pageScale, animated: false)
- }
- }
- }
-
- class func initializeFormsAttribute(Configuration configuration: CPDFConfiguration) {
- let userDefaults = UserDefaults.standard
- for (key, value) in configuration.formsAttribute {
- if key == "textField" {
- if let innerDict = value as? [String: Any] {
- var isBold = false
- var isItalic = false
- var baseName = ""
-
- for (innerKey, innerValue) in innerDict {
- if innerKey == "fillColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CTextFieldInteriorColorKey)
- } else if innerKey == "borderColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CTextFieldColorKey)
- } else if innerKey == "borderWidth" {
- let borderWidth = innerValue as? CGFloat ?? 1
- userDefaults.set(borderWidth, forKey: CTextFieldLineWidthKey)
- } else if innerKey == "fontColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CTextFieldFontColorKey)
- } else if innerKey == "fontSize" {
- let fontSize = innerValue as? CGFloat ?? 10
- userDefaults.set(fontSize, forKey: CTextFieldFontSizeKey)
- } else if innerKey == "isBold" {
- isBold = innerValue as? Bool ?? false
- } else if innerKey == "isItalic" {
- isItalic = innerValue as? Bool ?? false
- } else if innerKey == "alignment" {
- let string = innerValue as? String ?? ""
-
- if string == "left" {
- userDefaults.set(0, forKey: CTextFieldAlignmentKey)
- } else if string == "center" {
- userDefaults.set(1, forKey: CTextFieldAlignmentKey)
- } else if string == "right" {
- userDefaults.set(2, forKey: CTextFieldAlignmentKey)
- }
- } else if innerKey == "typeface" {
- baseName = innerValue as? String ?? ""
- } else if innerKey == "multiline" {
- let multiline = innerValue as? Bool ?? false
- userDefaults.set(multiline, forKey: CTextFieldIsMultilineKey)
- }
- }
-
- let constructName = CPDFJSONDataParse.constructionFontName(BaseName: baseName, isBold: isBold, isItalic: isItalic)
- userDefaults.set(baseName, forKey: CTextFieldFontFamilyNameKey)
- userDefaults.set(constructName, forKey: CTextFieldFontStyleNameKey)
- }
- } else if key == "checkBox" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if innerKey == "fillColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CCheckBoxInteriorColorKey)
- } else if innerKey == "borderColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CCheckBoxColorKey)
- } else if innerKey == "borderWidth" {
- let borderWidth = innerValue as? CGFloat ?? 1
- userDefaults.set(borderWidth, forKey: CCheckBoxLineWidthKey)
- } else if innerKey == "checkedColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CCheckBoxCheckedColorKey)
- } else if innerKey == "isChecked" {
- let isChecked = innerValue as? Bool ?? false
- userDefaults.set(isChecked, forKey: CCheckBoxIsCheckedKey)
- } else if innerKey == "checkedStyle" {
- let string = innerValue as? String ?? ""
-
- if string == "check" {
- userDefaults.set(0, forKey: CCheckBoxCheckedStyleKey)
- } else if string == "circle," {
- userDefaults.set(1, forKey: CCheckBoxCheckedStyleKey)
- } else if string == "cross" {
- userDefaults.set(2, forKey: CCheckBoxCheckedStyleKey)
- } else if string == "diamond" {
- userDefaults.set(3, forKey: CCheckBoxCheckedStyleKey)
- } else if string == "square" {
- userDefaults.set(4, forKey: CCheckBoxCheckedStyleKey)
- } else if string == "star" {
- userDefaults.set(5, forKey: CCheckBoxCheckedStyleKey)
- }
- }
- }
- }
- } else if key == "radioButton" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if innerKey == "fillColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CRadioButtonInteriorColorKey)
- } else if innerKey == "borderColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CRadioButtonColorKey)
- } else if innerKey == "borderWidth" {
- let borderWidth = innerValue as? CGFloat ?? 1
- userDefaults.set(borderWidth, forKey: CRadioButtonLineWidthKey)
- } else if innerKey == "checkedColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CRadioButtonCheckedColorKey)
- } else if innerKey == "isChecked" {
- let isChecked = innerValue as? Bool ?? false
- userDefaults.set(isChecked, forKey: CRadioButtonIsCheckedKey)
- } else if innerKey == "checkedStyle" {
- let string = innerValue as? String ?? ""
-
- if string == "check" {
- userDefaults.set(0, forKey: CRadioButtonCheckedStyleKey)
- } else if string == "circle" {
- userDefaults.set(1, forKey: CRadioButtonCheckedStyleKey)
- } else if string == "cross" {
- userDefaults.set(2, forKey: CRadioButtonCheckedStyleKey)
- } else if string == "diamond" {
- userDefaults.set(3, forKey: CRadioButtonCheckedStyleKey)
- } else if string == "square" {
- userDefaults.set(4, forKey: CRadioButtonCheckedStyleKey)
- } else if string == "star" {
- userDefaults.set(5, forKey: CRadioButtonCheckedStyleKey)
- }
- }
- }
- }
- } else if key == "listBox" {
- if let innerDict = value as? [String: Any] {
- var isBold = false
- var isItalic = false
- var baseName = ""
-
- for (innerKey, innerValue) in innerDict {
- if innerKey == "fillColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CListBoxInteriorColorKey)
- } else if innerKey == "borderColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CListBoxColorKey)
- } else if innerKey == "borderWidth" {
- let borderWidth = innerValue as? CGFloat ?? 1
- userDefaults.set(borderWidth, forKey: CListBoxLineWidthKey)
- } else if innerKey == "fontColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CListBoxFontColorKey)
- } else if innerKey == "fontSize" {
- let fontSize = innerValue as? CGFloat ?? 10
- userDefaults.set(fontSize, forKey: CListBoxFontSizeKey)
- } else if innerKey == "isBold" {
- isBold = innerValue as? Bool ?? false
- } else if innerKey == "isItalic" {
- isItalic = innerValue as? Bool ?? false
- } else if innerKey == "typeface" {
- baseName = innerValue as? String ?? ""
- }
- }
-
- let constructName = CPDFJSONDataParse.constructionFontName(BaseName: baseName, isBold: isBold, isItalic: isItalic)
- userDefaults.set(baseName, forKey: CListBoxFontFamilyNameKey)
- userDefaults.set(constructName, forKey: CListBoxFontStyleNameKey)
- }
- } else if key == "comboBox" {
- if let innerDict = value as? [String: Any] {
- var isBold = false
- var isItalic = false
- var baseName = ""
-
- for (innerKey, innerValue) in innerDict {
- if innerKey == "fillColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CComboBoxInteriorColorKey)
- } else if innerKey == "borderColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CComboBoxColorKey)
- } else if innerKey == "borderWidth" {
- let borderWidth = innerValue as? CGFloat ?? 1
- userDefaults.set(borderWidth, forKey: CComboBoxLineWidthKey)
- } else if innerKey == "fontColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CComboBoxFontColorKey)
- } else if innerKey == "fontSize" {
- let fontSize = innerValue as? CGFloat ?? 10
- userDefaults.set(fontSize, forKey: CComboBoxFontSizeKey)
- } else if innerKey == "isBold" {
- isBold = innerValue as? Bool ?? false
- } else if innerKey == "isItalic" {
- isItalic = innerValue as? Bool ?? false
- } else if innerKey == "typeface" {
- baseName = innerValue as? String ?? ""
- }
- }
-
- let constructName = CPDFJSONDataParse.constructionFontName(BaseName: baseName, isBold: isBold, isItalic: isItalic)
- userDefaults.set(baseName, forKey: CComboBoxFontFamilyNameKey)
- userDefaults.set(constructName, forKey: CComboBoxFontStyleNameKey)
- }
- } else if key == "pushButton" {
- if let innerDict = value as? [String: Any] {
- var isBold = false
- var isItalic = false
- var baseName = ""
-
- for (innerKey, innerValue) in innerDict {
- if innerKey == "fillColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CPushButtonInteriorColorKey)
- } else if innerKey == "borderColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CPushButtonColorKey)
- } else if innerKey == "borderWidth" {
- let borderWidth = innerValue as? CGFloat ?? 1
- userDefaults.set(borderWidth, forKey: CPushButtonLineWidthKey)
- } else if innerKey == "fontColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CPushButtonFontColorKey)
- } else if innerKey == "fontSize" {
- let fontSize = innerValue as? CGFloat ?? 10
- userDefaults.set(fontSize, forKey: CPushButtonFontSizeKey)
- } else if innerKey == "isBold" {
- isBold = innerValue as? Bool ?? false
- } else if innerKey == "isItalic" {
- isItalic = innerValue as? Bool ?? false
- } else if innerKey == "typeface" {
- baseName = innerValue as? String ?? ""
- } else if innerKey == "title" {
- let string = innerValue as? String ?? ""
- userDefaults.set(string, forKey: CPushButtonTitleKey)
- }
- }
-
- let constructName = CPDFJSONDataParse.constructionFontName(BaseName: baseName, isBold: isBold, isItalic: isItalic)
- userDefaults.set(baseName, forKey: CPushButtonFontFamilyNameKey)
- userDefaults.set(constructName, forKey: CPushButtonFontStyleNameKey)
- }
- } else if key == "signaturesFields" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if innerKey == "fillColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CSignaturesFieldsInteriorColorKey)
- } else if innerKey == "borderColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CSignaturesFieldsColorKey)
- } else if innerKey == "borderWidth" {
- let borderWidth = innerValue as? CGFloat ?? 1
- userDefaults.set(borderWidth, forKey: CSignaturesFieldsLineWidthKey)
- } else if innerKey == "borderStyle" {
- let string = innerValue as? String ?? ""
-
- if string == "solid" {
- userDefaults.set(0, forKey: CSignaturesFieldsLineStyleKey)
- } else if string == "dashed" {
- userDefaults.set(1, forKey: CSignaturesFieldsLineStyleKey)
- } else if string == "beveled" {
- userDefaults.set(2, forKey: CSignaturesFieldsLineStyleKey)
- } else if string == "inset" {
- userDefaults.set(3, forKey: CSignaturesFieldsLineStyleKey)
- } else if string == "underline" {
- userDefaults.set(4, forKey: CSignaturesFieldsLineStyleKey)
- }
- }
- }
- }
- }
- }
- userDefaults.synchronize()
- }
-
- class func initializeContentEditorAttribute(Configuration configuration: CPDFConfiguration) {
- let userDefaults = UserDefaults.standard
-
- for (key, value) in configuration.contentEditorAttribute {
- if key == "text" {
- if let innerDict = value as? [String: Any] {
- var isBold = false
- var isItalic = false
- var baseName = ""
-
- for (innerKey, innerValue) in innerDict {
- if innerKey == "fontColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CPDFContentEditTextCreateFontColorKey)
- } else if innerKey == "fontColorAlpha" {
- let opacity = innerValue as? CGFloat ?? 10
-
- userDefaults.set(opacity / 255.0, forKey: CPDFContentEditTextCreateFontOpacityKey)
- } else if innerKey == "fontSize" {
- let fontSize = innerValue as? CGFloat ?? 10
- userDefaults.set(fontSize, forKey: CPDFContentEditTextCreateFontSizeKey)
- } else if innerKey == "isBold" {
- isBold = innerValue as? Bool ?? false
- } else if innerKey == "isItalic" {
- isItalic = innerValue as? Bool ?? false
- } else if innerKey == "alignment" {
- let string = innerValue as? String ?? ""
-
- if string == "left" {
- userDefaults.set(0, forKey: CPDFContentEditTextCreateFontAlignmentKey)
- } else if string == "center" {
- userDefaults.set(1, forKey: CPDFContentEditTextCreateFontAlignmentKey)
- } else if string == "right" {
- userDefaults.set(2, forKey: CPDFContentEditTextCreateFontAlignmentKey)
- }
- } else if innerKey == "typeface" {
- baseName = innerValue as? String ?? ""
- userDefaults.set(baseName, forKey: CPDFContentEditTextCreateFontNewNameKey)
- }
-
- let constructName = CPDFJSONDataParse.constructionFontName(BaseName: baseName, isBold: isBold, isItalic: isItalic)
- userDefaults.set(constructName, forKey: CPDFContentEditTextCreateFontNewStyleKey)
- }
- }
- }
- }
- userDefaults.synchronize()
- }
-
-
- class func initializeAnnotationAttribute(Configuration configuration: CPDFConfiguration) {
- let userDefaults = UserDefaults.standard
-
- for (key, value) in configuration.annotationAttribute {
- if key == "note" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if innerKey == "color" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CAnchoredNoteColorKey)
- } else if innerKey == "alpha" {
- let opacity = innerValue as? CGFloat ?? 10
-
- userDefaults.set(opacity / 255.0, forKey: CAnchoredNoteOpacityKey)
- }
- }
- }
- } else if key == "highlight" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if innerKey == "color" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CHighlightNoteColorKey)
- } else if innerKey == "alpha" {
- let opacity = innerValue as? CGFloat ?? 10
-
- userDefaults.set(opacity / 255.0, forKey: CHighlightNoteOpacityKey)
- }
- }
- }
- } else if key == "underline" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if innerKey == "color" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CUnderlineNoteColorKey)
- } else if innerKey == "alpha" {
- let opacity = innerValue as? CGFloat ?? 10
-
- userDefaults.set(opacity / 255.0, forKey: CUnderlineNoteOpacityKey)
- }
- }
- }
- } else if key == "squiggly" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if innerKey == "color" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CSquigglyNoteColorKey)
- } else if innerKey == "alpha" {
- let opacity = innerValue as? CGFloat ?? 10
-
- userDefaults.set(opacity / 255.0, forKey: CSquigglyNoteOpacityKey)
- }
- }
- }
- } else if key == "strikeout" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if innerKey == "color" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CStrikeOutNoteColorKey)
- } else if innerKey == "alpha" {
- let opacity = innerValue as? CGFloat ?? 10
-
- userDefaults.set(opacity / 255.0, forKey: CStrikeOutNoteOpacityKey)
- }
- }
- }
- } else if key == "ink" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if innerKey == "color" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- CPDFKitConfig.sharedInstance().setFreehandAnnotationColor(color)
- } else if innerKey == "alpha" {
- let opacity = innerValue as? CGFloat ?? 10
- CPDFKitConfig.sharedInstance().setFreehandAnnotationOpacity((opacity / 255.0) * 100)
- } else if innerKey == "borderWidth" {
- let borderWidth = innerValue as? CGFloat ?? 1
- CPDFKitConfig.sharedInstance().setFreehandAnnotationBorderWidth(borderWidth)
- }
- }
- }
- } else if key == "square" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if innerKey == "fillColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CSquareNoteInteriorColorKey)
- } else if innerKey == "borderColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CSquareNoteColorKey)
- } else if innerKey == "colorAlpha" {
- let opacity = innerValue as? CGFloat ?? 10
- userDefaults.set(opacity / 255.0, forKey: CSquareNoteOpacityKey)
- userDefaults.set(opacity / 255.0, forKey: CSquareNoteInteriorOpacityKey)
- } else if innerKey == "borderWidth" {
- let borderWidth = innerValue as? CGFloat ?? 1
- userDefaults.set(borderWidth, forKey: CSquareNoteLineWidthKey)
- } else if innerKey == "borderStyle" {
- if let innerDict = innerValue as? [String: Any] {
- for (innerSubKey, innerSubValue) in innerDict {
- if innerSubKey == "style" {
- let innerValueString = innerSubValue as? String ?? ""
- if innerValueString == "solid" {
- userDefaults.set(0, forKey: CSquareNoteLineStyleKey)
- } else if innerValueString == "dashed" {
- userDefaults.set(1, forKey: CSquareNoteLineStyleKey)
- }
- } else if innerSubKey == "dashGap" {
- let dashPattern = innerSubValue as? Int ?? 0
- userDefaults.set(dashPattern, forKey: CSquareNoteDashPatternKey )
- }
- }
- }
- }
- }
- }
- } else if key == "circle" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if innerKey == "fillColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CCircleNoteInteriorColorKey)
- } else if innerKey == "borderColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CCircleNoteColorKey)
- } else if innerKey == "colorAlpha" {
- let opacity = innerValue as? CGFloat ?? 10
- userDefaults.set(opacity / 255.0, forKey: CCircleNoteOpacityKey)
- userDefaults.set(opacity / 255.0, forKey: CCircleNoteInteriorOpacityKey)
- } else if innerKey == "borderWidth" {
- let borderWidth = innerValue as? CGFloat ?? 1
- userDefaults.set(borderWidth, forKey: CCircleNoteLineWidthKey)
- } else if innerKey == "borderStyle" {
- if let innerDict = innerValue as? [String: Any] {
- for (innerSubKey, innerSubValue) in innerDict {
- if innerSubKey == "style" {
- let innerValueString = innerSubValue as? String ?? ""
- if innerValueString == "solid" {
- userDefaults.set(0, forKey: CCircleNoteLineStyleKey)
- } else if innerValueString == "dashed" {
- userDefaults.set(1, forKey: CCircleNoteLineStyleKey)
- }
- } else if innerSubKey == "dashGap" {
- let dashPattern = innerSubValue as? Int ?? 0
- userDefaults.set(dashPattern, forKey: CCircleNoteDashPatternKey )
- }
- }
- }
- }
- }
- }
- } else if key == "line" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if innerKey == "borderColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CLineNoteColorKey)
- } else if innerKey == "borderAlpha" {
- let opacity = innerValue as? CGFloat ?? 10
- userDefaults.set(opacity / 255.0, forKey: CLineNoteOpacityKey)
- } else if innerKey == "borderWidth" {
- let borderWidth = innerValue as? CGFloat ?? 1
- userDefaults.set(borderWidth, forKey: CLineNoteLineWidthKey)
- } else if innerKey == "borderStyle" {
- if let innerDict = innerValue as? [String: Any] {
- for (innerSubKey, innerSubValue) in innerDict {
- if innerSubKey == "style" {
- let innerValueString = innerSubValue as? String ?? ""
- if innerValueString == "solid" {
- userDefaults.set(0, forKey: CLineNoteLineStyleKey)
- } else if innerValueString == "dashed" {
- userDefaults.set(1, forKey: CLineNoteLineStyleKey)
- }
- } else if innerSubKey == "dashGap" {
- let dashPattern = innerSubValue as? Int ?? 0
- userDefaults.set(dashPattern, forKey: CLineNoteDashPatternKey )
- }
- }
- }
- }
- }
-
- userDefaults.set(0, forKey: CLineNoteStartStyleKey)
- userDefaults.set(0, forKey: CLineNoteEndStyleKey)
- }
- } else if key == "arrow" {
- if let innerDict = value as? [String: Any] {
- for (innerKey, innerValue) in innerDict {
- if innerKey == "borderColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CArrowNoteColorKey)
- } else if innerKey == "borderAlpha" {
- let opacity = innerValue as? CGFloat ?? 10
- userDefaults.set(opacity / 255.0, forKey: CArrowNoteOpacityKey)
- } else if innerKey == "borderWidth" {
- let borderWidth = innerValue as? CGFloat ?? 1
- userDefaults.set(borderWidth, forKey: CArrowNoteLineWidthKey)
- } else if innerKey == "borderStyle" {
- if let innerDict = innerValue as? [String: Any] {
- for (innerSubKey, innerSubValue) in innerDict {
- if innerSubKey == "style" {
- let innerValueString = innerSubValue as? String ?? ""
- if innerValueString == "solid" {
- userDefaults.set(0, forKey: CArrowNoteLineStyleKey)
- } else if innerValueString == "dashed" {
- userDefaults.set(1, forKey: CArrowNoteLineStyleKey)
- }
- } else if innerSubKey == "dashGap" {
- let dashPattern = innerSubValue as? Int ?? 0
- userDefaults.set(dashPattern, forKey: CArrowNoteDashPatternKey )
- }
- }
- }
- } else if innerKey == "startLineType" {
- let innerValueString = innerValue as? String ?? ""
- if innerValueString == "none" {
- userDefaults.set(0, forKey: CArrowNoteStartStyleKey)
- } else if innerValueString == "openArrow" {
- userDefaults.set(1, forKey: CArrowNoteStartStyleKey)
- } else if innerValueString == "closedArrow" {
- userDefaults.set(2, forKey: CArrowNoteStartStyleKey)
- } else if innerValueString == "square" {
- userDefaults.set(3, forKey: CArrowNoteStartStyleKey)
- } else if innerValueString == "circle" {
- userDefaults.set(4, forKey: CArrowNoteStartStyleKey)
- } else if innerValueString == "diamond" {
- userDefaults.set(5, forKey: CArrowNoteStartStyleKey)
- }
- } else if innerKey == "tailLineType" {
- let innerValueString = innerValue as? String ?? ""
- if innerValueString == "none" {
- userDefaults.set(0, forKey: CArrowNoteEndStyleKey)
- } else if innerValueString == "openArrow" {
- userDefaults.set(1, forKey: CArrowNoteEndStyleKey)
- } else if innerValueString == "closedArrow" {
- userDefaults.set(2, forKey: CArrowNoteEndStyleKey)
- } else if innerValueString == "square" {
- userDefaults.set(3, forKey: CArrowNoteEndStyleKey)
- } else if innerValueString == "circle" {
- userDefaults.set(4, forKey: CArrowNoteEndStyleKey)
- } else if innerValueString == "diamond" {
- userDefaults.set(5, forKey: CArrowNoteEndStyleKey)
- }
- }
- }
- }
- } else if key == "freeText" {
- if let innerDict = value as? [String: Any] {
- var isBold = false
- var isItalic = false
- var baseName = ""
-
- for (innerKey, innerValue) in innerDict {
- if innerKey == "fontColor" {
- let string = innerValue as? String ?? ""
- let color = UserDefaults.colorWithHexString(string)
- userDefaults.setPDFListViewColor(color, forKey: CFreeTextNoteFontColorKey)
- } else if innerKey == "fontColorAlpha" {
- let opacity = innerValue as? CGFloat ?? 10
-
- userDefaults.set(opacity / 255.0, forKey: CFreeTextNoteOpacityKey)
- } else if innerKey == "fontSize" {
- let fontSize = innerValue as? CGFloat ?? 10
- userDefaults.set(fontSize, forKey: CFreeTextNoteFontSizeKey)
- } else if innerKey == "isBold" {
- isBold = innerValue as? Bool ?? false
- } else if innerKey == "isItalic" {
- isItalic = innerValue as? Bool ?? false
- } else if innerKey == "alignment" {
- let string = innerValue as? String ?? ""
-
- if string == "left" {
- userDefaults.set(0, forKey: CFreeTextNoteAlignmentKey)
- } else if string == "center" {
- userDefaults.set(1, forKey: CFreeTextNoteAlignmentKey)
- } else if string == "right" {
- userDefaults.set(2, forKey: CFreeTextNoteAlignmentKey)
- }
- } else if innerKey == "typeface" {
- baseName = innerValue as? String ?? "Helvetica"
- }
- }
-
- let constructName = CPDFJSONDataParse.constructionFontName(BaseName: baseName, isBold: isBold, isItalic: isItalic)
- userDefaults.set(baseName, forKey: CFreeTextNoteFontFamilyNameKey)
- userDefaults.set(constructName, forKey: CFreeTextNoteFontNewStyleKey)
- }
- }
- }
-
- userDefaults.synchronize()
- }
-
- class func constructionFontName(BaseName baseName: String, isBold: Bool, isItalic: Bool) -> String {
- var result: String = ""
- if baseName.range(of: "Times") != nil {
- if isBold || isItalic {
- if isBold && isItalic {
- return "BoldItalic"
- }
- if isBold {
- return "Bold"
- }
- if isItalic {
- return "Italic"
- }
- } else {
- return "Roman"
- }
- }
-
- if isBold || isItalic {
- if isBold {
- result = "Bold"
- }
- if isItalic {
- result = "Oblique"
- }
- } else {
- return ""
- }
-
- return result
- }
- }
|