Browse Source

【2025】【OCR】分包下载进度条补充

lizhe 1 month ago
parent
commit
27495a9f4d
24 changed files with 3205 additions and 28863 deletions
  1. 2 2
      PDF Office/KMComponentLibrary/KMComponentLibrary/View/Progress/ComponentProgressBigCircle.xib
  2. 2 2
      PDF Office/KMComponentLibrary/KMComponentLibrary/View/Progress/ComponentProgressCircle.xib
  3. 2 2
      PDF Office/KMComponentLibrary/KMComponentLibrary/View/Progress/ComponentProgressLine.xib
  4. 2 2
      PDF Office/KMComponentLibrary/KMComponentLibrary/View/Progress/ComponentProgressPopup.xib
  5. 3 3
      PDF Office/KMComponentLibrary/KMComponentLibrary/View/Progress/ComponentProgressWindowController.xib
  6. 50 0
      PDF Office/PDF Master/Class/KMResourceDownload/KMResourceDownloadManager.swift
  7. 2 2
      PDF Office/PDF Master/Class/PDFTools/OCRNew/Controller/KMLanguageViewController.xib
  8. 3 3
      PDF Office/PDF Master/Class/PDFTools/OCRNew/Controller/KMOCRPDFWindowController.xib
  9. 2 2
      PDF Office/PDF Master/KMClass/ComponentLibraryDemo/Demo/ProgressVC.xib
  10. 120 0
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Download/KMOCRDownloadView.swift
  11. 165 0
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Download/KMOCRDownloadView.xib
  12. 81 0
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Download/KMOCRDownloadViewController.swift
  13. 34 0
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Download/KMOCRDownloadViewController.xib
  14. 2 2
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Edit/View/KMOCRSettingView.xib
  15. 3 3
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Edit/Window/KMOCRSettingWindowController.xib
  16. 2 2
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Tool/Contoller/KMOCRController.xib
  17. 2 2
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Tool/View/Area/KMOCRAreaView.xib
  18. 1 87
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Tool/View/Page/KMOCRPageView.swift
  19. 2 2
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Tool/View/Page/KMOCRPageView.xib
  20. 0 43
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Tool/View/ProgressMask/KMOCRProgressView.swift
  21. 0 35
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Tool/View/ProgressMask/KMOCRProgressView.xib
  22. 2 2
      PDF Office/PDF Master/KMClass/NewBatch/View/Setting/OCR/KMBatchOCRView.xib
  23. 40 24
      PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj
  24. 2683 28643
      PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/lizhe.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

+ 2 - 2
PDF Office/KMComponentLibrary/KMComponentLibrary/View/Progress/ComponentProgressBigCircle.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
     <dependencies>
         <deployment identifier="macosx"/>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
     <objects>
     <objects>

+ 2 - 2
PDF Office/KMComponentLibrary/KMComponentLibrary/View/Progress/ComponentProgressCircle.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
     <dependencies>
         <deployment identifier="macosx"/>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
     <objects>
     <objects>

+ 2 - 2
PDF Office/KMComponentLibrary/KMComponentLibrary/View/Progress/ComponentProgressLine.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
     <dependencies>
         <deployment identifier="macosx"/>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
     <objects>
     <objects>

+ 2 - 2
PDF Office/KMComponentLibrary/KMComponentLibrary/View/Progress/ComponentProgressPopup.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
     <dependencies>
         <deployment identifier="macosx"/>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
     <objects>
     <objects>

+ 3 - 3
PDF Office/KMComponentLibrary/KMComponentLibrary/View/Progress/ComponentProgressWindowController.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
     <dependencies>
         <deployment identifier="macosx"/>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
     <objects>
     <objects>
@@ -20,7 +20,7 @@
             <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES" fullSizeContentView="YES"/>
             <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES" fullSizeContentView="YES"/>
             <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
             <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
             <rect key="contentRect" x="196" y="240" width="144" height="168"/>
             <rect key="contentRect" x="196" y="240" width="144" height="168"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/>
+            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/>
             <view key="contentView" id="se5-gp-TjO">
             <view key="contentView" id="se5-gp-TjO">
                 <rect key="frame" x="0.0" y="0.0" width="144" height="168"/>
                 <rect key="frame" x="0.0" y="0.0" width="144" height="168"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <autoresizingMask key="autoresizingMask"/>

+ 50 - 0
PDF Office/PDF Master/Class/KMResourceDownload/KMResourceDownloadManager.swift

@@ -27,6 +27,7 @@ enum KMResourceDownloadState {
     case moveFailed
     case moveFailed
     case success
     case success
     case retry
     case retry
+    case cancel
 }
 }
 
 
 struct Version: Comparable {
 struct Version: Comparable {
@@ -138,6 +139,8 @@ class KMResourceDownloadManager: NSObject {
         downloadTask = nil
         downloadTask = nil
         progressBlock = nil
         progressBlock = nil
         downloadResultBlock = nil
         downloadResultBlock = nil
+        
+        self.downloadResultBlock?(false, .cancel)
     }
     }
     
     
     //结果处理
     //结果处理
@@ -182,6 +185,53 @@ class KMResourceDownloadManager: NSObject {
     }
     }
 }
 }
 
 
