Browse Source

转档-转图片UI调整

tangchao 1 year ago
parent
commit
ecc3acc569

+ 8 - 0
PDF Office/PDF Master.xcodeproj/project.pbxproj

@@ -2130,6 +2130,9 @@
 		BB2F18462A0C7E250003F65E /* KMConvertBaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F18452A0C7E250003F65E /* KMConvertBaseView.swift */; };
 		BB2F18472A0C7E250003F65E /* KMConvertBaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F18452A0C7E250003F65E /* KMConvertBaseView.swift */; };
 		BB2F18482A0C7E250003F65E /* KMConvertBaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F18452A0C7E250003F65E /* KMConvertBaseView.swift */; };
+		BB2F184A2A0C911B0003F65E /* KMBaseWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F18492A0C911B0003F65E /* KMBaseWindowController.swift */; };
+		BB2F184B2A0C911B0003F65E /* KMBaseWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F18492A0C911B0003F65E /* KMBaseWindowController.swift */; };
+		BB2F184C2A0C911B0003F65E /* KMBaseWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F18492A0C911B0003F65E /* KMBaseWindowController.swift */; };
 		BB2F61502966A91D001CB369 /* KMBackgroundPropertyHomeController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F614E2966A91D001CB369 /* KMBackgroundPropertyHomeController.swift */; };
 		BB2F61512966A91D001CB369 /* KMBackgroundPropertyHomeController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F614E2966A91D001CB369 /* KMBackgroundPropertyHomeController.swift */; };
 		BB2F61522966A91D001CB369 /* KMBackgroundPropertyHomeController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F614E2966A91D001CB369 /* KMBackgroundPropertyHomeController.swift */; };
@@ -4226,6 +4229,7 @@
 		BB2EDF68296ECE17003BCF58 /* KMPageEditInsertPageSizeItemView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMPageEditInsertPageSizeItemView.swift; sourceTree = "<group>"; };
 		BB2EDF69296ECE17003BCF58 /* KMPageEditThumbnailItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMPageEditThumbnailItem.swift; sourceTree = "<group>"; };
 		BB2F18452A0C7E250003F65E /* KMConvertBaseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMConvertBaseView.swift; sourceTree = "<group>"; };
+		BB2F18492A0C911B0003F65E /* KMBaseWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBaseWindowController.swift; sourceTree = "<group>"; };
 		BB2F614E2966A91D001CB369 /* KMBackgroundPropertyHomeController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBackgroundPropertyHomeController.swift; sourceTree = "<group>"; };
 		BB2F614F2966A91D001CB369 /* KMBackgroundPropertyHomeController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMBackgroundPropertyHomeController.xib; sourceTree = "<group>"; };
 		BB2F61562966B69D001CB369 /* KMWatermarkPropertyHomeController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMWatermarkPropertyHomeController.swift; sourceTree = "<group>"; };
@@ -7785,6 +7789,7 @@
 			isa = PBXGroup;
 			children = (
 				BB6B43652A04919200E02B54 /* KMBaseViewController.swift */,
+				BB2F18492A0C911B0003F65E /* KMBaseWindowController.swift */,
 			);
 			path = Base;
 			sourceTree = "<group>";
@@ -10155,6 +10160,7 @@
 				AD015FB729AB484400A57062 /* KMLightMemberConfig.swift in Sources */,
 				BBD1F77C296F9BE000343885 /* KMPageEditSettingBaseWindowController.swift in Sources */,
 				8931683A296E436B0073EA59 /* KMSignatureWindowController.m in Sources */,
+				BB2F184A2A0C911B0003F65E /* KMBaseWindowController.swift in Sources */,
 				BBF38A5A294F2B760086D025 /* KMWatermarkPositionView.swift in Sources */,
 				89E93EDE2999DA6D00F10F66 /* KMNoteFilterCollevtionViewItem.m in Sources */,
 				BBB7B4912A03AD2A00B58A5A /* KMPDFEditToolbar.swift in Sources */,
@@ -10930,6 +10936,7 @@
 				AD015FB829AB484400A57062 /* KMLightMemberConfig.swift in Sources */,
 				BBD1F77D296F9BE000343885 /* KMPageEditSettingBaseWindowController.swift in Sources */,
 				8931683B296E436B0073EA59 /* KMSignatureWindowController.m in Sources */,
