Browse Source

【2025】【OCR】新增OCR入口

lizhe 2 months ago
parent
commit
1d85342664

+ 2 - 2
PDF Office/KMComponentLibrary/KMComponentLibrary.xcodeproj/project.pbxproj

@@ -1398,7 +1398,7 @@
 				COMBINE_HIDPI_IMAGES = YES;
 				CURRENT_PROJECT_VERSION = 1;
 				DEFINES_MODULE = YES;
-				DEVELOPMENT_TEAM = F552E2RJ98;
+				DEVELOPMENT_TEAM = 4GGQPGRTSV;
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
@@ -1430,7 +1430,7 @@
 				COMBINE_HIDPI_IMAGES = YES;
 				CURRENT_PROJECT_VERSION = 1;
 				DEFINES_MODULE = YES;
-				DEVELOPMENT_TEAM = F552E2RJ98;
+				DEVELOPMENT_TEAM = 4GGQPGRTSV;
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";

+ 7 - 2
PDF Office/PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift

@@ -553,10 +553,13 @@ struct KMNMWCFlags {
             
         } else if toolbarMode == .Tools {
             //MARK: -工具
-            listView.toolMode = .CTextToolMode
+            if subToolMode == .Tool_OCR {
+                listView.toolMode = .COCRToolMode
+            } else {
+                listView.toolMode = .CTextToolMode
+            }
             
         }
-        
     }
     
     func showOrHideNotes() {
@@ -2449,6 +2452,8 @@ extension KMMainViewController: KMPDFToolbarControllerDelegate {
                 self.showCompressController(self.listView.document.documentURL)
             } else if itemIdentifier == KMPDFToolbar_tools_batch_compress_Identifier {
                 self.showBatchCompressController([self.listView.document.documentURL])
+            } else if itemIdentifier == KMPDFToolbar_tools_OCR_Identifier {
+                viewManager.showRightSide = !viewManager.showRightSide
             }
         } else if itemIdentifier == KMPDFToolbar_ViewDisplay_Identifier {
             //MARK: -Display

+ 1 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/KMPDFConfig.swift

@@ -77,6 +77,7 @@ import Cocoa
     case Redact
     case Digital_Sign
     
+    case Tool_OCR
 }
 
 //侧边栏样式

+ 16 - 2
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/KMRightSideController.swift

@@ -69,6 +69,9 @@ class KMRightSideController: NSViewController {
     var fill_tickController: FillTickController?
     //
     
+    //OCR
+    var tool_OCRController: KMOCRController?
+    
     var contentViewController: NSViewController?
     
     weak open var delegate: KMRightSideControllerDelegate?
@@ -203,6 +206,11 @@ class KMRightSideController: NSViewController {
             }
         } else if (contentViewController is FillTickController) {
             titleLabel.stringValue = KMLocalizedString("Fill")
+        } else if (contentViewController is KMOCRController) {
+            titleLabel.stringValue = KMLocalizedString("OCR")
+        }
+        else {
+        
         }
         
     }
@@ -445,8 +453,14 @@ class KMRightSideController: NSViewController {
                 measure_Controller?.pdfView = self.pdfView
                 
                 contentViewController = measure_Controller
-            }
-            else {
+            } else if subToolMode == .Tool_OCR {
+                if tool_OCRController == nil {
+                    tool_OCRController = KMOCRController.init()
+                }
+                tool_OCRController?.pdfView = self.pdfView
+                
+                contentViewController = tool_OCRController
+            } else {
                 
             }
             

+ 19 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/KMOCRController.swift

@@ -0,0 +1,19 @@
+//
+//  KMOCRController.swift
+//  PDF Reader Pro
+//
+//  Created by lizhe on 2024/12/19.
+//
+
+import Cocoa
+
+class KMOCRController: NSViewController {
+
+    var pdfView: CPDFListView?
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        // Do view setup here.
+    }
+    
+}

+ 19 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/KMOCRController.xib

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11134" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+    <dependencies>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11134"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMOCRController" customModuleProvider="target">
+            <connections>
+                <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="272"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+        </customView>
+    </objects>
+</document>

+ 2 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/Toolbar/KMPDFSecToolbarController.swift

@@ -272,6 +272,8 @@ class KMPDFSecToolbarController: NSViewController {
             return .Redact
         } else if identifier == KMPDFToolbar_protect_digitalSign_Identifier {
             return .Digital_Sign
+        } else if identifier == KMPDFToolbar_tools_OCR_Identifier {
+            return .Tool_OCR
         }
         
         return .None

+ 50 - 2
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -2042,6 +2042,12 @@
 		ADD3EBE22D116BAD005B711B /* KMCompressTool.m in Sources */ = {isa = PBXBuildFile; fileRef = ADD3EBE12D116BAD005B711B /* KMCompressTool.m */; };
 		ADD3EBE32D116BAD005B711B /* KMCompressTool.m in Sources */ = {isa = PBXBuildFile; fileRef = ADD3EBE12D116BAD005B711B /* KMCompressTool.m */; };
 		ADD3EBE42D116BAD005B711B /* KMCompressTool.m in Sources */ = {isa = PBXBuildFile; fileRef = ADD3EBE12D116BAD005B711B /* KMCompressTool.m */; };