+//MARK: UI
+extension KMResourceDownloadManager {
+    func downLoadOCRResource(window: NSWindow) {
+#if VERSION_DMG
+        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.3) {
+            KMResourceDownloadManager.manager.documentAIBundleExists(complete: { [weak self] result in
+                if result {
+                    
+                } else {
+                    let alert = NSAlert()
+                    alert.alertStyle = .critical
+                    alert.messageText = KMLocalizedString("Need DownLoad OCR Resource", comment: "")
+                    alert.addButton(withTitle: KMLocalizedString("OK", comment: ""))
+                    alert.addButton(withTitle: KMLocalizedString("Cancel", comment: ""))
+                    alert.beginSheetModal(for: NSWindow.currentWindow()) {[weak self] response in
+                        if response == NSApplication.ModalResponse.alertFirstButtonReturn {
+                            self?.downLoad(window: window)
+                        }
+                    }
+                }
+            })
+        }
+#endif
+    }
+    
+#if VERSION_DMG
+    func downLoad(window: NSWindow) {
+        let controller = KMOCRDownloadViewController(nibName: "KMOCRDownloadViewController", bundle: nil)
+        let tempWindow = NSWindow(contentViewController: controller)
+        tempWindow.maxSize = CGSizeMake(480, 208)
+        tempWindow.minSize = CGSizeMake(480, 208)
+        tempWindow.styleMask.remove(.resizable)
+        window.beginSheet(tempWindow)
+        
+        controller.closeAction = { [unowned self] controller2 in
+            window.endSheet(tempWindow)
+        }
+        
+        controller.completionAction = { [unowned self] controller2 in
+            window.endSheet(tempWindow)
+        }
+        
+        controller.begin()
+    }
+#endif
+}
+
 extension KMResourceDownloadManager: XMLParserDelegate {
 extension KMResourceDownloadManager: XMLParserDelegate {
     func downloadXML(completion: @escaping (_ content: String) -> Void) {
     func downloadXML(completion: @escaping (_ content: String) -> Void) {
         if let xmlURL = URL(string: xmlURLString) {
         if let xmlURL = URL(string: xmlURLString) {

+ 2 - 2
PDF Office/PDF Master/Class/PDFTools/OCRNew/Controller/KMLanguageViewController.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
     <dependencies>
     <dependencies>
         <deployment identifier="macosx"/>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
     <objects>
     <objects>

+ 3 - 3
PDF Office/PDF Master/Class/PDFTools/OCRNew/Controller/KMOCRPDFWindowController.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
     <dependencies>
         <deployment identifier="macosx"/>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="System colors introduced in macOS 10.14" minToolsVersion="10.0"/>
         <capability name="System colors introduced in macOS 10.14" minToolsVersion="10.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
@@ -269,7 +269,7 @@ Please try to change the OCR Plan to “Plan 2 (Offline)”</string>
                                     <rect key="frame" x="161" y="35" width="395" height="25"/>
                                     <rect key="frame" x="161" y="35" width="395" height="25"/>
                                     <popUpButtonCell key="cell" type="push" title="Item 3" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="cNL-S3-gJw" id="ZzG-hZ-YtK">
                                     <popUpButtonCell key="cell" type="push" title="Item 3" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="cNL-S3-gJw" id="ZzG-hZ-YtK">
                                         <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
                                         <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
-                                        <font key="font" metaFont="menu"/>
+                                        <font key="font" metaFont="message"/>
                                         <menu key="menu" id="OnY-X5-N8e">
                                         <menu key="menu" id="OnY-X5-N8e">
                                             <items>
                                             <items>
                                                 <menuItem title="Item 1" id="qEm-O8-rTN"/>
                                                 <menuItem title="Item 1" id="qEm-O8-rTN"/>

+ 2 - 2
PDF Office/PDF Master/KMClass/ComponentLibraryDemo/Demo/ProgressVC.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
     <dependencies>
         <deployment identifier="macosx"/>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
     <objects>
     <objects>

+ 120 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Download/KMOCRDownloadView.swift

@@ -0,0 +1,120 @@
+//
+//  KMOCRDownloadView.swift
+//  PDF Reader Pro
+//
+//  Created by kdanmobile on 2025/1/24.
+//
+
+import Cocoa
+import KMComponentLibrary
+
+typealias KMOCRDownloadViewCloseAction = (_ view: KMOCRDownloadView) -> Void
+typealias KMOCRDownloadViewCancelAction = (_ view: KMOCRDownloadView) -> Void
+typealias KMOCRDownloadViewReDownLoadAction = (_ view: KMOCRDownloadView) -> Void
+
+class KMOCRDownloadView: BaseXibView {
+    @IBOutlet weak var titleLabel: NSTextField!
+    @IBOutlet weak var progressTitleLabel: NSTextField!
+    @IBOutlet weak var progressAlertLabel: NSTextField!
+    @IBOutlet weak var cancelWidthConstraint: NSLayoutConstraint!
+    @IBOutlet weak var progressView: ComponentProgressLine!
+    
+    @IBOutlet weak var closeButton: ComponentButton!
+    @IBOutlet weak var cancelButton: ComponentButton!
+    @IBOutlet weak var reDownLoadButton: ComponentButton!
+    
+    var closeAction: KMOCRDownloadViewCloseAction?
+    var cancelAction: KMOCRDownloadViewCancelAction?
+    var reDownLoadAction: KMOCRDownloadViewReDownLoadAction?
+    
+    override func draw(_ dirtyRect: NSRect) {
+        super.draw(dirtyRect)
+
+        // Drawing code here.
+    }
+    
+    override func setup() {
+        //Progress Line
+        var lineType: componentProgressSubType = .line_Progressing
+        var lineProgress: CGFloat = 0
+        
+        let lineProperties: ComponentProgressProperty = ComponentProgressProperty.init(size: .s, progressType: .line, subType: lineType, progress: lineProgress)
+        self.progressView.properties = lineProperties
+        
+        closeButton.properties = ComponentButtonProperty(type: .text_gray, size: .xxs, onlyIcon: true, icon: NSImage(named: "KMNImageNameListViewCropClose"), keepPressState: false)
+        closeButton.setTarget(self, action: #selector(closeButtonAction(_:)))
+        closeButton.reloadData()
+        
+        cancelButton.properties = ComponentButtonProperty(type: .text_gray, size: .s, buttonText: KMLocalizedString("Cancel"), keepPressState: false)
+        cancelButton.setTarget(self, action: #selector(cancelButtonAction(_:)))
+        cancelButton.reloadData()
+        
+        reDownLoadButton.properties = ComponentButtonProperty(type: .primary, size: .s, buttonText: KMLocalizedString("Re-download"), keepPressState: false)
+        reDownLoadButton.setTarget(self, action: #selector(reDownLoadButtonAction(_:)))
+        reDownLoadButton.reloadData()
+        
+        self.updateAlertData(failue: false)
+    }
+    
+    override func updateUILanguage() {
+        
+    }
+    
+    override func updateUIThemeColor() {
+        titleLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-m-medium")
+        titleLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/1")
+        
+        progressTitleLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-s-medium")
+        progressTitleLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/2")
+        
+        progressAlertLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-s-medium")
+        progressAlertLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("comp-field/colorText-error")
+    }
+    
+    func  updateProgress(value: Float) {
+        self.updateAlertData(failue: false)
+        
+        self.progressView.properties.progress = CGFloat(value)
+        self.progressView.reloadData()
+    }
+    
+    func updateAlertData(failue: Bool) {
+        DispatchQueue.main.async {
+            if failue {
+                self.progressAlertLabel.isHidden = false
+                self.cancelWidthConstraint.constant = 144
+                self.reDownLoadButton.isHidden = false
+            } else {
+                self.progressAlertLabel.isHidden = true
+                self.cancelWidthConstraint.constant = 24
+                self.reDownLoadButton.isHidden = true
+            }
+        }
+    }
+    
+    func failure() {
+        self.progressView.properties.progressSubType = .line_Error
+        
+        self.updateAlertData(failue: true)
+    }
+}
+
+extension KMOCRDownloadView {
+    func closeButtonAction(_ sender: ComponentButton) {
+        guard let callBack = closeAction else { return }
+        
+        callBack(self)
+    }
+    
+    func cancelButtonAction(_ sender: ComponentButton) {
+        guard let callBack = cancelAction else { return }
+        
+        callBack(self)
+    }
+    
+    func reDownLoadButtonAction(_ sender: ComponentButton) {
+        guard let callBack = reDownLoadAction else { return }
+        
+        callBack(self)
+    }
+}

+ 165 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Download/KMOCRDownloadView.xib

@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMOCRDownloadView" customModule="PDF_Reader_Pro" customModuleProvider="target">
+            <connections>
+                <outlet property="cancelButton" destination="JW0-tm-ok6" id="Ouf-R6-Bfd"/>
+                <outlet property="cancelWidthConstraint" destination="lVu-OH-LV1" id="VwH-wf-NER"/>
+                <outlet property="closeButton" destination="qSp-rW-ceo" id="Fo0-HW-JOU"/>
+                <outlet property="progressAlertLabel" destination="itI-yl-SHo" id="YfZ-fc-okx"/>
+                <outlet property="progressTitleLabel" destination="ZBu-Ks-gIA" id="RtI-v1-qKa"/>
+                <outlet property="progressView" destination="MMX-1J-sgg" id="96w-1O-dua"/>
+                <outlet property="reDownLoadButton" destination="V6c-uS-nCn" id="Phg-za-Gb5"/>
+                <outlet property="titleLabel" destination="PGV-PC-DAe" id="dIR-GF-1Ow"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <customView id="c22-O7-iKe">
+            <rect key="frame" x="0.0" y="0.0" width="480" height="208"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="8jc-Lm-1Ao">
+                    <rect key="frame" x="0.0" y="164" width="480" height="44"/>
+                    <subviews>
+                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="PGV-PC-DAe">
+                            <rect key="frame" x="22" y="12" width="285" height="16"/>
+                            <textFieldCell key="cell" lineBreakMode="clipping" title="OCR component is downloading, please wait..." id="NIR-2Z-n03">
+                                <font key="font" usesAppearanceFont="YES"/>
+                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                            </textFieldCell>
+                        </textField>
+                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="qSp-rW-ceo" customClass="ComponentButton" customModule="KMComponentLibrary">
+                            <rect key="frame" x="448" y="12" width="24" height="24"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="24" id="OuJ-rh-7WE"/>
+                                <constraint firstAttribute="height" constant="24" id="Pkn-CH-VhI"/>
+                            </constraints>
+                        </customView>
+                    </subviews>
+                    <constraints>
+                        <constraint firstItem="PGV-PC-DAe" firstAttribute="top" secondItem="8jc-Lm-1Ao" secondAttribute="top" constant="16" id="E98-4r-7gP"/>
+                        <constraint firstAttribute="height" constant="44" id="Eyb-D4-ODx"/>
+                        <constraint firstAttribute="trailing" secondItem="qSp-rW-ceo" secondAttribute="trailing" constant="8" id="Qgl-WK-t8J"/>
+                        <constraint firstItem="PGV-PC-DAe" firstAttribute="leading" secondItem="8jc-Lm-1Ao" secondAttribute="leading" constant="24" id="d2b-MO-0k5"/>
+                        <constraint firstItem="qSp-rW-ceo" firstAttribute="top" secondItem="8jc-Lm-1Ao" secondAttribute="top" constant="8" id="luI-ok-2FV"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="Iag-J3-f2h">
+                    <rect key="frame" x="24" y="64" width="432" height="100"/>
+                    <subviews>
+                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="1TT-8a-KjU">
+                            <rect key="frame" x="0.0" y="52" width="432" height="40"/>
+                            <subviews>
+                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ZBu-Ks-gIA">
+                                    <rect key="frame" x="-2" y="12" width="112" height="16"/>
+                                    <textFieldCell key="cell" lineBreakMode="clipping" title="156.8MB / 392MB" id="Uby-IN-F4d">
+                                        <font key="font" usesAppearanceFont="YES"/>
+                                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                    </textFieldCell>
+                                </textField>
+                            </subviews>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="40" id="VkH-nr-JbG"/>
+                                <constraint firstItem="ZBu-Ks-gIA" firstAttribute="centerY" secondItem="1TT-8a-KjU" secondAttribute="centerY" id="YOO-80-1FY"/>
+                                <constraint firstItem="ZBu-Ks-gIA" firstAttribute="leading" secondItem="1TT-8a-KjU" secondAttribute="leading" id="fmX-7T-3Br"/>
+                            </constraints>
+                        </customView>
+                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="R9j-WD-NTK">
+                            <rect key="frame" x="0.0" y="0.0" width="432" height="52"/>
+                            <subviews>
+                                <customView translatesAutoresizingMaskIntoConstraints="NO" id="MMX-1J-sgg" customClass="ComponentProgressLine" customModule="KMComponentLibrary">
+                                    <rect key="frame" x="0.0" y="36" width="432" height="16"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="16" id="H7N-cu-rQR"/>
+                                    </constraints>
+                                </customView>
+                                <customView hidden="YES" translatesAutoresizingMaskIntoConstraints="NO" id="uph-Q1-Ygl">
+                                    <rect key="frame" x="0.0" y="8" width="432" height="20"/>
+                                    <subviews>
+                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="itI-yl-SHo">
+                                            <rect key="frame" x="-2" y="2" width="101" height="16"/>
+                                            <textFieldCell key="cell" lineBreakMode="clipping" title="Download failed" id="FXn-KX-lCa">
+                                                <font key="font" usesAppearanceFont="YES"/>
+                                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                                <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                            </textFieldCell>
+                                        </textField>
+                                    </subviews>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="20" id="JY3-nJ-XH0"/>
+                                        <constraint firstItem="itI-yl-SHo" firstAttribute="leading" secondItem="uph-Q1-Ygl" secondAttribute="leading" id="tbT-DQ-qzJ"/>
+                                        <constraint firstItem="itI-yl-SHo" firstAttribute="centerY" secondItem="uph-Q1-Ygl" secondAttribute="centerY" id="vm4-m6-1dZ"/>
+                                    </constraints>
+                                </customView>
+                            </subviews>
+                            <constraints>
+                                <constraint firstItem="uph-Q1-Ygl" firstAttribute="top" secondItem="MMX-1J-sgg" secondAttribute="bottom" constant="8" id="GVY-Eo-oFv"/>
+                                <constraint firstAttribute="trailing" secondItem="uph-Q1-Ygl" secondAttribute="trailing" id="PnN-pT-7MR"/>
+                                <constraint firstItem="uph-Q1-Ygl" firstAttribute="leading" secondItem="R9j-WD-NTK" secondAttribute="leading" id="a9W-Z0-ll6"/>
+                                <constraint firstItem="MMX-1J-sgg" firstAttribute="top" secondItem="R9j-WD-NTK" secondAttribute="top" id="beb-Is-SSm"/>
+                                <constraint firstAttribute="trailing" secondItem="MMX-1J-sgg" secondAttribute="trailing" id="fdm-7o-hyZ"/>
+                                <constraint firstItem="MMX-1J-sgg" firstAttribute="leading" secondItem="R9j-WD-NTK" secondAttribute="leading" id="ps0-be-wFc"/>
+                            </constraints>
+                        </customView>
+                    </subviews>
+                    <constraints>
+                        <constraint firstAttribute="trailing" secondItem="1TT-8a-KjU" secondAttribute="trailing" id="AGr-8J-7Xb"/>
+                        <constraint firstItem="1TT-8a-KjU" firstAttribute="leading" secondItem="Iag-J3-f2h" secondAttribute="leading" id="JZP-9s-Wa8"/>
+                        <constraint firstItem="1TT-8a-KjU" firstAttribute="top" secondItem="Iag-J3-f2h" secondAttribute="top" constant="8" id="MlO-xC-8PK"/>
+                        <constraint firstItem="R9j-WD-NTK" firstAttribute="top" secondItem="1TT-8a-KjU" secondAttribute="bottom" id="WbF-y4-hTP"/>
+                        <constraint firstAttribute="bottom" secondItem="R9j-WD-NTK" secondAttribute="bottom" id="YsO-m0-nTF"/>
+                        <constraint firstAttribute="trailing" secondItem="R9j-WD-NTK" secondAttribute="trailing" id="gnp-3D-xQs"/>
+                        <constraint firstAttribute="height" constant="100" id="jCW-8z-sLa"/>
+                        <constraint firstItem="R9j-WD-NTK" firstAttribute="leading" secondItem="Iag-J3-f2h" secondAttribute="leading" id="tKa-6s-6bR"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="I6q-ID-4bY">
+                    <rect key="frame" x="0.0" y="0.0" width="480" height="64"/>
+                    <subviews>
+                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="V6c-uS-nCn" customClass="ComponentButton" customModule="KMComponentLibrary">
+                            <rect key="frame" x="344" y="16" width="112" height="32"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="112" id="eJQ-yn-OAc"/>
+                                <constraint firstAttribute="height" constant="32" id="hZm-Cl-56h"/>
+                            </constraints>
+                        </customView>
+                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="JW0-tm-ok6" customClass="ComponentButton" customModule="KMComponentLibrary">
+                            <rect key="frame" x="264" y="16" width="72" height="32"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="32" id="A5l-wD-Lh0"/>
+                                <constraint firstAttribute="width" constant="72" id="FHG-1B-0ip"/>
+                            </constraints>
+                        </customView>
+                    </subviews>
+                    <constraints>
+                        <constraint firstAttribute="trailing" secondItem="V6c-uS-nCn" secondAttribute="trailing" constant="24" id="A88-ua-L8q"/>
+                        <constraint firstItem="V6c-uS-nCn" firstAttribute="centerY" secondItem="I6q-ID-4bY" secondAttribute="centerY" id="MQy-7Y-pwA"/>
+                        <constraint firstAttribute="height" constant="64" id="O0e-9V-nQh"/>
+                        <constraint firstAttribute="trailing" secondItem="JW0-tm-ok6" secondAttribute="trailing" constant="144" id="lVu-OH-LV1"/>
+                        <constraint firstItem="JW0-tm-ok6" firstAttribute="centerY" secondItem="I6q-ID-4bY" secondAttribute="centerY" id="xEo-lM-fO2"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstItem="Iag-J3-f2h" firstAttribute="top" secondItem="8jc-Lm-1Ao" secondAttribute="bottom" id="KXQ-fg-dZt"/>
+                <constraint firstAttribute="trailing" secondItem="8jc-Lm-1Ao" secondAttribute="trailing" id="N0w-xA-JzM"/>
+                <constraint firstAttribute="trailing" secondItem="I6q-ID-4bY" secondAttribute="trailing" id="Pgc-9J-iNb"/>
+                <constraint firstItem="I6q-ID-4bY" firstAttribute="leading" secondItem="c22-O7-iKe" secondAttribute="leading" id="Qos-sV-64y"/>
+                <constraint firstItem="Iag-J3-f2h" firstAttribute="leading" secondItem="c22-O7-iKe" secondAttribute="leading" constant="24" id="Rpy-4D-epV"/>
+                <constraint firstItem="8jc-Lm-1Ao" firstAttribute="top" secondItem="c22-O7-iKe" secondAttribute="top" id="UJi-do-LLr"/>
+                <constraint firstAttribute="bottom" secondItem="I6q-ID-4bY" secondAttribute="bottom" id="WIr-Em-f1F"/>
+                <constraint firstAttribute="trailing" secondItem="Iag-J3-f2h" secondAttribute="trailing" constant="24" id="xRa-My-j9z"/>
+                <constraint firstItem="8jc-Lm-1Ao" firstAttribute="leading" secondItem="c22-O7-iKe" secondAttribute="leading" id="ziQ-4d-JDh"/>
+            </constraints>
+            <point key="canvasLocation" x="135" y="154"/>
+        </customView>
+    </objects>
+</document>

+ 81 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Download/KMOCRDownloadViewController.swift

@@ -0,0 +1,81 @@
+//
+//  KMOCRDownloadViewController.swift
+//  PDF Reader Pro
+//
+//  Created by kdanmobile on 2025/1/24.
+//
+
+import Cocoa
+
+typealias KMOCRDownloadViewControllerCloseAction = (_ controller: KMOCRDownloadViewController) -> Void
+typealias KMOCRDownloadViewControllerCompletionAction = (_ controller: KMOCRDownloadViewController) -> Void
+
+class KMOCRDownloadViewController: NSViewController {
+
+    @IBOutlet weak var progressView: KMOCRDownloadView!
+    
+    var closeAction: KMOCRDownloadViewControllerCloseAction?
+    var completionAction: KMOCRDownloadViewControllerCompletionAction?
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        // Do view setup here.
+        self.setup()
+    }
+    
+    func setup() {
+        progressView.closeAction = { [unowned self] view in
+            self.close()
+        }
+        
+        progressView.cancelAction = { [unowned self] view in
+            self.cancel()
+        }
+        
+        progressView.reDownLoadAction = { view in
+            self.reDownLoad()
+        }
+    }
+    
+    func begin() {
+        KMResourceDownloadManager.manager.downloadFramework(progress: { [unowned self] progress in
+            self.progressView.updateProgress(value: Float(progress))
+        }, result: { result, downloadState  in
+            if result {
+                self.completion()
+            } else if downloadState == .retry {
+                DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.2, execute: { [weak self] in
+                    self?.begin()
+                })
+            } else {
+                self.progressView.failure()
+            }
+        })
+    }
+}
+
+extension KMOCRDownloadViewController {
+    func cancel() {
+        KMResourceDownloadManager.manager.cancelDownload()
+        
+        guard let callBack = closeAction else { return }
+        
+        callBack(self)
+    }
+    
+    func reDownLoad() {
+        self.begin()
+    }
+    
+    func close() {
+        guard let callBack = closeAction else { return }
+        
+        callBack(self)
+    }
+    
+    func completion() {
+        guard let callBack = completionAction else { return }
+        
+        callBack(self)
+    }
+}

+ 34 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Download/KMOCRDownloadViewController.xib

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMOCRDownloadViewController" customModule="PDF_Reader_Pro" customModuleProvider="target">
+            <connections>
+                <outlet property="progressView" destination="RgG-Jl-RdQ" id="FPd-5j-Aog"/>
+                <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <customView id="Hz6-mo-xeY">
+            <rect key="frame" x="0.0" y="0.0" width="480" height="208"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="RgG-Jl-RdQ" customClass="KMOCRDownloadView" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                    <rect key="frame" x="0.0" y="0.0" width="480" height="208"/>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstAttribute="bottom" secondItem="RgG-Jl-RdQ" secondAttribute="bottom" id="CV9-57-h15"/>
+                <constraint firstAttribute="trailing" secondItem="RgG-Jl-RdQ" secondAttribute="trailing" id="SQ8-MJ-niW"/>
+                <constraint firstItem="RgG-Jl-RdQ" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" id="gaf-Gd-Tt7"/>
+                <constraint firstItem="RgG-Jl-RdQ" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" id="yjg-G9-cjg"/>
+            </constraints>
+            <point key="canvasLocation" x="135" y="154"/>
+        </customView>
+    </objects>
+</document>

+ 2 - 2
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Edit/View/KMOCRSettingView.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
     <dependencies>
         <deployment identifier="macosx"/>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
     <objects>
     <objects>

+ 3 - 3
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Edit/Window/KMOCRSettingWindowController.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
     <dependencies>
         <deployment identifier="macosx"/>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
     <objects>
     <objects>
@@ -17,7 +17,7 @@
         <window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
         <window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
             <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
             <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
             <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
             <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
-            <rect key="contentRect" x="196" y="240" width="360" height="436"/>
+            <rect key="contentRect" x="1162" y="490" width="360" height="436"/>
             <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/>
             <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/>
             <value key="minSize" type="size" width="360" height="436"/>
             <value key="minSize" type="size" width="360" height="436"/>
             <value key="maxSize" type="size" width="360" height="436"/>
             <value key="maxSize" type="size" width="360" height="436"/>

+ 2 - 2
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Tool/Contoller/KMOCRController.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
     <dependencies>
         <deployment identifier="macosx"/>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
     <objects>
     <objects>

+ 2 - 2
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Tool/View/Area/KMOCRAreaView.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
     <dependencies>
         <deployment identifier="macosx"/>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
     <objects>
     <objects>

+ 1 - 87
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Tool/View/Page/KMOCRPageView.swift

@@ -103,7 +103,7 @@ class KMOCRPageView: BaseXibView {
         self.updateUI()
         self.updateUI()
         self.reloadData()
         self.reloadData()
         
         
-        self.downLoadOCRResource()
+        KMResourceDownloadManager.manager.downLoadOCRResource(window: self.window ?? NSWindow.currentWindow())
     }
     }
     
     
     func updateUI() {
     func updateUI() {
@@ -304,89 +304,3 @@ extension KMOCRPageView: ComponentSelectDelegate {
         }
         }
     }
     }
 }
 }
-
-extension KMOCRPageView {
-    func downLoadOCRResource() {
-#if VERSION_DMG
-        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.3) {
-            KMResourceDownloadManager.manager.documentAIBundleExists(complete: { [weak self] result in
-                if result {
-                    
-                } else {
-                    let alert = NSAlert()
-                    alert.alertStyle = .critical
-                    alert.messageText = KMLocalizedString("Need DownLoad OCR Resource", comment: "")
-                    alert.addButton(withTitle: KMLocalizedString("OK", comment: ""))
-                    alert.addButton(withTitle: KMLocalizedString("Cancel", comment: ""))
-                    alert.beginSheetModal(for: NSWindow.currentWindow()) {[weak self] response in
-                        if response == NSApplication.ModalResponse.alertFirstButtonReturn {
-                            self?.downLoad()
-                        }
-                    }
-                }
-            })
-        }
-#endif
-    }
-    
-#if VERSION_DMG
-    func downLoad() {
-        DispatchQueue.main.async {
-            self.showProgressWindow()
-            self.progressController?.maxValue = Double(100)
-        }
-        KMResourceDownloadManager.manager.downloadFramework(progress: { progress in
-            self.progressController?.doubleValue = Double(progress*100)
-        }, result: { result, downloadState  in
-            if result {
-//                if let state = self._checkVC?.state {
-//                    self._checkVC?.state = state == .Checked ? .Norm : .Checked
-//                }
-//
-//                self._checkAction()
-//
-//                if let state = self._checkVC?.state {
-//                    self._checkVC?.state = state == .Checked ? .Norm : .Checked
-//                }
-//
-//                self._checkAction()
-                self.hiddenProgressWindow()
-            } else if downloadState == .retry {
-                DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.2, execute: { [weak self] in
-                    self?.downLoad()
-                })
-            } else {
-                self.hiddenProgressWindow()
-            }
-        })
-    }
-    
-    func showProgressWindow() {
-        let progress = SKProgressController()
-        progress.window?.backgroundColor = NSColor.km_init(hex: "#36383B")
-        progress.window?.contentView?.wantsLayer = true
-        progress.window?.contentView?.layer?.backgroundColor = NSColor.km_init(hex: "#36383B").cgColor
-        progress.progressField.textColor = NSColor.white
-        progress.message = NSLocalizedString("Download...", comment: "")
-
-        progress.closeBlock = { [weak self] in
-#if VERSION_DMG
-            KMResourceDownloadManager.manager.cancelDownload()
-#endif
-        }
-        
-        self.progressController = progress
-        self.window?.beginSheet(progress.window!)
-    }
-    
-    func hiddenProgressWindow() {
-        DispatchQueue.main.async {
-            self.progressController?.doubleValue = 100.0
-            if (self.progressController != nil) {
-                self.window?.endSheet((self.progressController?.window)!)
-                self.progressController = nil
-            }
-        }
-    }
-#endif
-}

+ 2 - 2
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Tool/View/Page/KMOCRPageView.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
     <dependencies>
         <deployment identifier="macosx"/>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
     <objects>
     <objects>

+ 0 - 43
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Tool/View/ProgressMask/KMOCRProgressView.swift

@@ -1,43 +0,0 @@
-//
-//  KMOCRProgressView.swift
-//  PDF Reader Pro
-//
-//  Created by lizhe on 2024/12/25.
-//
-
-import Cocoa
-import KMComponentLibrary
-
-class KMOCRProgressView: BaseXibView {
-    @IBOutlet weak var progressView: ComponentProgressPopup!
-    
-    override func draw(_ dirtyRect: NSRect) {
-        super.draw(dirtyRect)
-
-        // Drawing code here.
-        
-        self.updateUI()
-    }
-    
-    func updateUI() {
-        //Progress Popup
-        let popUpProperties: ComponentProgressProperty = ComponentProgressProperty.init(size: .m, progressType: .popup, subType: .popup_Line, progress: 0, titleString: "Progressing")
-        self.progressView.properties = popUpProperties
-    }
-    
-}
-
-//MARK: Mouse
-extension KMOCRProgressView {
-    override func mouseDown(with event: NSEvent) {
-        // 阻止事件传递
-    }
-    
-    override func mouseUp(with event: NSEvent) {
-        // 阻止事件传递
-    }
-    
-    override func keyDown(with event: NSEvent) {
-        // 阻止键盘事件传递
-    }
-}

+ 0 - 35
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Tool/View/ProgressMask/KMOCRProgressView.xib

@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
-    <dependencies>
-        <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMOCRProgressView" customModule="PDF_Reader_Pro" customModuleProvider="target">
-            <connections>
-                <outlet property="progressView" destination="jRy-RX-Y0R" id="WzS-0q-Kj9"/>
-            </connections>
-        </customObject>
-        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
-        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
-        <customView id="c22-O7-iKe">
-            <rect key="frame" x="0.0" y="0.0" width="610" height="373"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="jRy-RX-Y0R" customClass="ComponentProgressPopup" customModule="KMComponentLibrary">
-                    <rect key="frame" x="185" y="143" width="240" height="88"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="88" id="NR0-Td-IZc"/>
-                        <constraint firstAttribute="width" constant="240" id="Nxn-fj-bQ8"/>
-                    </constraints>
-                </customView>
-            </subviews>
-            <constraints>
-                <constraint firstItem="jRy-RX-Y0R" firstAttribute="centerY" secondItem="c22-O7-iKe" secondAttribute="centerY" id="Nzo-fZ-7EE"/>
-                <constraint firstItem="jRy-RX-Y0R" firstAttribute="centerX" secondItem="c22-O7-iKe" secondAttribute="centerX" id="VLh-9E-RnA"/>
-            </constraints>
-            <point key="canvasLocation" x="186" y="180.5"/>
-        </customView>
-    </objects>
-</document>

+ 2 - 2
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/OCR/KMBatchOCRView.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
     <dependencies>
         <deployment identifier="macosx"/>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
     <objects>
     <objects>

+ 40 - 24
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -1575,12 +1575,6 @@
 		AD8E48D22D1BB17D0055D3E6 /* KMOCRSettingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = AD8E48D12D1BB17D0055D3E6 /* KMOCRSettingView.xib */; };
 		AD8E48D22D1BB17D0055D3E6 /* KMOCRSettingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = AD8E48D12D1BB17D0055D3E6 /* KMOCRSettingView.xib */; };
 		AD8E48D32D1BB17D0055D3E6 /* KMOCRSettingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = AD8E48D12D1BB17D0055D3E6 /* KMOCRSettingView.xib */; };
 		AD8E48D32D1BB17D0055D3E6 /* KMOCRSettingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = AD8E48D12D1BB17D0055D3E6 /* KMOCRSettingView.xib */; };
 		AD8E48D42D1BB17D0055D3E6 /* KMOCRSettingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = AD8E48D12D1BB17D0055D3E6 /* KMOCRSettingView.xib */; };
 		AD8E48D42D1BB17D0055D3E6 /* KMOCRSettingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = AD8E48D12D1BB17D0055D3E6 /* KMOCRSettingView.xib */; };