+				BB2F184B2A0C911B0003F65E /* KMBaseWindowController.swift in Sources */,
 				9FDD0FB329534FEA000C4DAD /* KMGlobal.swift in Sources */,
 				89E93EDF2999DA6D00F10F66 /* KMNoteFilterCollevtionViewItem.m in Sources */,
 				BBB7B4922A03AD2A00B58A5A /* KMPDFEditToolbar.swift in Sources */,
@@ -11800,6 +11807,7 @@
 				AD0FA4F229A8580D00EDEB50 /* KMComparativeTableView.swift in Sources */,
 				BB49ED10293F462E00C82CA2 /* KMConvertImageWindowController.swift in Sources */,
 				BBF38A60294F42FF0086D025 /* KMWatermarkAdjectiveStepper.swift in Sources */,
+				BB2F184C2A0C911B0003F65E /* KMBaseWindowController.swift in Sources */,
 				BBA93D2F29BEBAA60044E0DD /* KMPreferenceEnum.swift in Sources */,
 				89E4E76329656A88002DBA6F /* KMAnnotationStampViewController.m in Sources */,
 				BB89726B294DB41D0045787C /* KMWatermarkAdjectivePositionView.swift in Sources */,

+ 32 - 0
PDF Office/PDF Master.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -692,5 +692,37 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "22756FA1-2E30-4915-8094-A4AE69967E1D"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/PDFTools/Convert/Controller/KMConvertWordWindowController.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "33"
+            endingLineNumber = "33"
+            landmarkName = "windowDidLoad()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "CEAB6BB6-1EDA-4C13-8BB9-BF9E6CCAD87E"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/PDFTools/Convert/Controller/KMConvertWordWindowController.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "36"
+            endingLineNumber = "36"
+            landmarkName = "windowDidLoad()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>

+ 22 - 0
PDF Office/PDF Master/Class/Common/Base/KMBaseWindowController.swift

@@ -0,0 +1,22 @@
+//
+//  KMBaseWindowController.swift
+//  PDF Master
+//
+//  Created by tangchao on 2023/5/11.
+//
+
+import Cocoa
+
+class KMBaseWindowController: NSWindowController {
+    
+    override func windowDidLoad() {
+        super.windowDidLoad()
+    
+        // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
+        self.initSubViews()
+        self.initDefaultValue()
+    }
+    
+    func initSubViews() {}
+    func initDefaultValue() {}
+}

+ 1 - 1
PDF Office/PDF Master/Class/Common/KMCommonDefine.swift

@@ -27,7 +27,7 @@ typealias KMItemClickBlock<T> = (_ item: T?, _ index: Int)->()
 typealias KMCommonClickBlock = (_ index: Int, _ params: Any...)->()
 typealias KMCommonBlock = (_ params: Any...)->()
 
-typealias KMValueDidChangeBlock = (_ value: Any?, [NSKeyValueChangeKey : Any]?)->()
+typealias KMValueDidChangeBlock = (_ value: Any?, _ change: [NSKeyValueChangeKey : Any]?)->()
 
 // MARK: - 其他
 

+ 12 - 4
PDF Office/PDF Master/Class/PDFTools/Convert/Common/Base/KMConvertBaseView.swift

@@ -7,11 +7,8 @@
 
 import Cocoa
 