+		ADD3EC002D13F23D005B711B /* KMOCRController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADD3EBFE2D13F23D005B711B /* KMOCRController.swift */; };
+		ADD3EC012D13F23D005B711B /* KMOCRController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADD3EBFE2D13F23D005B711B /* KMOCRController.swift */; };
+		ADD3EC022D13F23D005B711B /* KMOCRController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADD3EBFE2D13F23D005B711B /* KMOCRController.swift */; };
+		ADD3EC032D13F23D005B711B /* KMOCRController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADD3EBFF2D13F23D005B711B /* KMOCRController.xib */; };
+		ADD3EC042D13F23D005B711B /* KMOCRController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADD3EBFF2D13F23D005B711B /* KMOCRController.xib */; };
+		ADD3EC052D13F23D005B711B /* KMOCRController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADD3EBFF2D13F23D005B711B /* KMOCRController.xib */; };
 		ADD56F572BB3F48300E87ED9 /* KMFreeTextStylesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = ADD56F542BB3F48200E87ED9 /* KMFreeTextStylesViewController.m */; };
 		ADD56F582BB3F48300E87ED9 /* KMFreeTextStylesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = ADD56F542BB3F48200E87ED9 /* KMFreeTextStylesViewController.m */; };
 		ADD56F592BB3F48300E87ED9 /* KMFreeTextStylesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = ADD56F542BB3F48200E87ED9 /* KMFreeTextStylesViewController.m */; };