-		AD8E48D92D1BE54F0055D3E6 /* KMOCRProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD8E48D82D1BE54F0055D3E6 /* KMOCRProgressView.swift */; };
-		AD8E48DA2D1BE54F0055D3E6 /* KMOCRProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD8E48D82D1BE54F0055D3E6 /* KMOCRProgressView.swift */; };
-		AD8E48DB2D1BE54F0055D3E6 /* KMOCRProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD8E48D82D1BE54F0055D3E6 /* KMOCRProgressView.swift */; };
-		AD8E48DD2D1BE5800055D3E6 /* KMOCRProgressView.xib in Resources */ = {isa = PBXBuildFile; fileRef = AD8E48DC2D1BE5800055D3E6 /* KMOCRProgressView.xib */; };
-		AD8E48DE2D1BE5800055D3E6 /* KMOCRProgressView.xib in Resources */ = {isa = PBXBuildFile; fileRef = AD8E48DC2D1BE5800055D3E6 /* KMOCRProgressView.xib */; };
-		AD8E48DF2D1BE5800055D3E6 /* KMOCRProgressView.xib in Resources */ = {isa = PBXBuildFile; fileRef = AD8E48DC2D1BE5800055D3E6 /* KMOCRProgressView.xib */; };
 		AD8F06172999DB5900D93CBC /* KMPrintDrawPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD8F06162999DB5900D93CBC /* KMPrintDrawPage.swift */; };
 		AD8F06172999DB5900D93CBC /* KMPrintDrawPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD8F06162999DB5900D93CBC /* KMPrintDrawPage.swift */; };
 		AD8F06182999DB5900D93CBC /* KMPrintDrawPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD8F06162999DB5900D93CBC /* KMPrintDrawPage.swift */; };
 		AD8F06182999DB5900D93CBC /* KMPrintDrawPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD8F06162999DB5900D93CBC /* KMPrintDrawPage.swift */; };
 		AD8F06192999DB5900D93CBC /* KMPrintDrawPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD8F06162999DB5900D93CBC /* KMPrintDrawPage.swift */; };
 		AD8F06192999DB5900D93CBC /* KMPrintDrawPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD8F06162999DB5900D93CBC /* KMPrintDrawPage.swift */; };