-typealias KMConvertSettingViewLanugageDidSelectedCallback = (_ index: Int) -> ()
-
+// 转档视图基类
 class KMConvertBaseView: NSView, NibLoadable {
-
-    var lanugageDidSelected: KMConvertSettingViewLanugageDidSelectedCallback?
     
     override func draw(_ dirtyRect: NSRect) {
         super.draw(dirtyRect)
@@ -31,4 +28,15 @@ class KMConvertBaseView: NSView, NibLoadable {
         let views = Array<Any>(results).filter { $0 is Self }
         return views.last as? Self
     }
+    
+    override func awakeFromNib() {
+        super.awakeFromNib()
+        
+        self.initSubViews()
+        self.initDefaultVlaue()
+    }
+    
+    func initDefaultVlaue() {}
+    func initSubViews() {}
+    
 }

+ 76 - 75
PDF Office/PDF Master/Class/PDFTools/Convert/Controller/KMConvertBaseWindowController.swift

@@ -5,11 +5,10 @@
 //  Created by tangchao on 2022/12/5.
 //
 
-import Cocoa
 import PDFKit
 
 typealias KMConvertBaseWindowControllerItemClick = (Int) -> ()
-class KMConvertBaseWindowController: NSWindowController {
+class KMConvertBaseWindowController: KMBaseWindowController {
     
     @IBOutlet weak var titleLabel: NSTextField!
     
@@ -42,9 +41,6 @@ class KMConvertBaseWindowController: NSWindowController {
     var pageRangeString: String = ""
     var settingView: KMConvertSettingView?
     
-    private var maskView: NSButton?
-    private var indicator: NSProgressIndicator?
-    
     var subType: Int = 0
     
     var fileExtension: String {
@@ -78,8 +74,6 @@ class KMConvertBaseWindowController: NSWindowController {
     override func windowDidLoad() {
         super.windowDidLoad()
         
-        self.totalNumberLabel.lineBreakMode = .byTruncatingTail
-        
         if (self.documentModel != nil) {
             let document = CPDFDocument(url: self.documentModel!.documentURL)
             if (document!.isLocked) {
@@ -96,49 +90,96 @@ class KMConvertBaseWindowController: NSWindowController {
             self.prePDFView?.documentView().enclosingScrollView?.hasHorizontalScroller = false
         }
         
+        if let pageCount = self.prePDFView?.document.pageCount {
+            self.settingView?.pageCount = Int(pageCount)
+        }
+
+        batchButton.title = NSLocalizedString("Batch", comment: "")
+        batchButton.isBordered = false
+        batchButton.wantsLayer = true
+        batchButton.layer?.borderWidth = 1
+        batchButton.layer?.cornerRadius = 4
+        batchButton.target = self
+        batchButton.action = #selector(batchButtonAction)
+        batchButton.isHidden = true
+        
+        self.updateBackAndNextButtonState()
+    }
+    
+    override func initSubViews() {
+        super.initSubViews()
+        
+        let view = self.initSettingView()
+        view?.frame = self.rightScrollView.bounds
+        view?.autoresizingMask = [.width, .height]
+        self.settingView = view
+        self.rightScrollView.documentView = view
+
+        view?.pageRangeDidChange = { [unowned self] pageRange in
+            self.pageRange = pageRange
+            if (pageRange != .custom) {
+                self.updatePreView(pageRange: pageRange)
+            }
+        }
+        view?.pageRangeDidInputFinishCallback = { [unowned self] string in
+            self.pageRangeString = string
+            let array = self.findSelectPage(pageRangeString: string)
+            if array.count == 0 {
+                let alert = NSAlert()
+                alert.alertStyle = .warning
+                alert.messageText = NSLocalizedString("Invalid page range or the page number is out of range. Please try again.", comment: "")
+                alert.runModal()
+            } else {
+                self.updatePreView(pageRange: .custom, pageString: string)
+            }
+        }
+        
+        self.backButtonVC = KMDesignButton.init(withType: .Image)
+        self.backBox.contentView = self.backButtonVC!.view
+        
+        self.nextButtonVC = KMDesignButton.init(withType: .Image)
+        self.nextBox.contentView = self.nextButtonVC!.view
+        
+        self.canelButtonVC = KMDesignButton.init(withType: .Text)
+        self.canelBox.contentView = self.canelButtonVC!.view
+        
+        self.convertButtonVC = KMDesignButton.init(withType: .Text)
+        self.convertBox.contentView = self.convertButtonVC!.view
+    }
+    
+    override func initDefaultValue() {
+        super.initDefaultValue()
+        
+        self.totalNumberLabel.lineBreakMode = .byTruncatingTail
+        
         self.prePDFView?.setDisplay(.singlePage)
         self.prePDFView?.layoutDocumentView()
         self.prePDFView?.autoScales = true
         self.prePDFView?.delegate = self
         
         self.backBox.fillColor = .clear
-        self.backButtonVC = KMDesignButton.init(withType: .Image)
-        self.backBox.contentView = self.backButtonVC!.view
         self.backButtonVC?.target = self
         self.backButtonVC?.action = #selector(backButtonAction)
         self.backButtonVC?.image = NSImage(named: "KMImageNameLeftButtonImage")!
         self.backButtonVC?.image_disabled = NSImage(named: "KMImageNameLeftButtonImageDis")!
         self.backButtonVC?.pagination()
         
-        numberBox.wantsLayer = true
+        self.numberBox.wantsLayer = true
         self.numberBox.layer?.backgroundColor = NSColor.white.cgColor
-        numberBox.layer?.borderWidth = 1
-        numberBox.layer?.cornerRadius = 4
-        numberTextField.focusRingType = .none
-        numberTextField.delegate = self
+        self.numberBox.layer?.borderWidth = 1
+        self.numberBox.layer?.cornerRadius = 4
+        self.numberTextField.focusRingType = .none
+        self.numberTextField.delegate = self
         self.numberTextField.isBordered = false
         
         self.nextBox.fillColor = .clear
-        self.nextButtonVC = KMDesignButton.init(withType: .Image)
-        self.nextBox.contentView = self.nextButtonVC!.view
         self.nextButtonVC?.target = self
         self.nextButtonVC?.action = #selector(nextButtonAction)
         self.nextButtonVC?.image = NSImage(named: "KMImageNameRightButtonImage")!
         self.nextButtonVC?.image_disabled = NSImage(named: "KMImageNameRightButtonImageDis")!
         self.nextButtonVC?.pagination()
-
-        batchButton.title = NSLocalizedString("Batch", comment: "")
-        batchButton.isBordered = false
-        batchButton.wantsLayer = true
-        batchButton.layer?.borderWidth = 1
-        batchButton.layer?.cornerRadius = 4
-        batchButton.target = self
-        batchButton.action = #selector(batchButtonAction)
-        batchButton.isHidden = true
         
         self.canelBox.fillColor = .clear
-        self.canelButtonVC = KMDesignButton.init(withType: .Text)
-        self.canelBox.contentView = self.canelButtonVC!.view
         self.canelButtonVC?.target = self
         self.canelButtonVC?.action = #selector(cancelButtonAction)
         self.canelButtonVC?.stringValue = NSLocalizedString("Cancel", comment: "")
@@ -146,19 +187,16 @@ class KMConvertBaseWindowController: NSWindowController {
         self.canelButtonVC?.button.keyEquivalent = KMKeyEquivalent.esc.string()
         
         self.convertBox.fillColor = .clear
-        self.convertButtonVC = KMDesignButton.init(withType: .Text)
-        self.convertBox.contentView = self.convertButtonVC!.view
         self.convertButtonVC?.target = self
         self.convertButtonVC?.action = #selector(convertButtonAction)
         self.convertButtonVC?.stringValue = NSLocalizedString("Convert", comment: "")
         self.convertButtonVC?.button(type: .Cta, size: .m)
 //        convertButtonVC.button.keyEquivalent = KMKeyEquivalent.enter
+        
         self.rightScrollView.hasVerticalScroller = false
         self.rightScrollView.hasHorizontalScroller = false
         
         self.initUIProperty()
-        
-        self.updateBackAndNextButtonState()
     }
     
     private func initUIProperty() {
@@ -178,6 +216,11 @@ class KMConvertBaseWindowController: NSWindowController {
         self.batchButton.font = .SFProTextRegular(14)
     }
     
+    func initSettingView() -> KMConvertSettingView? {
+        let settingView = KMConvertSettingView.createFromNib()
+        return settingView
+    }
+    
     public func initConvert() -> KMPDFConvert {
         return KMPDFConvert()
     }
@@ -427,50 +470,6 @@ class KMConvertBaseWindowController: NSWindowController {
         return result
     }
     
-    /// 开始加载loading
-    func beginLoading() {
-        DispatchQueue.main.async { [self] in
-            self.maskView = NSButton()
-            self.maskView?.isBordered = false
-            self.maskView?.title = ""
-            self.maskView?.wantsLayer = true
-            self.maskView?.layer?.backgroundColor = NSColor(white: 1, alpha: 0.3 ).cgColor
-            self.maskView?.target = self
-            self.maskView?.action = #selector(maskViewClick)
-            self.maskView?.frame = (self.window?.contentView!.bounds)!
-            self.maskView?.autoresizingMask = [.width, .height]
-            self.window?.contentView?.addSubview(self.maskView!)
-            
-            self.indicator = NSProgressIndicator()
-            self.indicator?.style = .spinning
-            self.indicator?.controlSize = .regular
-            self.indicator?.isIndeterminate = true
-            self.window?.contentView?.addSubview(self.indicator!)
-            let indicatorSize: CGFloat = 32
-            self.indicator?.frame = NSMakeRect(0.5*(NSWidth((self.window?.contentView!.frame)!)-indicatorSize), 0.5*(NSHeight((self.window?.contentView!.frame)!)-indicatorSize), indicatorSize, indicatorSize)
-            self.indicator?.autoresizingMask = NSView.AutoresizingMask(rawValue: 45)
-            
-            self.indicator?.startAnimation(nil)
-        }
-    }
-    
-    /// 结束加载loading
-    func endLoading() {
-        DispatchQueue.main.async {
-            self.indicator?.stopAnimation(nil)
-            
-            self.indicator?.removeFromSuperview()
-            self.indicator = nil
-            
-            self.maskView?.removeFromSuperview()
-            self.maskView = nil
-        }
-    }
-    
-    @objc func maskViewClick() {
-        
-    }
-    
     // MARK: -
     // MARK: Private Methods
     
@@ -650,6 +649,8 @@ class KMConvertBaseWindowController: NSWindowController {
     
     // MARK: Progress
     func showProgressWindow() {
+        self.hiddenProgressWindow()
+        
         let progress = SKProgressController()
         progress.message = NSLocalizedString("Converting...", comment: "")
         progress.window?.backgroundColor = NSColor(hex: "#36383B")

+ 4 - 1
PDF Office/PDF Master/Class/PDFTools/Convert/Controller/KMConvertExcelWindowController.swift

@@ -26,7 +26,10 @@ class KMConvertExcelWindowController: KMConvertBaseWindowController {
             view?.pageCount = Int(pageCount)
         }
         
-        view?.lanugageDidSelected = { [unowned self] index in
+        view?.lanugageDidSelected = { [unowned self] value, _ in
+            guard let index = value as? Int else {
+                return
+            }
             /// 存储用户的选择
             self.saveLanugageSelectedIndex(index: index)
         }

+ 17 - 44
PDF Office/PDF Master/Class/PDFTools/Convert/Controller/KMConvertImageWindowController.swift

@@ -9,39 +9,14 @@ import Cocoa
 
 class KMConvertImageWindowController: KMConvertBaseWindowController {
     
-    override func windowDidLoad() {
-        super.windowDidLoad()
-
-        self.titleLabel.stringValue = NSLocalizedString("PDF to Image", comment: "")
-        
-        let view = KMConvertImageSettingView.createFromNib()
-        view?.frame = self.rightScrollView.bounds
-        view?.autoresizingMask = [.width, .height]
-        self.settingView = view
-        if let pageCount = self.prePDFView?.document.pageCount {
-            view?.pageCount = Int(pageCount)
-        }
-        
-        view?.pageRangeDidChange = { [unowned self] pageRange in
-            self.pageRange = pageRange
-            if (pageRange != .custom) {
-                self.updatePreView(pageRange: pageRange)
-            }
-        }
-        view?.pageRangeDidInputFinishCallback = { [unowned self] string in
-            self.pageRangeString = string
-            let array = findSelectPage(pageRangeString: string)
-            if array.count == 0 {
-                let alert = NSAlert()
-                alert.alertStyle = .warning
-                alert.messageText = NSLocalizedString("Invalid page range or the page number is out of range. Please try again.", comment: "")
-                alert.runModal()
-            } else {
-                self.updatePreView(pageRange: .custom, pageString: string)
-            }
-        }
+    override func initDefaultValue() {
+        super.initDefaultValue()
         
-        self.rightScrollView.documentView = view
+        self.titleLabel.stringValue = NSLocalizedString("PDF to Image", comment: "")
+    }
+    
+    override func initSettingView() -> KMConvertSettingView? {
+        return KMConvertImageSettingView.createFromNib()
     }
     
     override func initConvert() -> KMPDFConvert {
@@ -50,28 +25,27 @@ class KMConvertImageWindowController: KMConvertBaseWindowController {
     
     override func convertModelAppendParams(convert: KMPDFConvert) {
         let settingView: KMConvertImageSettingView = self.settingView as! KMConvertImageSettingView
-        /// ["JPEG","JPG","PNG","GIF","TIFF","TGA","BMP","JPEG-2000"])
-        if settingView.selectedFormatIndex == 0 {
+        
+        if (settingView.selectedFormatIndex == 0) {
             convert.convertType = .jpeg
-        } else if settingView.selectedFormatIndex == 1 {
+        } else if (settingView.selectedFormatIndex == 1) {
             convert.convertType = .jpg
-        } else if settingView.selectedFormatIndex == 2 {
+        } else if (settingView.selectedFormatIndex == 2) {
             convert.convertType = .png
-        } else if settingView.selectedFormatIndex == 3 {
+        } else if (settingView.selectedFormatIndex == 3) {
             convert.convertType = .gif
-        } else if settingView.selectedFormatIndex == 4 {
+        } else if (settingView.selectedFormatIndex == 4) {
             convert.convertType = .tiff
-        } else if settingView.selectedFormatIndex == 5 {
+        } else if (settingView.selectedFormatIndex == 5) {
             convert.convertType = .tga
-        } else if settingView.selectedFormatIndex == 6 {
+        } else if (settingView.selectedFormatIndex == 6) {
             convert.convertType = .bmp
-        } else if settingView.selectedFormatIndex == 7 {
+        } else if (settingView.selectedFormatIndex == 7) {
             convert.convertType = .jp2
         } else {
             convert.convertType = .jpeg
         }
         
-        /// ["50 dpi", "72 dpi", "96 dpi", "150 dpi", "300 dpi", "600 dpi"])
         var dpi: Int = 150
         if settingView.selectedResolutionIndex == 0 {
             dpi = 50
@@ -88,7 +62,6 @@ class KMConvertImageWindowController: KMConvertBaseWindowController {
         } else {
             dpi = 150
         }
-        convert.options = [KMPDFConvertOptionsKeyImageDPI:dpi,KMPDFConvertOptionsKeyImageWithAnnotation:true]
+        convert.options = [KMPDFConvertOptionsKeyImageDPI : dpi, KMPDFConvertOptionsKeyImageWithAnnotation : true]
     }
-    
 }

+ 4 - 1
PDF Office/PDF Master/Class/PDFTools/Convert/Controller/KMConvertPPTsWindowController.swift

@@ -43,7 +43,10 @@ class KMConvertPPTsWindowController: KMConvertBaseWindowController {
         if let pageCount = self.prePDFView?.document.pageCount {
             view?.pageCount = Int(pageCount)
         }
-        view?.lanugageDidSelected = { [unowned self] index in
+        view?.lanugageDidSelected = { [unowned self] value, _ in
+            guard let index = value as? Int else {
+                return
+            }
             /// 存储用户的选择
             saveLanugageSelectedIndex(index: index)
         }

+ 4 - 1
PDF Office/PDF Master/Class/PDFTools/Convert/Controller/KMConvertWordWindowController.swift

@@ -28,7 +28,10 @@ class KMConvertWordWindowController: KMConvertBaseWindowController {
         if let pageCount = self.prePDFView?.document.pageCount {
             view?.pageCount = Int(pageCount)
         }
-        view?.lanugageDidSelected = { [unowned self] index in
+        view?.lanugageDidSelected = { [unowned self] value, _ in
+            guard let index = value as? Int else {
+                return
+            }
             /// 存储用户的选择
             self.saveLanugageSelectedIndex(index: index)
         }

+ 2 - 2
PDF Office/PDF Master/Class/PDFTools/Convert/View/KMConvertExcelSettingView.swift

@@ -99,12 +99,12 @@ class KMConvertExcelSettingView: KMConvertSettingView {
         ocrItemView?.languageIndex = ocrLanuguageIndex
         self.ocrItemView = ocrItemView
         
-        ocrItemView?.lanugageDidSelected = { [unowned self] index in
+        ocrItemView?.lanugageDidSelected = { [unowned self] value, change in
             guard let callback = lanugageDidSelected else {
                 return
             }
             
-            callback(index)
+            callback(value, change)
         }
         
         let pageRangeItemView = KMConvertPageRangeSettingItemView.createFromNib()

+ 32 - 25
PDF Office/PDF Master/Class/PDFTools/Convert/View/KMConvertOCRSettingItemView.swift

@@ -18,11 +18,6 @@ class KMConvertOCRSettingItemView: KMConvertBaseView {
     }
     
     private var _languageVC: KMDesignSelect?
-    var languageVC: KMDesignSelect? {
-        get {
-            return self._languageVC
-        }
-    }
     
     private var _languageIndex: Int = 0
     var languageIndex: Int {
@@ -32,45 +27,57 @@ class KMConvertOCRSettingItemView: KMConvertBaseView {
         set {
             self._languageIndex = newValue
             
-            self.languageVC?.selectItem(at: newValue)
+            self._languageVC?.selectItem(at: newValue)
         }
     }
     
+    var lanugageDidSelected: KMValueDidChangeBlock?
+    
     override func awakeFromNib() {
         super.awakeFromNib()
         
+        self._checkAction()
+    }
+    
+    override func initSubViews() {
+        super.initSubViews()
+        
+        self._checkVC = KMDesignButton(withType: .CheckBox)
+        self.checkBox.contentView = self._checkVC!.view
+        
+        self._languageVC = KMDesignSelect(withType: .Combox)
+        self.languageBox.contentView = self._languageVC?.view
+    }
+    
+    override func initDefaultVlaue() {
+        super.initDefaultVlaue()
+        
         self.titleLabel.stringValue = NSLocalizedString("Text Recognition Settings", comment: "")
         self.titleLabel.textColor = NSColor(hex: "#616469")
         self.titleLabel.font = .SFProTextRegular(12)
         
         self.checkBox.fillColor = .clear
-        self._checkVC = KMDesignButton(withType: .CheckBox)
-        self.checkBox.contentView = self._checkVC!.view
         self._checkVC?.target = self
         self._checkVC?.action = #selector(checkBoxAction)
         self._checkVC?.stringValue = NSLocalizedString("Recognize text if needed", comment: "")
         self._checkVC?.checkbox_radio()
         self._checkVC?.state = .Checked
         
-        self._languageVC = KMDesignSelect(withType: .Combox)
-        self.languageBox.contentView = self._languageVC?.view
         self.languageBox.fillColor = .clear
-        self.languageVC?.delete = self
+        self._languageVC?.delete = self
 
-        self.languageVC?.removeAllItems()
-        self.languageVC?.addItems(withObjectValues: KMPDFConvertManager.defaultManager.ocrLanguageStrings)
-        if (self.languageIndex < self.languageVC!.numberOfItems) {
-            self.languageVC?.selectItem(at: self.languageIndex)
+        self._languageVC?.removeAllItems()
+        self._languageVC?.addItems(withObjectValues: KMPDFConvertManager.defaultManager.ocrLanguageStrings)
+        if (self.languageIndex < self._languageVC!.numberOfItems) {
+            self._languageVC?.selectItem(at: self.languageIndex)
         } else {
-            self.languageVC?.selectItem(at: 2)
+            self._languageVC?.selectItem(at: 2)
         }
-        
-        self._checkAction()
     }
     
     @objc func checkBoxAction(sender: NSButton) {
-        if let state = self.checkVC?.state {
-            self.checkVC?.state = state == .Checked ? .Norm : .Checked
+        if let state = self._checkVC?.state {
+            self._checkVC?.state = state == .Checked ? .Norm : .Checked
         }
         
         self._checkAction()
@@ -81,18 +88,18 @@ class KMConvertOCRSettingItemView: KMConvertBaseView {
     }
     
     private func _checkAction() {
-        guard let state = self.checkVC?.state else {
+        guard let state = self._checkVC?.state else {
             return
         }
         
-        self.languageVC?.enabled = state == .Checked
+        self._languageVC?.enabled = state == .Checked
     }
 }
 
 extension KMConvertOCRSettingItemView: KMSelectPopButtonDelegate {
     func km_comboBoxSelectionDidChange(_ obj: KMDesignSelect) {
-        if (obj.isEqual(to: self.languageVC)) {
-            guard let index = self.languageVC?.indexOfSelectedItem, index >= 0 else {
+        if (obj.isEqual(to: self._languageVC)) {
+            guard let index = self._languageVC?.indexOfSelectedItem, index >= 0 else {
                 return
             }
             self._languageIndex = index
@@ -100,7 +107,7 @@ extension KMConvertOCRSettingItemView: KMSelectPopButtonDelegate {
             guard let callback = self.lanugageDidSelected else {
                 return
             }
-            callback(index)
+            callback(index, nil)
         }
     }
 }

+ 2 - 2
PDF Office/PDF Master/Class/PDFTools/Convert/View/KMConvertPPTsSettingView.swift

@@ -20,12 +20,12 @@ class KMConvertPPTsSettingView: KMConvertSettingView {
 //            ocrItemView?.languageIndex = ocrLanuguageIndex
             self.ocrItemView = view
             
-            ocrItemView?.lanugageDidSelected = { [unowned self] index in
+            ocrItemView?.lanugageDidSelected = { [unowned self] value, change in
                 guard let callback = self.lanugageDidSelected else {
                     return
                 }
                 
-                callback(index)
+                callback(value, change)
             }
         }
         

+ 2 - 8
PDF Office/PDF Master/Class/PDFTools/Convert/View/KMConvertSettingView.swift

@@ -10,6 +10,7 @@ let kKMConvertLanugageSelectedIndex: String = "KMConvertLanugageSelectedIndex"
 typealias KMConvertSettingViewPageRangeDidChangeCallback = (_ pageRange: KMPageRange) -> Void
 typealias KMConvertSettingViewPageRangeDidInputFinishCallback = (_ pageRangeString: String) -> ()
 
+// 转档 设置视图 基类
 class KMConvertSettingView: KMConvertBaseView {
     private var _currentLanguage: String?
     var currentLanguage: String? {
@@ -53,6 +54,7 @@ class KMConvertSettingView: KMConvertBaseView {
     var pageRangeSelectedIndex: Int = 0
     var pageRangeDidChange: KMConvertSettingViewPageRangeDidChangeCallback?
     var pageRangeDidInputFinishCallback: KMConvertSettingViewPageRangeDidInputFinishCallback?
+    var lanugageDidSelected: KMValueDidChangeBlock?
     
     var ocrItemView: KMConvertOCRSettingItemView?
     var pageRangeItemView: KMConvertPageRangeSettingItemView?
@@ -71,14 +73,6 @@ class KMConvertSettingView: KMConvertBaseView {
             return state == .Checked
          }
     }
-    var ocrString: String {
-        get {
-            guard let stringValue = self.ocrItemView?.languageVC?.stringValue else {
-                return ""
-            }
-            return stringValue
-        }
-    }
     
     func getPageRangeString() -> String {
         return ""

+ 6 - 2
PDF Office/PDF Master/Class/PDFTools/Convert/View/KMConvertWordSettingView.swift

@@ -5,6 +5,8 @@
 //  Created by tangchao on 2022/12/6.
 //
 
+//typealias KMConvertSettingViewLanugageDidSelectedCallback = (_ index: Int) -> ()
+
 class KMConvertWordSettingView: KMConvertSettingView {
 
     @IBOutlet weak var pageSettingTitleLabel: NSTextField!
@@ -18,6 +20,8 @@ class KMConvertWordSettingView: KMConvertSettingView {
     // 流排 0 框排 1
     var pageSettingSelectedIndex: Int = 0
     
+//    var lanugageDidSelected: KMConvertSettingViewLanugageDidSelectedCallback?
+    
     override init(frame frameRect: NSRect) {
         super.init(frame: frameRect)
     }
@@ -58,12 +62,12 @@ class KMConvertWordSettingView: KMConvertSettingView {
             self.textOCRBox.contentView = view
             self.ocrItemView = view
             
-            view?.lanugageDidSelected = { [unowned self] index in
+            view?.lanugageDidSelected = { [unowned self] value, change in
                 guard let callback = self.lanugageDidSelected else {
                     return
                 }
                 
-                callback(index)
+                callback(value, change)
             }
         }
         self.ocrItemView?.languageIndex = self.ocrLanuguageIndex