@@ -6012,6 +6018,8 @@
 		ADD3EBD62D111983005B711B /* KMCompressManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMCompressManager.swift; sourceTree = "<group>"; };
 		ADD3EBE02D116BAD005B711B /* KMCompressTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KMCompressTool.h; sourceTree = "<group>"; };
 		ADD3EBE12D116BAD005B711B /* KMCompressTool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KMCompressTool.m; sourceTree = "<group>"; };
+		ADD3EBFE2D13F23D005B711B /* KMOCRController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMOCRController.swift; sourceTree = "<group>"; };
+		ADD3EBFF2D13F23D005B711B /* KMOCRController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMOCRController.xib; sourceTree = "<group>"; };
 		ADD56F542BB3F48200E87ED9 /* KMFreeTextStylesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KMFreeTextStylesViewController.m; sourceTree = "<group>"; };
 		ADD56F552BB3F48200E87ED9 /* KMFreeTextStylesViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMFreeTextStylesViewController.xib; sourceTree = "<group>"; };
 		ADD56F562BB3F48200E87ED9 /* KMFreeTextStylesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMFreeTextStylesViewController.h; sourceTree = "<group>"; };
@@ -9883,6 +9891,39 @@
 			path = Tool;
 			sourceTree = "<group>";
 		};
+		ADD3EBEB2D13EA54005B711B /* OCR */ = {
+			isa = PBXGroup;
+			children = (
+				ADD3EC062D13F26F005B711B /* View */,
+				ADD3EBFE2D13F23D005B711B /* KMOCRController.swift */,
+				ADD3EBFF2D13F23D005B711B /* KMOCRController.xib */,
+			);
+			path = OCR;
+			sourceTree = "<group>";
+		};
+		ADD3EBEC2D13EAC4005B711B /* File */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			path = File;
+			sourceTree = "<group>";
+		};
+		ADD3EBED2D13EAC9005B711B /* Area */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			path = Area;
+			sourceTree = "<group>";
+		};
+		ADD3EC062D13F26F005B711B /* View */ = {
+			isa = PBXGroup;
+			children = (
+				ADD3EBED2D13EAC9005B711B /* Area */,
+				ADD3EBEC2D13EAC4005B711B /* File */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
 		ADD56F532BB3F48200E87ED9 /* KMFreeTextStylesViewController */ = {
 			isa = PBXGroup;
 			children = (
@@ -12990,6 +13031,7 @@
 			children = (
 				BB61921D2D13E951003FDEA6 /* Fill_Date */,
 				BB61921A2D13E700003FDEA6 /* Fill_Tick */,
+				ADD3EBEB2D13EA54005B711B /* OCR */,
 				BB9AEB1A2D0FC909004BF8D2 /* Forms */,
 				BB38D2CD2D047A6F0039F106 /* Measure */,
 				BB451A652CF59C03003E1565 /* Highlight */,
@@ -14106,6 +14148,7 @@
 				AD867FBB29DFBB3B00F00440 /* KMAnnotationOutlineSectionView.xib in Resources */,
 				653647BF2CDCA5DE00CDB13E /* KMBatchOperateSplitViewController.xib in Resources */,
 				ADCFFC0629C04617007D3657 /* BOTA.xcassets in Resources */,
+				ADD3EC032D13F23D005B711B /* KMOCRController.xib in Resources */,
 				ADDF837A2B391A5D00A81A4E /* CDSignatureTextViewController.xib in Resources */,
 				BBFDFAA22AF3815C00E08AA2 /* KMTextHintWindowController.xib in Resources */,
 				AD1CA4032A06040B0070541F /* KMAnnotationScreenCollectionView.xib in Resources */,
@@ -14598,6 +14641,7 @@
 				BBE788EE2CBD2464008086E2 /* SegmentedVC.xib in Resources */,
 				BBFBE74C28DD7DE4008B2335 /* Assets.xcassets in Resources */,
 				ADE3C1AF29A4779E00793B13 /* KMPrintAccessoryController.xib in Resources */,
+				ADD3EC042D13F23D005B711B /* KMOCRController.xib in Resources */,
 				BB5A9D372CB6520100F64C1F /* KMHomeOpenView.xib in Resources */,
 				BBB789A32BE8BF2400F7E09C /* AIChatFileInfoItem.xib in Resources */,
 				AD2BF2312B56200D0029F03F /* SF-Pro-Text-Bold.otf in Resources */,
@@ -15162,6 +15206,7 @@
 				BB03D6A22B024AC8008C9976 /* KMPDFEditInsertPageWindow.xib in Resources */,
 				ADAFDA122AE8DD6600F084BC /* KMAdvertisementCollectionHeadView.xib in Resources */,
 				BB031B8C2C47BB090099F7AD /* KMUserFbDespItemView.xib in Resources */,
+				ADD3EC052D13F23D005B711B /* KMOCRController.xib in Resources */,
 				ADAFDA1E2AE8DD6600F084BC /* KMAdvertisementTableView.xib in Resources */,
 				BBE788C82CBD2463008086E2 /* SelectVC.xib in Resources */,
 				BBB789B92BE8BF2400F7E09C /* AIChatDefaultTIpItem.xib in Resources */,
@@ -15929,6 +15974,7 @@
 				BBEB93EB2AD6C2AE00739573 /* KMPDFMergeFileNameTabelViewCell.swift in Sources */,
 				BBA9222B2B4E96450061057A /* KMPurchaseCompareWindowController.m in Sources */,
 				9F1FE4CF29406E4700E952CA /* CTTabController.m in Sources */,
+				ADD3EC002D13F23D005B711B /* KMOCRController.swift in Sources */,
 				9F0CB4C92986533F00007028 /* KMDesignToken+Sizing.swift in Sources */,
 				9F8539DE29470A0700DF644E /* KMTabStripView.swift in Sources */,
 				AD9527EE295578BD0039D2BC /* KMBaseTextFieldPresenter.swift in Sources */,
@@ -17304,6 +17350,7 @@
 				BB4EEF3529764166003A3537 /* KMRedactPropertyWindowController.swift in Sources */,
 				BBE788B22CBD2463008086E2 /* MessageVC.swift in Sources */,
 				BBB3FF992B567D0300145C4A /* KMApplication.swift in Sources */,
+				ADD3EC012D13F23D005B711B /* KMOCRController.swift in Sources */,
 				BB0FE04D2B734DD1001E0F88 /* AIPurchaseWindowController.swift in Sources */,
 				BB8F4561295AA39F0037EA22 /* KMHeaderFooterObject.swift in Sources */,
 				BBFEF7142B3A766C00C28AC0 /* KMSystemMenu.swift in Sources */,
@@ -18203,6 +18250,7 @@
 				9F8539E029470A0700DF644E /* KMTabStripView.swift in Sources */,
 				BBA8B7AC2935DC120097D183 /* KMRemovePasswordResultTipView.swift in Sources */,
 				BB6D2DA92B674A6300624C24 /* CPDFOutline+KMExtension.swift in Sources */,
+				ADD3EC022D13F23D005B711B /* KMOCRController.swift in Sources */,
 				BBF62C722B0347AF007B7E86 /* SplitWindowController.swift in Sources */,
 				BBFEF7312B3A794700C28AC0 /* KMSystemViewMenu.swift in Sources */,
 				9F0CB4F7298655D500007028 /* KMDesignToken+Fill.swift in Sources */,
@@ -19694,7 +19742,7 @@
 				COMBINE_HIDPI_IMAGES = YES;
 				CURRENT_PROJECT_VERSION = 1;
 				DEFINES_MODULE = YES;
-				DEVELOPMENT_TEAM = 4GGQPGRTSV;
+				DEVELOPMENT_TEAM = Q43DRF894U;
 				ENABLE_HARDENED_RUNTIME = NO;
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
@@ -19769,7 +19817,7 @@
 				COMBINE_HIDPI_IMAGES = YES;
 				CURRENT_PROJECT_VERSION = 1;
 				DEFINES_MODULE = YES;
-				DEVELOPMENT_TEAM = 4GGQPGRTSV;
+				DEVELOPMENT_TEAM = Q43DRF894U;
 				ENABLE_HARDENED_RUNTIME = NO;
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",