@@ -1690,6 +1684,18 @@
 		ADAFDA512AEB43BF00F084BC /* KMAdvertisement.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ADAFDA502AEB43BF00F084BC /* KMAdvertisement.xcassets */; };
 		ADAFDA512AEB43BF00F084BC /* KMAdvertisement.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ADAFDA502AEB43BF00F084BC /* KMAdvertisement.xcassets */; };
 		ADAFDA522AEB43BF00F084BC /* KMAdvertisement.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ADAFDA502AEB43BF00F084BC /* KMAdvertisement.xcassets */; };
 		ADAFDA522AEB43BF00F084BC /* KMAdvertisement.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ADAFDA502AEB43BF00F084BC /* KMAdvertisement.xcassets */; };
 		ADAFDA532AEB43BF00F084BC /* KMAdvertisement.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ADAFDA502AEB43BF00F084BC /* KMAdvertisement.xcassets */; };
 		ADAFDA532AEB43BF00F084BC /* KMAdvertisement.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ADAFDA502AEB43BF00F084BC /* KMAdvertisement.xcassets */; };
+		ADB1AC352D435C950014021F /* KMOCRDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1AC342D435C950014021F /* KMOCRDownloadView.swift */; };
+		ADB1AC362D435C950014021F /* KMOCRDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1AC342D435C950014021F /* KMOCRDownloadView.swift */; };
+		ADB1AC372D435C950014021F /* KMOCRDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1AC342D435C950014021F /* KMOCRDownloadView.swift */; };
+		ADB1AC392D435CA80014021F /* KMOCRDownloadView.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1AC382D435CA80014021F /* KMOCRDownloadView.xib */; };
+		ADB1AC3A2D435CA80014021F /* KMOCRDownloadView.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1AC382D435CA80014021F /* KMOCRDownloadView.xib */; };
+		ADB1AC3B2D435CA80014021F /* KMOCRDownloadView.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1AC382D435CA80014021F /* KMOCRDownloadView.xib */; };
+		ADB1AC3E2D4373200014021F /* KMOCRDownloadViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1AC3C2D4373200014021F /* KMOCRDownloadViewController.swift */; };
+		ADB1AC3F2D4373200014021F /* KMOCRDownloadViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1AC3D2D4373200014021F /* KMOCRDownloadViewController.xib */; };
+		ADB1AC402D4373200014021F /* KMOCRDownloadViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1AC3D2D4373200014021F /* KMOCRDownloadViewController.xib */; };
+		ADB1AC412D4373200014021F /* KMOCRDownloadViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1AC3C2D4373200014021F /* KMOCRDownloadViewController.swift */; };
+		ADB1AC422D4373200014021F /* KMOCRDownloadViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1AC3D2D4373200014021F /* KMOCRDownloadViewController.xib */; };
+		ADB1AC432D4373200014021F /* KMOCRDownloadViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1AC3C2D4373200014021F /* KMOCRDownloadViewController.swift */; };
 		ADB2D6E6294740F30029D2B3 /* KMPrintPaperSetWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB2D6E4294740F30029D2B3 /* KMPrintPaperSetWindowController.swift */; };
 		ADB2D6E6294740F30029D2B3 /* KMPrintPaperSetWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB2D6E4294740F30029D2B3 /* KMPrintPaperSetWindowController.swift */; };
 		ADB2D6E7294740F30029D2B3 /* KMPrintPaperSetWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB2D6E4294740F30029D2B3 /* KMPrintPaperSetWindowController.swift */; };
 		ADB2D6E7294740F30029D2B3 /* KMPrintPaperSetWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB2D6E4294740F30029D2B3 /* KMPrintPaperSetWindowController.swift */; };
 		ADB2D6E8294740F30029D2B3 /* KMPrintPaperSetWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB2D6E4294740F30029D2B3 /* KMPrintPaperSetWindowController.swift */; };
 		ADB2D6E8294740F30029D2B3 /* KMPrintPaperSetWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB2D6E4294740F30029D2B3 /* KMPrintPaperSetWindowController.swift */; };
