Browse Source

Merge branch 'develop_2025' of git.kdan.cc:Mac_PDF/PDF_Office into develop_2025

niehaoyu 1 tháng trước cách đây
mục cha
commit
de14d67fa0

+ 5 - 8
PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFListView.m

@@ -1668,15 +1668,12 @@ void CPDFListViewOCDrawLineHandles(CGContextRef context, CGRect rect, CGFloat ra
     CGFloat radius = HANDLE_SIZE * [self unitWidthOnPage:pdfPage];
     
     // 预定义颜色并重用,避免每次绘制时都创建和销毁颜色对象
-    if (_toolMode != COCRToolMode) {
-        static CGColorRef activeFillColor = NULL;
-        if (!activeFillColor) {
-            activeFillColor = CGColorCreateGenericGray(0.0, 0.6);  // 活动区域的填充颜色
-        }
-        CGContextSetFillColorWithColor(context, activeFillColor);
-    } else {
-        CGContextSetRGBFillColor(context, 0, 0, 0, 0);
+    static CGColorRef activeFillColor = NULL;
+    if (!activeFillColor) {
+//        activeFillColor = CGColorCreateGenericGray(0.0, 0.6);  // 活动区域的填充颜色
+        activeFillColor = CGColorCreateSRGB(0, 0, 0, 0.25);
     }
+    CGContextSetFillColorWithColor(context, activeFillColor);
     
     // 开始绘制
     CGContextBeginPath(context);

+ 11 - 1
PDF Office/PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift

@@ -3873,14 +3873,20 @@ extension KMMainViewController {
         let orgPage : CPDFPage = listView.currentSelectionPage() ?? CPDFPage()
         
         if let page : CPDFPage = orgPage.copy() as? CPDFPage {
+            KMCompressManager.shared.showLoadingWindow(window: self.view.window)
+            KMCompressManager.shared.cancelAction = {
+                KMOCRManager.manager.cancelRecognition()
+            }
+            
             page.setBounds(rect, for: .cropBox)
             let image = page.thumbnail(of: rect.size) ?? NSImage()
             guard let model = self.rightSideController?.tool_OCRController?.model else { return }
             model.pageRange = [Int(orgPage.pageIndex())]
             KMOCRManager.manager.clearOCRTextData()
             KMOCRManager.manager.convertOCR(images: [image], model: model, progress: { progress in
-                
+                KMCompressManager.shared.updateLoadingProgress(value: progress)
             }) { [weak self] document, text, error in
+                KMCompressManager.shared.dismissLoadiingWindow(window: self?.view.window)
                 self?.rightSideController?.tool_OCRController?.model.text = text ?? ""
                 self?.rightSideController?.tool_OCRController?.reloadData()
                 //关闭窗口
@@ -4629,6 +4635,10 @@ extension KMMainViewController: KMRightSideControllerDelegate {
         }
     }
     
+    func kmRightSideControllerOCRLanguageChangeAction(_ controller: KMRightSideController, _ model: KMOCRModel) {
+        self.convertSelectionRectOCR(rect: self.listView.currentSelectionRect())
+    }
+    
     //测量设置界面
     func kmRightSideControllerShowMeasureSetting(_ controller: KMRightSideController) {
         showMeasureSettingWindow() 

+ 5 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/KMRightSideController.swift

@@ -15,6 +15,7 @@ import KMComponentLibrary
     //OCR
     @objc func kmRightSideControllerOCRShowTypeChange(_ controller: KMRightSideController, _ type: KMOCRShowType)
     @objc func kmRightSideControllerOCRDoneAction(_ controller: KMRightSideController, _ model: KMOCRModel)
+    @objc func kmRightSideControllerOCRLanguageChangeAction(_ controller: KMRightSideController, _ model: KMOCRModel)
     
     @objc func kmRightSideControllerRotateLeft(_ annotations: [CPDFStampAnnotation], withPDFView pdfView: CPDFListView?)
     @objc func kmRightSideControllerRotateRight(_ annotations: [CPDFStampAnnotation], withPDFView pdfView: CPDFListView?)
@@ -540,6 +541,10 @@ class KMRightSideController: NSViewController {
                     tool_OCRController?.doneAction = { [unowned self] controller, model in
                         delegate?.kmRightSideControllerOCRDoneAction(self, model)
                     }
+                    
+                    tool_OCRController?.languageChangeAction = { [unowned self] controller, model in
+                        delegate?.kmRightSideControllerOCRLanguageChangeAction(self, model)
+                    }
                 }
                 tool_OCRController?.pdfView = self.pdfView
                 

+ 8 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Tool/Contoller/KMOCRController.swift

@@ -10,6 +10,8 @@ import KMComponentLibrary
 
 typealias KMOCRControllerTypeChange = (_ controller: KMOCRController, _ type: KMOCRShowType) -> ()
 typealias KMOCRControllerDoneAction = (_ controller: KMOCRController, _ model: KMOCRModel) -> ()
+typealias KMOCRControllerLanguageChangeAction = (_ controller: KMOCRController, _ model: KMOCRModel) -> ()
+
 class KMOCRController: NSViewController {
     @IBOutlet weak var typeTabs: ComponentTabs!
     @IBOutlet weak var saveButton: ComponentButton!
@@ -20,6 +22,7 @@ class KMOCRController: NSViewController {
     
     var typeChange: KMOCRControllerTypeChange?
     var doneAction: KMOCRControllerDoneAction?
+    var languageChangeAction: KMOCRControllerLanguageChangeAction?
     
     var pdfView: CPDFListView?
     
@@ -66,6 +69,11 @@ class KMOCRController: NSViewController {
             }
             self.saveButton.reloadData()
         }
+        
+        self.areaView.languageChangeAction = { [unowned self] view in
+            
+            self.languageChangeAction?(self, model)
+        }
     }
     
     //MARK: - GroupView

+ 4 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Tool/View/Area/KMOCRAreaView.swift

@@ -10,6 +10,7 @@ import KMComponentLibrary
 
 typealias KMOCRAreaViewValueChangeAction = (_ view: KMOCRAreaView, _ model: KMOCRModel) -> (Void)
 typealias KMOCRAreaViewTextChangeAction = (_ view: KMOCRAreaView, _ text: String) -> (Void)
+typealias KMOCRAreaViewLanguageChangeAction = (_ view: KMOCRAreaView) -> (Void)
 
 class KMOCRAreaView: BaseXibView {
     @IBOutlet weak var ocrPlanLabel: NSTextField!
@@ -29,6 +30,7 @@ class KMOCRAreaView: BaseXibView {
     
     var changeAction: KMOCRAreaViewValueChangeAction?
     var textChangeAction: KMOCRAreaViewTextChangeAction?
+    var languageChangeAction: KMOCRAreaViewLanguageChangeAction?
     
     var selectIndex: Int = 0
     
@@ -223,6 +225,8 @@ extension KMOCRAreaView: ComponentSelectDelegate {
             } else {
                 print("转换失败")
             }
+            
+            languageChangeAction?(self)
         }
     }
 }