@@ -5307,8 +5313,6 @@
 		AD8E48C32D1BB0600055D3E6 /* KMOCRSettingWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMOCRSettingWindowController.xib; sourceTree = "<group>"; };
 		AD8E48C32D1BB0600055D3E6 /* KMOCRSettingWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMOCRSettingWindowController.xib; sourceTree = "<group>"; };
 		AD8E48CD2D1BB1650055D3E6 /* KMOCRSettingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMOCRSettingView.swift; sourceTree = "<group>"; };
 		AD8E48CD2D1BB1650055D3E6 /* KMOCRSettingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMOCRSettingView.swift; sourceTree = "<group>"; };
 		AD8E48D12D1BB17D0055D3E6 /* KMOCRSettingView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMOCRSettingView.xib; sourceTree = "<group>"; };
 		AD8E48D12D1BB17D0055D3E6 /* KMOCRSettingView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMOCRSettingView.xib; sourceTree = "<group>"; };
-		AD8E48D82D1BE54F0055D3E6 /* KMOCRProgressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMOCRProgressView.swift; sourceTree = "<group>"; };
-		AD8E48DC2D1BE5800055D3E6 /* KMOCRProgressView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMOCRProgressView.xib; sourceTree = "<group>"; };
 		AD8F06162999DB5900D93CBC /* KMPrintDrawPage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPrintDrawPage.swift; sourceTree = "<group>"; };
 		AD8F06162999DB5900D93CBC /* KMPrintDrawPage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPrintDrawPage.swift; sourceTree = "<group>"; };
 		AD9527B9295291F20039D2BC /* KMPrintPage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPrintPage.swift; sourceTree = "<group>"; };
 		AD9527B9295291F20039D2BC /* KMPrintPage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPrintPage.swift; sourceTree = "<group>"; };
 		AD9527BD295294E20039D2BC /* KMPrintPageModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPrintPageModel.swift; sourceTree = "<group>"; };
 		AD9527BD295294E20039D2BC /* KMPrintPageModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPrintPageModel.swift; sourceTree = "<group>"; };
@@ -5347,6 +5351,10 @@
 		ADAFDA472AEA7F1200F084BC /* KMAdvertisementShowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMAdvertisementShowView.swift; sourceTree = "<group>"; };
 		ADAFDA472AEA7F1200F084BC /* KMAdvertisementShowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMAdvertisementShowView.swift; sourceTree = "<group>"; };
 		ADAFDA4B2AEA7F2700F084BC /* KMAdvertisementShowView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMAdvertisementShowView.xib; sourceTree = "<group>"; };
 		ADAFDA4B2AEA7F2700F084BC /* KMAdvertisementShowView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMAdvertisementShowView.xib; sourceTree = "<group>"; };
 		ADAFDA502AEB43BF00F084BC /* KMAdvertisement.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = KMAdvertisement.xcassets; sourceTree = "<group>"; };
 		ADAFDA502AEB43BF00F084BC /* KMAdvertisement.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = KMAdvertisement.xcassets; sourceTree = "<group>"; };
+		ADB1AC342D435C950014021F /* KMOCRDownloadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMOCRDownloadView.swift; sourceTree = "<group>"; };
+		ADB1AC382D435CA80014021F /* KMOCRDownloadView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMOCRDownloadView.xib; sourceTree = "<group>"; };
+		ADB1AC3C2D4373200014021F /* KMOCRDownloadViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMOCRDownloadViewController.swift; sourceTree = "<group>"; };
+		ADB1AC3D2D4373200014021F /* KMOCRDownloadViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMOCRDownloadViewController.xib; sourceTree = "<group>"; };
 		ADB2D6E4294740F30029D2B3 /* KMPrintPaperSetWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPrintPaperSetWindowController.swift; sourceTree = "<group>"; };
 		ADB2D6E4294740F30029D2B3 /* KMPrintPaperSetWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPrintPaperSetWindowController.swift; sourceTree = "<group>"; };
 		ADB2D6E5294740F30029D2B3 /* KMPrintPaperSetWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMPrintPaperSetWindowController.xib; sourceTree = "<group>"; };
 		ADB2D6E5294740F30029D2B3 /* KMPrintPaperSetWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMPrintPaperSetWindowController.xib; sourceTree = "<group>"; };
 		ADB2D6EC2947415E0029D2B3 /* KMPrintPaperSetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPrintPaperSetView.swift; sourceTree = "<group>"; };
 		ADB2D6EC2947415E0029D2B3 /* KMPrintPaperSetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPrintPaperSetView.swift; sourceTree = "<group>"; };
@@ -8771,15 +8779,6 @@
 			path = View;
 			path = View;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
 		};
 		};
-		AD8E48D62D1BE3A60055D3E6 /* ProgressMask */ = {
-			isa = PBXGroup;
-			children = (
-				AD8E48D82D1BE54F0055D3E6 /* KMOCRProgressView.swift */,
-				AD8E48DC2D1BE5800055D3E6 /* KMOCRProgressView.xib */,
-			);
-			path = ProgressMask;
-			sourceTree = "<group>";
-		};
 		AD9527B8295291BD0039D2BC /* Category */ = {
 		AD9527B8295291BD0039D2BC /* Category */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
@@ -8909,6 +8908,17 @@
 			path = Source;
 			path = Source;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
 		};
 		};
+		ADB1AC2A2D435C210014021F /* Download */ = {
+			isa = PBXGroup;
+			children = (
+				ADB1AC342D435C950014021F /* KMOCRDownloadView.swift */,
+				ADB1AC382D435CA80014021F /* KMOCRDownloadView.xib */,
+				ADB1AC3C2D4373200014021F /* KMOCRDownloadViewController.swift */,
+				ADB1AC3D2D4373200014021F /* KMOCRDownloadViewController.xib */,
+			);
+			path = Download;
+			sourceTree = "<group>";
+		};
 		ADB2D6E229473FF00029D2B3 /* DealPaper */ = {
 		ADB2D6E229473FF00029D2B3 /* DealPaper */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
@@ -9199,6 +9209,7 @@
 		ADD3EBEB2D13EA54005B711B /* OCR */ = {
 		ADD3EBEB2D13EA54005B711B /* OCR */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
+				ADB1AC2A2D435C210014021F /* Download */,
 				AD8E48CB2D1BB1170055D3E6 /* Tool */,
 				AD8E48CB2D1BB1170055D3E6 /* Tool */,
 				AD8E48CA2D1BB1110055D3E6 /* Edit */,
 				AD8E48CA2D1BB1110055D3E6 /* Edit */,
 			);
 			);
@@ -9226,7 +9237,6 @@
 		ADD3EC062D13F26F005B711B /* View */ = {
 		ADD3EC062D13F26F005B711B /* View */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
-				AD8E48D62D1BE3A60055D3E6 /* ProgressMask */,
 				ADD3EBED2D13EAC9005B711B /* Page */,
 				ADD3EBED2D13EAC9005B711B /* Page */,
 				ADD3EBEC2D13EAC4005B711B /* Area */,
 				ADD3EBEC2D13EAC4005B711B /* Area */,
 			);
 			);
@@ -12955,6 +12965,7 @@
 				AD8B59402D2B777700150EA6 /* KMBatchCompressView.xib in Resources */,
 				AD8B59402D2B777700150EA6 /* KMBatchCompressView.xib in Resources */,
 				9F1F82E62934D5240092C4B4 /* KMHomeExtractActionViewController.xib in Resources */,
 				9F1F82E62934D5240092C4B4 /* KMHomeExtractActionViewController.xib in Resources */,
 				AD3AAD5F2B0DA3D400DE5FE7 /* KMCompareTextViewItem.xib in Resources */,
 				AD3AAD5F2B0DA3D400DE5FE7 /* KMCompareTextViewItem.xib in Resources */,
+				ADB1AC392D435CA80014021F /* KMOCRDownloadView.xib in Resources */,
 				BB031B8A2C47BB090099F7AD /* KMUserFbDespItemView.xib in Resources */,
 				BB031B8A2C47BB090099F7AD /* KMUserFbDespItemView.xib in Resources */,
 				BBEB0DE32CE36B47004C67BF /* KMRightSideController.xib in Resources */,
 				BBEB0DE32CE36B47004C67BF /* KMRightSideController.xib in Resources */,
 				BBE788C62CBD2463008086E2 /* SelectVC.xib in Resources */,
 				BBE788C62CBD2463008086E2 /* SelectVC.xib in Resources */,
@@ -13019,7 +13030,6 @@
 				ADBC15ED2D2E0EDF000ACD95 /* KMBatchRTFView.xib in Resources */,
 				ADBC15ED2D2E0EDF000ACD95 /* KMBatchRTFView.xib in Resources */,
 				BBE412C42D12A3410069A661 /* KMRedactToolbarController.xib in Resources */,
 				BBE412C42D12A3410069A661 /* KMRedactToolbarController.xib in Resources */,
 				ADDF83982B391A5D00A81A4E /* PDFCertExportAccessoryView.xib in Resources */,
 				ADDF83982B391A5D00A81A4E /* PDFCertExportAccessoryView.xib in Resources */,
-				AD8E48DD2D1BE5800055D3E6 /* KMOCRProgressView.xib in Resources */,
 				9FF371BC2C69A6BB005F9CC5 /* CDistanceSettingWindowController.xib in Resources */,
 				9FF371BC2C69A6BB005F9CC5 /* CDistanceSettingWindowController.xib in Resources */,
 				653647BF2CDCA5DE00CDB13E /* KMBatchOperateSplitViewController.xib in Resources */,
 				653647BF2CDCA5DE00CDB13E /* KMBatchOperateSplitViewController.xib in Resources */,
 				AD8E48A52D154E070055D3E6 /* KMOCRAreaView.xib in Resources */,
 				AD8E48A52D154E070055D3E6 /* KMOCRAreaView.xib in Resources */,
@@ -13268,6 +13278,7 @@
 				BB5A9D332CB6520100F64C1F /* home.xcassets in Resources */,
 				BB5A9D332CB6520100F64C1F /* home.xcassets in Resources */,
 				F3B7DF9D2948565000333201 /* CPDFListHoverAnnotationViewController.xib in Resources */,
 				F3B7DF9D2948565000333201 /* CPDFListHoverAnnotationViewController.xib in Resources */,
 				BBFE14D22BFD7FC300176992 /* KMCouponDueWindowController.xib in Resources */,
 				BBFE14D22BFD7FC300176992 /* KMCouponDueWindowController.xib in Resources */,
+				ADB1AC3F2D4373200014021F /* KMOCRDownloadViewController.xib in Resources */,
 				BB4F7E912B0C80000077EC8C /* KMNoteColorCollectionViewItem.xib in Resources */,
 				BB4F7E912B0C80000077EC8C /* KMNoteColorCollectionViewItem.xib in Resources */,
 				BB91384A2CEE08D400BAB4A7 /* KMCropCoverController.xib in Resources */,
 				BB91384A2CEE08D400BAB4A7 /* KMCropCoverController.xib in Resources */,
 				ADD1B6AE2941E97F00C3FFF7 /* KMPrintWindowController.xib in Resources */,
 				ADD1B6AE2941E97F00C3FFF7 /* KMPrintWindowController.xib in Resources */,
@@ -13433,6 +13444,7 @@
 				BB0FE0562B734DD1001E0F88 /* AIUserInfoController.xib in Resources */,
 				BB0FE0562B734DD1001E0F88 /* AIUserInfoController.xib in Resources */,
 				BB1B0AE72B4FC6E900889528 /* KMOpenFileGuideProperty.xib in Resources */,
 				BB1B0AE72B4FC6E900889528 /* KMOpenFileGuideProperty.xib in Resources */,
 				651675C52CE3312000019A20 /* KMBOTAOutlineView.xib in Resources */,
 				651675C52CE3312000019A20 /* KMBOTAOutlineView.xib in Resources */,
+				ADB1AC422D4373200014021F /* KMOCRDownloadViewController.xib in Resources */,
 				651961AC2D07DD4A007A4324 /* KMBookMarkViewController.xib in Resources */,
 				651961AC2D07DD4A007A4324 /* KMBookMarkViewController.xib in Resources */,
 				BB5A9D562CB6521400F64C1F /* SettingsDisplayView.xib in Resources */,
 				BB5A9D562CB6521400F64C1F /* SettingsDisplayView.xib in Resources */,
 				BB183DE72B4EC0AF00F99C7E /* KMRepeatVerifyExpireController.xib in Resources */,
 				BB183DE72B4EC0AF00F99C7E /* KMRepeatVerifyExpireController.xib in Resources */,
@@ -13492,7 +13504,6 @@
 				BBE788A62CBD2463008086E2 /* SliderVC.xib in Resources */,
 				BBE788A62CBD2463008086E2 /* SliderVC.xib in Resources */,
 				ADDF83992B391A5D00A81A4E /* PDFCertExportAccessoryView.xib in Resources */,
 				ADDF83992B391A5D00A81A4E /* PDFCertExportAccessoryView.xib in Resources */,
 				BBD922342B50D61200DB9585 /* KMRateWindowController.xib in Resources */,
 				BBD922342B50D61200DB9585 /* KMRateWindowController.xib in Resources */,
-				AD8E48DE2D1BE5800055D3E6 /* KMOCRProgressView.xib in Resources */,
 				BBE7888B2CBD2463008086E2 /* SidebarDemoVC.xib in Resources */,
 				BBE7888B2CBD2463008086E2 /* SidebarDemoVC.xib in Resources */,
 				F33B304B2D0B22410073DD1B /* KMNPopOperationWindowController.xib in Resources */,
 				F33B304B2D0B22410073DD1B /* KMNPopOperationWindowController.xib in Resources */,
 				BB19A7372CB79D77008204DC /* KMHomeRecommondView.xib in Resources */,
 				BB19A7372CB79D77008204DC /* KMHomeRecommondView.xib in Resources */,
@@ -13830,6 +13841,7 @@
 				BBB2A9A12CB65C8E0066560B /* KMURLCreatePDFWindowController.xib in Resources */,
 				BBB2A9A12CB65C8E0066560B /* KMURLCreatePDFWindowController.xib in Resources */,
 				F325FD222D2795B300832097 /* KMNoteFooterCellView.xib in Resources */,
 				F325FD222D2795B300832097 /* KMNoteFooterCellView.xib in Resources */,
 				BBA922392B4E97540061057A /* KMPurchaseFirstTrialWindowController.xib in Resources */,
 				BBA922392B4E97540061057A /* KMPurchaseFirstTrialWindowController.xib in Resources */,
+				ADB1AC3A2D435CA80014021F /* KMOCRDownloadView.xib in Resources */,
 				BB3D076D2CD08FDB00EB94DF /* KMSplitPDFViewController.xib in Resources */,
 				BB3D076D2CD08FDB00EB94DF /* KMSplitPDFViewController.xib in Resources */,
 				657851722CFEE38E0023D640 /* KMSearchReplaceWindowController.xib in Resources */,
 				657851722CFEE38E0023D640 /* KMSearchReplaceWindowController.xib in Resources */,
 				ADE86A8E2B02269400414DFA /* KMRemovePasswordWindowController.xib in Resources */,
 				ADE86A8E2B02269400414DFA /* KMRemovePasswordWindowController.xib in Resources */,
@@ -14000,6 +14012,7 @@
 				9F8539E52947126000DF644E /* KMChromiumToolbar.xib in Resources */,
 				9F8539E52947126000DF644E /* KMChromiumToolbar.xib in Resources */,
 				BB19A7402CB7B4D1008204DC /* KMHomeRightView.xib in Resources */,
 				BB19A7402CB7B4D1008204DC /* KMHomeRightView.xib in Resources */,
 				BB1B0B0F2B4FC6E900889528 /* KMGuideInfoWindowController.xib in Resources */,
 				BB1B0B0F2B4FC6E900889528 /* KMGuideInfoWindowController.xib in Resources */,
+				ADB1AC3B2D435CA80014021F /* KMOCRDownloadView.xib in Resources */,
 				BB451AAF2CF59F68003E1565 /* KMNoteController.xib in Resources */,
 				BB451AAF2CF59F68003E1565 /* KMNoteController.xib in Resources */,
 				BB03D6A22B024AC8008C9976 /* KMPDFEditInsertPageWindow.xib in Resources */,
 				BB03D6A22B024AC8008C9976 /* KMPDFEditInsertPageWindow.xib in Resources */,
 				ADAFDA122AE8DD6600F084BC /* KMAdvertisementCollectionHeadView.xib in Resources */,
 				ADAFDA122AE8DD6600F084BC /* KMAdvertisementCollectionHeadView.xib in Resources */,
@@ -14014,7 +14027,6 @@
 				ADDF83612B391A5C00A81A4E /* DSignatureCertifyDetailViewController.xib in Resources */,
 				ADDF83612B391A5C00A81A4E /* DSignatureCertifyDetailViewController.xib in Resources */,
 				BBA9222A2B4E96450061057A /* KMPurchaseCompareWindowController.xib in Resources */,
 				BBA9222A2B4E96450061057A /* KMPurchaseCompareWindowController.xib in Resources */,
 				F33B304C2D0B22410073DD1B /* KMNPopOperationWindowController.xib in Resources */,
 				F33B304C2D0B22410073DD1B /* KMNPopOperationWindowController.xib in Resources */,
-				AD8E48DF2D1BE5800055D3E6 /* KMOCRProgressView.xib in Resources */,
 				F3B7DF9F2948565000333201 /* CPDFListHoverAnnotationViewController.xib in Resources */,
 				F3B7DF9F2948565000333201 /* CPDFListHoverAnnotationViewController.xib in Resources */,
 				BB5A9D322CB6520100F64C1F /* KMNHomeViewController.xib in Resources */,
 				BB5A9D322CB6520100F64C1F /* KMNHomeViewController.xib in Resources */,
 				AD3AAD292B0B6FB100DE5FE7 /* KMCompareContentView.xib in Resources */,
 				AD3AAD292B0B6FB100DE5FE7 /* KMCompareContentView.xib in Resources */,
@@ -14313,6 +14325,7 @@
 				BB5A9D632CB6521400F64C1F /* KMPDFToolbarController.xib in Resources */,
 				BB5A9D632CB6521400F64C1F /* KMPDFToolbarController.xib in Resources */,
 				BB1B0AE82B4FC6E900889528 /* KMOpenFileGuideProperty.xib in Resources */,
 				BB1B0AE82B4FC6E900889528 /* KMOpenFileGuideProperty.xib in Resources */,
 				BB1B0AEB2B4FC6E900889528 /* KMFunctionGuideMultiController.xib in Resources */,
 				BB1B0AEB2B4FC6E900889528 /* KMFunctionGuideMultiController.xib in Resources */,
+				ADB1AC402D4373200014021F /* KMOCRDownloadViewController.xib in Resources */,
 				ADDF83492B391A5C00A81A4E /* DSignatureCreateInfoViewController.xib in Resources */,
 				ADDF83492B391A5C00A81A4E /* DSignatureCreateInfoViewController.xib in Resources */,
 				AD7D5C9A2B8F20FE006562CD /* synctex_parser_readme.txt in Resources */,
 				AD7D5C9A2B8F20FE006562CD /* synctex_parser_readme.txt in Resources */,
 				F37ACE6D2D0F182C00150B48 /* default.metallib in Resources */,
 				F37ACE6D2D0F182C00150B48 /* default.metallib in Resources */,
@@ -14755,6 +14768,7 @@
 				AD9527BA295291F20039D2BC /* KMPrintPage.swift in Sources */,
 				AD9527BA295291F20039D2BC /* KMPrintPage.swift in Sources */,
 				AD8B59FF2D2B778D00150EA6 /* KMBatchProcessingSizeTableCell.swift in Sources */,
 				AD8B59FF2D2B778D00150EA6 /* KMBatchProcessingSizeTableCell.swift in Sources */,
 				ADE3C1C129A4C13700793B13 /* KMPrintAccessoryController_OC.m in Sources */,
 				ADE3C1C129A4C13700793B13 /* KMPrintAccessoryController_OC.m in Sources */,
+				ADB1AC3E2D4373200014021F /* KMOCRDownloadViewController.swift in Sources */,
 				BB183DE32B4EC0AF00F99C7E /* KMRepeatVerifyExpireController.m in Sources */,
 				BB183DE32B4EC0AF00F99C7E /* KMRepeatVerifyExpireController.m in Sources */,
 				ADAFDA392AE8EEFF00F084BC /* KMAdvertisementRequestServer.swift in Sources */,
 				ADAFDA392AE8EEFF00F084BC /* KMAdvertisementRequestServer.swift in Sources */,
 				AD3AAD532B0D87E500DE5FE7 /* KMCompareThumbItem.swift in Sources */,
 				AD3AAD532B0D87E500DE5FE7 /* KMCompareThumbItem.swift in Sources */,
@@ -14874,7 +14888,6 @@
 				656C1E342CD0745200295F82 /* KMConvertOCRSettingItemView.swift in Sources */,
 				656C1E342CD0745200295F82 /* KMConvertOCRSettingItemView.swift in Sources */,
 				AD8B593A2D2B777700150EA6 /* KMBatchCompressView.swift in Sources */,
 				AD8B593A2D2B777700150EA6 /* KMBatchCompressView.swift in Sources */,
 				9FBC489B2996500300CA39D7 /* KMDocumentController.swift in Sources */,
 				9FBC489B2996500300CA39D7 /* KMDocumentController.swift in Sources */,
-				AD8E48D92D1BE54F0055D3E6 /* KMOCRProgressView.swift in Sources */,
 				BBD8EE962B8EC86A00EB05FE /* AutoSavePopController.m in Sources */,
 				BBD8EE962B8EC86A00EB05FE /* AutoSavePopController.m in Sources */,
 				BB2F9AAF2AFCAE1F00F9DD93 /* KMProfileTitleCellView.swift in Sources */,
 				BB2F9AAF2AFCAE1F00F9DD93 /* KMProfileTitleCellView.swift in Sources */,
 				AD58F41F2B1DC29100299EE0 /* KMPrintViewModel.swift in Sources */,
 				AD58F41F2B1DC29100299EE0 /* KMPrintViewModel.swift in Sources */,
@@ -15090,6 +15103,7 @@
 				ADD1B7022946C8AD00C3FFF7 /* KMBaseTextField.swift in Sources */,
 				ADD1B7022946C8AD00C3FFF7 /* KMBaseTextField.swift in Sources */,
 				BB03D68C2B01C782008C9976 /* KMPDFEditInsertBlankPageWindow.swift in Sources */,
 				BB03D68C2B01C782008C9976 /* KMPDFEditInsertBlankPageWindow.swift in Sources */,
 				9F1FE4E129406E4700E952CA /* GTMNSAnimation+Duration.m in Sources */,
 				9F1FE4E129406E4700E952CA /* GTMNSAnimation+Duration.m in Sources */,
+				ADB1AC352D435C950014021F /* KMOCRDownloadView.swift in Sources */,
 				BB031B752C47BB090099F7AD /* KMUserListItemCellView.swift in Sources */,
 				BB031B752C47BB090099F7AD /* KMUserListItemCellView.swift in Sources */,
 				ADDF83292B391A5C00A81A4E /* CPDFSelection+PDFListView.m in Sources */,
 				ADDF83292B391A5C00A81A4E /* CPDFSelection+PDFListView.m in Sources */,
 				AD8B59A62D2B777700150EA6 /* KMBatchSettingItemViewModel.swift in Sources */,
 				AD8B59A62D2B777700150EA6 /* KMBatchSettingItemViewModel.swift in Sources */,
@@ -15987,6 +16001,7 @@
 				BBD25BF22B18768600EB85D4 /* KMCompressOperation.swift in Sources */,
 				BBD25BF22B18768600EB85D4 /* KMCompressOperation.swift in Sources */,
 				BBB7899A2BE8BF2400F7E09C /* AIInfoInputView.swift in Sources */,
 				BBB7899A2BE8BF2400F7E09C /* AIInfoInputView.swift in Sources */,
 				AD8B59E82D2B778D00150EA6 /* KMBatchProcessingStateTableCell.swift in Sources */,
 				AD8B59E82D2B778D00150EA6 /* KMBatchProcessingStateTableCell.swift in Sources */,
+				ADB1AC372D435C950014021F /* KMOCRDownloadView.swift in Sources */,
 				BB03085D2CC7A40A00F4AAC7 /* KMPDFSideBarController.swift in Sources */,
 				BB03085D2CC7A40A00F4AAC7 /* KMPDFSideBarController.swift in Sources */,
 				ADD1B6BC29420B4A00C3FFF7 /* KMPrintPreviewView.swift in Sources */,
 				ADD1B6BC29420B4A00C3FFF7 /* KMPrintPreviewView.swift in Sources */,
 				BB9EA1582B1EEAAC00EAFD9B /* KMImageModel.swift in Sources */,
 				BB9EA1582B1EEAAC00EAFD9B /* KMImageModel.swift in Sources */,
@@ -16178,7 +16193,6 @@
 				BB88E43C294023CB002B3655 /* KMDocumentModel.swift in Sources */,
 				BB88E43C294023CB002B3655 /* KMDocumentModel.swift in Sources */,
 				BBE412C22D12A3410069A661 /* KMRedactToolbarController.swift in Sources */,
 				BBE412C22D12A3410069A661 /* KMRedactToolbarController.swift in Sources */,
 				BBDE52BC2BF3676C000545B2 /* KMPresentTableViewCell.swift in Sources */,
 				BBDE52BC2BF3676C000545B2 /* KMPresentTableViewCell.swift in Sources */,
-				AD8E48DA2D1BE54F0055D3E6 /* KMOCRProgressView.swift in Sources */,
 				BB88107D2B4F7A1F00AFA63E /* KMActivityALertViewController.m in Sources */,
 				BB88107D2B4F7A1F00AFA63E /* KMActivityALertViewController.m in Sources */,
 				BBEB0DE12CE36B47004C67BF /* KMRightSideController.swift in Sources */,
 				BBEB0DE12CE36B47004C67BF /* KMRightSideController.swift in Sources */,
 				ADAC0DE62AC2B04900FD4F52 /* KMNoteTypeImageView.swift in Sources */,
 				ADAC0DE62AC2B04900FD4F52 /* KMNoteTypeImageView.swift in Sources */,
@@ -16384,6 +16398,7 @@
 				BBBAECF52B57672200266BD3 /* SKPresentationOptionsSheetController.swift in Sources */,
 				BBBAECF52B57672200266BD3 /* SKPresentationOptionsSheetController.swift in Sources */,
 				9F1FE4CA29406E4700E952CA /* CTTabContents.m in Sources */,
 				9F1FE4CA29406E4700E952CA /* CTTabContents.m in Sources */,
 				9FCFECA52AD237B500EAD2CB /* KMBatchTableRowView.swift in Sources */,
 				9FCFECA52AD237B500EAD2CB /* KMBatchTableRowView.swift in Sources */,
+				ADB1AC432D4373200014021F /* KMOCRDownloadViewController.swift in Sources */,
 				BB1A34A9295EA30100B80B3E /* NSBitmapImageRep_SKExtensions.m in Sources */,
 				BB1A34A9295EA30100B80B3E /* NSBitmapImageRep_SKExtensions.m in Sources */,
 				BBB1A3A729F6B66400E54E47 /* NSPanel+KMExtension.swift in Sources */,
 				BBB1A3A729F6B66400E54E47 /* NSPanel+KMExtension.swift in Sources */,
 				BBBAED152B57E97000266BD3 /* SKTypeSelectHelper.swift in Sources */,
 				BBBAED152B57E97000266BD3 /* SKTypeSelectHelper.swift in Sources */,
@@ -16602,6 +16617,7 @@
 				BB3A81B72AC2C0F4006FC66C /* NSObject+KMExtension.swift in Sources */,
 				BB3A81B72AC2C0F4006FC66C /* NSObject+KMExtension.swift in Sources */,
 				651675C92CE3312000019A20 /* KMBOTAOutlineCellView.swift in Sources */,
 				651675C92CE3312000019A20 /* KMBOTAOutlineCellView.swift in Sources */,
 				BBBAECF62B57672200266BD3 /* SKPresentationOptionsSheetController.swift in Sources */,
 				BBBAECF62B57672200266BD3 /* SKPresentationOptionsSheetController.swift in Sources */,
+				ADB1AC362D435C950014021F /* KMOCRDownloadView.swift in Sources */,
 				BB88106F2B4F771D00AFA63E /* KMVerificationInfoViewController.m in Sources */,
 				BB88106F2B4F771D00AFA63E /* KMVerificationInfoViewController.m in Sources */,
 				BB77C8612BD506BE0065AFF2 /* CPDFAnnotation+KMExtension.swift in Sources */,
 				BB77C8612BD506BE0065AFF2 /* CPDFAnnotation+KMExtension.swift in Sources */,
 				9FCFEC8A2AD0EF9900EAD2CB /* KMPopMenuButton.swift in Sources */,
 				9FCFEC8A2AD0EF9900EAD2CB /* KMPopMenuButton.swift in Sources */,
@@ -16625,6 +16641,7 @@
 				BB1B0AF72B4FC6E900889528 /* KMConvertGuideView.swift in Sources */,
 				BB1B0AF72B4FC6E900889528 /* KMConvertGuideView.swift in Sources */,
 				BB86C1EF28F544F4005AD968 /* CPDFListView+Event.m in Sources */,
 				BB86C1EF28F544F4005AD968 /* CPDFListView+Event.m in Sources */,
 				657851702CFEE38E0023D640 /* KMSearchReplaceWindowController.swift in Sources */,
 				657851702CFEE38E0023D640 /* KMSearchReplaceWindowController.swift in Sources */,
+				ADB1AC412D4373200014021F /* KMOCRDownloadViewController.swift in Sources */,
 				BBE788BC2CBD2463008086E2 /* AlertControllerVC.swift in Sources */,
 				BBE788BC2CBD2463008086E2 /* AlertControllerVC.swift in Sources */,
 				ADBC2D39299F0A5A006280C8 /* KMPrintHelpViewController.swift in Sources */,
 				ADBC2D39299F0A5A006280C8 /* KMPrintHelpViewController.swift in Sources */,
 				9F9461862BD644BF0076574B /* KMTableDataManager.m in Sources */,
 				9F9461862BD644BF0076574B /* KMTableDataManager.m in Sources */,
@@ -16734,7 +16751,6 @@
 				9FF94F0B29A62B5000B1EF69 /* KMDesignSelect.swift in Sources */,
 				9FF94F0B29A62B5000B1EF69 /* KMDesignSelect.swift in Sources */,
 				BB4F7E832B0C4E140077EC8C /* KMNoteFilterCollevtionViewItem.swift in Sources */,
 				BB4F7E832B0C4E140077EC8C /* KMNoteFilterCollevtionViewItem.swift in Sources */,
 				BB60138E2AD3A94200A76FB2 /* CPDFSignatureAnnotation+PDFListView.swift in Sources */,
 				BB60138E2AD3A94200A76FB2 /* CPDFSignatureAnnotation+PDFListView.swift in Sources */,
-				AD8E48DB2D1BE54F0055D3E6 /* KMOCRProgressView.swift in Sources */,
 				BBBAED162B57E97000266BD3 /* SKTypeSelectHelper.swift in Sources */,
 				BBBAED162B57E97000266BD3 /* SKTypeSelectHelper.swift in Sources */,
 				BB6347B62AF224D600F5438E /* KMConvertCollectionViewHeader.swift in Sources */,
 				BB6347B62AF224D600F5438E /* KMConvertCollectionViewHeader.swift in Sources */,
 				ADBC2D2A299DCA76006280C8 /* NSTextField+Layer.swift in Sources */,
 				ADBC2D2A299DCA76006280C8 /* NSTextField+Layer.swift in Sources */,

File diff suppressed because it is too large
+ 2683 - 28643
PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/lizhe.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist