Browse Source

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

tangchao 1 year ago
parent
commit
bafeb4ba34

+ 17 - 16
PDF Office/PDF Master/Class/PDFTools/KMBookmark/Controller/KMBookmarkController.swift

@@ -7,9 +7,9 @@
 
 import Cocoa
 
-private let kLabel = NSUserInterfaceItemIdentifier("label")
-private let kFile  = NSUserInterfaceItemIdentifier("file")
-private let kPage  = NSUserInterfaceItemIdentifier("page")
+private let kLabelIdentifier = NSUserInterfaceItemIdentifier("label")
+private let kFileIdentifier  = NSUserInterfaceItemIdentifier("file")
+private let kPageIdentifier  = NSUserInterfaceItemIdentifier("page")
 
 let kTextWithIconStringKey = "string";
 let kTextWithIconImageKey = "image";
@@ -248,7 +248,8 @@ class KMBookmarkController: NSWindowController {
     
     @IBAction func deleteBookmark(_ sender: Any) {
         print("deleteBookmark")
-        self.deleteBookmarks(bookmarks: [outlineView.selectedItem() as! KMBookmark])
+        guard let bookmark = outlineView.selectedItem() as? KMBookmark else { return }
+        self.deleteBookmarks(bookmarks: [bookmark])
     }
 //
 //    @IBAction func toggleStatusBar(_ sender: Any) {
@@ -532,16 +533,16 @@ extension KMBookmarkController: NSOutlineViewDelegate, NSOutlineViewDataSource {
         let tcID = column.identifier
         
         switch tcID {
-        case kLabel:
+        case kLabelIdentifier:
             return [kTextWithIconStringKey: bm.label, kTextWithIconImageKey: bm.icon]
-        case kFile:
+        case kFileIdentifier:
             if bm.bookmarkType == .folder || bm.bookmarkType == .session {
                 let count = bm.children.count
                 return count == 1 ? NSLocalizedString("1 item", comment: "Bookmark folder description") : String.localizedStringWithFormat(NSLocalizedString("%ld items", comment: "Bookmark folder description"), count)
             } else {
                 return bm.fileURL?.path ?? ""
             }
-        case kPage:
+        case kPageIdentifier:
             return bm.pageNumber
         default:
             return nil
@@ -554,11 +555,11 @@ extension KMBookmarkController: NSOutlineViewDelegate, NSOutlineViewDataSource {
         let tcID = column.identifier
         
         switch tcID {
-        case kLabel:
+        case kLabelIdentifier:
             if let newLabel = (object as? [String: Any])?[kTextWithIconStringKey] as? String, newLabel != bm.label {
                 bm.label = newLabel
             }
-        case kPage:
+        case kPageIdentifier:
             if let newPageNumber = object as? Int, newPageNumber != bm.pageNumber.intValue {
                 bm.pageNumber = newPageNumber as NSNumber
             }
@@ -662,7 +663,7 @@ extension KMBookmarkController: NSOutlineViewDelegate, NSOutlineViewDataSource {
         guard let column = tableColumn else { return }
         guard let cell = cell as? NSCell else { return }
 
-        if column.identifier == kFile {
+        if column.identifier == kFileIdentifier {
             if let bm = item as? KMBookmark {
 //                if bm.bookmarkType == .folder || bm.bookmarkType == .session {
 //                    cell.textColor = .disabledControlTextColor
@@ -679,9 +680,9 @@ extension KMBookmarkController: NSOutlineViewDelegate, NSOutlineViewDataSource {
 
         let tcID = column.identifier
         switch tcID {
-        case kLabel:
+        case kLabelIdentifier:
             return bm.bookmarkType != .separator
-        case kPage:
+        case kPageIdentifier:
             return bm.pageIndex != NSNotFound
         default:
             return false
@@ -694,9 +695,9 @@ extension KMBookmarkController: NSOutlineViewDelegate, NSOutlineViewDataSource {
 
         let tcID = column.identifier
         switch tcID {
-        case kLabel:
+        case kLabelIdentifier:
             return bm.label
-        case kFile:
+        case kFileIdentifier:
             if bm.bookmarkType == .session {
                 return ""
 //                return bm.children.map { $0.path ?? "" }.joined(separator: "\n")
@@ -706,8 +707,8 @@ extension KMBookmarkController: NSOutlineViewDelegate, NSOutlineViewDataSource {
             } else {
                 return bm.fileURL?.path ?? ""
             }
-        case kPage:
-            return bm.pageNumber.stringValue 
+        case kPageIdentifier:
+            return bm.pageNumber.stringValue
         default:
             return ""
         }

+ 103 - 12
PDF Office/PDF Master/Class/PDFTools/KMBookmark/Model/KMBookmark.swift

@@ -7,12 +7,18 @@
 
 import Cocoa
 
-enum KMBookmarkType: Int {
-    case bookmark = 0
-    case folder
-    case session
-    case separator
-    case file
+let kType = "type"
+let kChildren = "children"
+let kLabel = "label"
+let kPageIndex = "pageIndex"
+let kBDAlias = "_BDAlias"
+
+enum KMBookmarkType: String {
+    case bookmark = "bookmark"
+    case folder = "folder"
+    case session = "session"
+    case separator = "separator"
+    case file = "file"
 }
 
 class KMBookmark: NSObject {
@@ -52,8 +58,78 @@ class KMBookmark: NSObject {
         return KMBookmark()
     }
     
-    static func bookmark(properties: [String: Any]) -> KMBookmark {
-        return KMBookmark()
+//    - (id)initWithProperties:(NSDictionary *)dictionary {
+//        NSString *type = [dictionary objectForKey:TYPE_KEY];
+//        if ([type isEqualToString:SEPARATOR_STRING]) {
+//            return (id)[[SKSeparatorBookmark alloc] init];
+//        } else if ([type isEqualToString:FOLDER_STRING] || [type isEqualToString:SESSION_STRING]) {
+//            Class bookmarkClass = [type isEqualToString:FOLDER_STRING] ? [SKFolderBookmark class] : [SKSessionBookmark class];
+//            NSMutableArray *newChildren = [NSMutableArray array];
+//            SKBookmark *child;
+//            for (NSDictionary *dict in [dictionary objectForKey:CHILDREN_KEY]) {
+//                if ((child = [[SKBookmark alloc] initWithProperties:dict])) {
+//                    [newChildren addObject:child];
+//                    [child release];
+//                } else
+//                    NSLog(@"Failed to read child bookmark: %@", dict);
+//            }
+//            return (id)[[bookmarkClass alloc] initFolderWithChildren:newChildren label:[dictionary objectForKey:LABEL_KEY]];
+//        } else if ([dictionary objectForKey:@"windowFrame"]) {
+//            return (id)[[SKFileBookmark alloc] initWithSetup:dictionary label:[dictionary objectForKey:LABEL_KEY]];
+//        } else {
+//            NSNumber *pageIndex = [dictionary objectForKey:PAGEINDEX_KEY];
+//            return (id)[[SKFileBookmark alloc] initWithAliasData:[dictionary objectForKey:ALIASDATA_KEY] pageIndex:(pageIndex ? [pageIndex unsignedIntegerValue] : NSNotFound) label:[dictionary objectForKey:LABEL_KEY]];
+//        }
+//    }
+
+    static func bookmark(properties: [String: Any]) -> KMBookmark? {
+        guard let type: KMBookmarkType = KMBookmarkType(rawValue: properties[kType] as! String) else { return nil}
+        
+        var bookmark: KMBookmark
+        if type == .separator {
+            bookmark = KMSeparatorBookmark()
+        } else if type == .folder || type == .session {
+            let bookmarkClass: AnyClass = (type == .folder) ? KMFolderBookmark.self : KMSessionBookmark.self
+            guard let childrenProperties = properties[kChildren] as? [[String: Any]] else { return nil }
+            var newChildren = [KMBookmark]()
+            for dict: [String: Any] in childrenProperties {
+                if let child = KMBookmark.bookmark(properties: dict) {
+                    newChildren.append(child)
+                } else {
+                    NSLog("Failed to read child bookmark: \(dict)")
+                }
+            }
+            guard let label = properties[kLabel] as? String else { return nil }
+            bookmark = KMFolderBookmark.bookmark(children: newChildren, label: label)
+        } else {
+            let pageIndex = properties[kPageIndex] as? UInt ?? UInt(NSNotFound)
+            let label = properties[kLabel] as? String
+            let aliasData = properties[kBDAlias] as? Data
+            bookmark = KMBookmark.bookmark(url: URL(fileURLWithPath: ""), pageIndex: pageIndex, label: label!)
+//            guard let aliasData = properties[ALIASDATA_KEY] as? Data, let label = properties[LABEL_KEY] as? String else { return nil }
+        }
+//        else if properties["windowFrame"] != nil {
+//            guard let label = properties[LABEL_KEY] as? String else { return nil }
+//            self = SKFileBookmark(setup: properties, label: label) as? Self
+//        } 
+//        else {
+//            let pageIndex = properties[PAGEINDEX_KEY] as? UInt ?? NSNotFound
+//            guard let aliasData = properties[ALIASDATA_KEY] as? Data, let label = properties[LABEL_KEY] as? String else { return nil }
+//            self = KMFileBookmark(aliasData: aliasData, pageIndex: pageIndex, label: label) as? Self
+//        }
+        return bookmark
+    }
+    
+    static func bookmark(children: [KMBookmark], label: String) -> KMBookmark {
+        var bookmark = KMFolderBookmark()
+        
+        return bookmark
+    }
+    
+    static func bookmark(url: [KMBookmark], label: String) -> KMBookmark {
+        var bookmark = KMFolderBookmark()
+        
+        return bookmark
     }
     
 //        - (id)initWithProperties:(NSDictionary *)dictionary {
@@ -181,10 +257,12 @@ class KMRootBookmark: KMFolderBookmark {
         let rootBookmark = KMRootBookmark()
         var childs: [KMBookmark] = []
         for setup in childrenProperties {
-            let bookmark = KMBookmark()
-            bookmark.documentSetup = setup as? [String : Any]
-            bookmark.parent = rootBookmark
-            childs.append(bookmark)
+            let bookmark = KMBookmark.bookmark(properties: setup as! [String : Any])
+            bookmark?.documentSetup = setup as? [String : Any]
+            bookmark?.parent = rootBookmark
+            if bookmark != nil {
+                childs.append(bookmark!)
+            }
         }
         rootBookmark.children = childs
         rootBookmark.label = NSLocalizedString("Bookmarks Menu", comment: "")
@@ -285,3 +363,16 @@ class KMSeparatorBookmark: KMBookmark {
         return KMSeparatorBookmark()
     }
 }
+
+//MARK: File
+class KMFileBookmark: KMBookmark {
+    override var bookmarkType: KMBookmarkType {
+        get {
+            return .file
+        }
+        set {
+            
+        }
+    }
+}
+

+ 4 - 1
PDF Office/PDF Master/Class/PDFTools/KMBookmark/View/KMTextWithIconCell.swift

@@ -14,7 +14,7 @@ let BORDER_BETWEEN_IMAGE_AND_TEXT: CGFloat = 2.0
 let IMAGE_OFFSET: CGFloat = 1.0
 
 class KMTextWithIconCell: NSTextFieldCell {
-    private var imageCell: NSImageCell = NSImageCell()
+    var imageCell: NSImageCell = NSImageCell()
     
     override init(textCell string: String) {
         super.init(textCell: string)
@@ -89,6 +89,9 @@ class KMTextWithIconCell: NSTextFieldCell {
         didSet {
             if let obj = objectValue as? NSDictionary {
                 imageCell.image = obj[SKTextWithIconImageKey] as? NSImage
+                self.stringValue = obj[SKTextWithIconStringKey] as! String
+//                print(obj[SKTextWithIconImageKey] as? NSImage)
+//                print(obj[SKTextWithIconStringKey] as? NSImage)
             }
         }
     }

+ 0 - 205
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/StampList/CreateStamp/Model/KMStampManagerNew.swift

@@ -1,205 +0,0 @@
-//
-//  KMStampManagerNew.swift
-//  PDF Reader Pro
-//
-//  Created by liujiajie on 2023/11/21.
-//
-
-import Foundation
-
-class KMStamp: NSObject {
-    @objc var tag: String = ""
-    @objc var string: String = ""
-    @objc var subString: String = ""
-    @objc var imagePath: String = ""
-    var color: Int = 0
-    var date: Date?
-    var isImageStamp: Bool = false
-}
-
-class KMStampManagerNew: NSObject {
-    var stamps: [KMStamp] = []
-    
-    static let shareManager = KMStampManagerNew()
-    func tagString() -> String {
-        let dateFormatter = DateFormatter()
-        dateFormatter.dateFormat = "yyMMddHHmmss"
-        return "\(dateFormatter.string(from: Date()))\(Int.random(in: 0..<10000))"
-    }
-    
-    override init() {
-        super.init()
-        stamps = []
-        if FileManager.default.fileExists(atPath: kStampPlistPath.path),
-           let dictionary = NSDictionary(contentsOfFile: kStampPlistPath.path) as? [String: Any] {
-            
-            var deleteKeys: [String] = []
-            
-            for (key, value) in dictionary {
-                var isAdd = true
-                var stamp: KMStamp = KMStamp()
-                stamp.isImageStamp = false
-                stamp.tag = key
-                if let dic = value as? [String: Any] {
-                    if let stampOfString = dic[kStampOfStringKey] as? String {
-                        stamp.string = stampOfString
-                    }
-                    if let stampOfSubString = dic[kStampOfSubStringKey] as? String {
-                        stamp.subString = stampOfSubString
-                    }
-                    if let stampOfColor = dic[kStampOfColorKey] as? Int {
-                        stamp.color = stampOfColor
-                    }
-                    if let stampOfDate = dic[kStampOfDateKey] as? Date {
-                        stamp.date = stampOfDate
-                    }
-                    
-                    if let stampOfImagePathKey = dic[kStampOfImagePathKey] as? String {
-                        stamp.isImageStamp = true
-                        let path = kStampFolderPath.appendingPathComponent(stampOfImagePathKey).path
-                        if FileManager.default.fileExists(atPath: path) {
-                            stamp.imagePath = path
-                        } else {
-                            isAdd = false
-                            deleteKeys.append(key)
-                        }
-                    }
-                    
-                    if isAdd {
-                        stamps.append(stamp)
-                    }
-                }
-            }
-            
-            if !deleteKeys.isEmpty {
-                var newDictionary = dictionary
-                for key in deleteKeys {
-                    newDictionary.removeValue(forKey: key)
-                }
-                (newDictionary as NSDictionary).write(toFile: kStampPlistPath.path, atomically: true)
-            }
-        }
-    }
-    func addStamp(withString string: String?, dateString: String?, color: KMAnnotationStampColorType) -> Bool {
-        if !FileManager.default.fileExists(atPath: kStampFolderPath.path) {
-            do {
-                try FileManager.default.createDirectory(atPath: kStampFolderPath.path, withIntermediateDirectories: true, attributes: nil)
-            } catch {
-                return false
-            }
-        }
-        
-        if !FileManager.default.fileExists(atPath: kStampPlistPath.path) {
-            if !FileManager.default.createFile(atPath: kStampPlistPath.path, contents: nil, attributes: nil) {
-                return false
-            }
-        }
-        
-        if var dictionary = NSDictionary(contentsOfFile: kStampPlistPath.path) as? [String: Any] {
-            var newDictionary = dictionary
-            
-            let tag = tagString()
-            var stamp: KMStamp = KMStamp()
-            
-            var stampDictionary: [String: Any] = [:]
-            if let string = string {
-                stampDictionary[kStampOfStringKey] = string
-                stamp.string = string
-            }
-            if let dateString = dateString {
-                stampDictionary[kStampOfSubStringKey] = dateString
-                stamp.subString = dateString
-            }
-           
-            stampDictionary[kStampOfColorKey] = color.rawValue
-            stampDictionary[kStampOfDateKey] = Date()
-            
-            newDictionary[tag] = stampDictionary
-            
-            if (newDictionary as NSDictionary).write(toFile: kStampPlistPath.path, atomically: true) {
-                self.stamps.append(stamp)
-            }
-        }
-        
-        return false
-    }
-    
-    func addStamp(withImagePath path: String) -> Bool {
-        if !FileManager.default.fileExists(atPath: kStampFolderPath.path) {
-            do {
-                try FileManager.default.createDirectory(atPath: kStampFolderPath.path, withIntermediateDirectories: false, attributes: nil)
-            } catch {
-                return false
-            }
-        }
-        if !FileManager.default.fileExists(atPath: kStampPlistPath.path) {
-            if !FileManager.default.createFile(atPath: kStampPlistPath.path, contents: nil, attributes: nil) {
-                return false
-            }
-        }
-        
-        let tag = tagString()
-        let rPath = (kStampFolderPath.path as NSString).appendingPathComponent(tag).stringByAppendingPathExtension("jpg")
-        
-        guard let image = NSImage(contentsOfFile: path) else {
-            return false
-        }
-        image.lockFocus()
-        let bits = NSBitmapImageRep(focusedViewRect: NSMakeRect(0, 0, image.size.width, image.size.height))
-        image.unlockFocus()
-        let imageProps = [NSBitmapImageRep.PropertyKey.compressionFactor: NSNumber(value: 0.5)]
-        guard let imageData = bits?.representation(using: NSBitmapImageRep.FileType.jpeg, properties: imageProps) else {
-            return false
-        }
-        if !FileManager.default.createFile(atPath: rPath, contents: imageData, attributes: nil) {
-            return false
-        }
-        
-//        guard let dictionary = NSDictionary(contentsOfFile: kStampPlistPath.path) as? [String: Any] else {
-//            return false
-//        }
-        let dictionary = NSDictionary(contentsOfFile: kStampPlistPath.path) as? [String: Any]
-        var newDictionary = NSMutableDictionary(dictionary: dictionary ?? [:])
-        
-        let stamp = KMStamp()
-        stamp.isImageStamp = true
-        stamp.date = Date()
-        stamp.imagePath = rPath
-        stamp.tag = tag
-        
-        let stampDictionary = NSMutableDictionary()
-        stampDictionary.setObject((rPath as NSString).lastPathComponent, forKey: kStampOfImagePathKey as NSCopying)
-        stampDictionary.setObject(Date(), forKey: kStampOfDateKey as NSCopying)
-        
-        newDictionary.setObject(stampDictionary, forKey: tag as NSCopying)
-        
-        if newDictionary.write(toFile: kStampPlistPath.path, atomically: true) {
-            stamps.append(stamp)
-        }
-        return false
-    }
-    func removeStamp(at index: Int) -> Bool {
-        if index < self.stamps.count {
-            let stamp = self.stamps[index]
-            let key = stamp.tag
-            if !FileManager.default.fileExists(atPath: kStampPlistPath.path) {
-                return false
-            }
-            var dictionary = NSDictionary(contentsOfFile: kStampPlistPath.path) as? [String: Any]
-            var newDictionary = dictionary
-            newDictionary!.removeValue(forKey: key)
-            if (newDictionary! as NSDictionary).write(toFile: kStampPlistPath.path, atomically: true) {
-                if stamp.isImageStamp {
-                    do {
-                        try FileManager.default.removeItem(atPath: stamp.imagePath)
-                    } catch {
-                        return false
-                    }
-                }
-                self.stamps.removeObject(stamp)
-                return true
-            }
-        }
-        return false
-    }
-}

+ 1 - 12
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/StampList/KMAnnotationStampViewController.swift

@@ -829,7 +829,7 @@ let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
                 }
             }
         } else {
-            KMStampManagerNew.shareManager.addStamp(withImagePath: filePath)
+            KMStampManager.defaultManager.addStamp(withImagePath: filePath, categoryString: .image, nameString: "")
             loadCustomStamps()
             createStampTableView.reloadData()
         }
@@ -1041,17 +1041,6 @@ let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
         }
         
         let stampCreaterWindowController = KMStampCreaterWindowController()
-//        stampCreaterWindowController.closeCallBack = { [weak self] result in
-//            if result == 0 {
-//                return
-//            }
-//            
-//            self?.loadCustomStamps()
-//            Task { @MainActor in
-//                self?.createStampTableView.reloadData()
-//            }
-//        }
-//        self.km_beginSheet(windowC: stampCreaterWindowController)
         stampCreaterWindowController.beginSheetModal(for: self.view.window) { [weak self] result in
             if result == 1 {
                 self?.loadCustomStamps()

+ 0 - 8
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -3811,9 +3811,6 @@
 		BB88E45829404752002B3655 /* KMPDFConvert.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB88E45729404752002B3655 /* KMPDFConvert.swift */; };
 		BB88E45929404752002B3655 /* KMPDFConvert.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB88E45729404752002B3655 /* KMPDFConvert.swift */; };
 		BB88E45A29404752002B3655 /* KMPDFConvert.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB88E45729404752002B3655 /* KMPDFConvert.swift */; };
-		BB8931912B0C9CCD0054F58B /* KMStampManagerNew.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB8931902B0C9CCC0054F58B /* KMStampManagerNew.swift */; };
-		BB8931922B0C9CCD0054F58B /* KMStampManagerNew.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB8931902B0C9CCC0054F58B /* KMStampManagerNew.swift */; };
-		BB8931932B0C9CCD0054F58B /* KMStampManagerNew.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB8931902B0C9CCC0054F58B /* KMStampManagerNew.swift */; };
 		BB897218294AED6C0045787C /* KMWatermarkAdjectivePreViewBaseController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB897216294AED6C0045787C /* KMWatermarkAdjectivePreViewBaseController.swift */; };
 		BB897219294AED6C0045787C /* KMWatermarkAdjectivePreViewBaseController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB897216294AED6C0045787C /* KMWatermarkAdjectivePreViewBaseController.swift */; };
 		BB89721A294AED6C0045787C /* KMWatermarkAdjectivePreViewBaseController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB897216294AED6C0045787C /* KMWatermarkAdjectivePreViewBaseController.swift */; };
@@ -6545,7 +6542,6 @@
 		BB88E43A294023CB002B3655 /* KMDocumentModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMDocumentModel.swift; sourceTree = "<group>"; };
 		BB88E453294045B4002B3655 /* KMPDFConvertManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPDFConvertManager.swift; sourceTree = "<group>"; };
 		BB88E45729404752002B3655 /* KMPDFConvert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPDFConvert.swift; sourceTree = "<group>"; };
-		BB8931902B0C9CCC0054F58B /* KMStampManagerNew.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMStampManagerNew.swift; sourceTree = "<group>"; };
 		BB897216294AED6C0045787C /* KMWatermarkAdjectivePreViewBaseController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMWatermarkAdjectivePreViewBaseController.swift; sourceTree = "<group>"; };
 		BB897217294AED6C0045787C /* KMWatermarkAdjectivePreViewBaseController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMWatermarkAdjectivePreViewBaseController.xib; sourceTree = "<group>"; };
 		BB89721F294AF9080045787C /* KMWatermarkAdjectiveTopBarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMWatermarkAdjectiveTopBarView.swift; sourceTree = "<group>"; };
@@ -11682,7 +11678,6 @@
 		BB89318B2B0C92DC0054F58B /* Model */ = {
 			isa = PBXGroup;
 			children = (
-				BB8931902B0C9CCC0054F58B /* KMStampManagerNew.swift */,
 			);
 			path = Model;
 			sourceTree = "<group>";
@@ -14966,7 +14961,6 @@
 				AD3AAD532B0D87E500DE5FE7 /* KMCompareThumbItem.swift in Sources */,
 				9FB2210E2B1AE35E00A5B208 /* NSBitmapImageRep_KMExtension.swift in Sources */,
 				9F0CB5092986563300007028 /* KMDesignToken+BorderBottom.swift in Sources */,
-				BB8931912B0C9CCD0054F58B /* KMStampManagerNew.swift in Sources */,
 				9F1FE4E429406E4700E952CA /* GTMNSColor+Luminance.m in Sources */,
 				BBA5429C29F13A140041BAD0 /* KMMemorandumPattern.swift in Sources */,
 				BB276A582B038D1100AB5578 /* KMOCRPDFWindowController.swift in Sources */,
@@ -16370,7 +16364,6 @@
 				BBD25BF22B18768600EB85D4 /* KMCompressOperation.swift in Sources */,
 				ADD1B6BC29420B4A00C3FFF7 /* KMPrintPreviewView.swift in Sources */,
 				AD0FA4F129A8580D00EDEB50 /* KMComparativeTableView.swift in Sources */,
-				BB8931922B0C9CCD0054F58B /* KMStampManagerNew.swift in Sources */,
 				AD3AAD902B1034B400DE5FE7 /* KMHeaderFooterView.swift in Sources */,
 				BB9EA1582B1EEAAC00EAFD9B /* KMImageModel.swift in Sources */,
 				BBC348032955403D008D2CD1 /* KMWatermarkFilePropertyInfoController.swift in Sources */,
@@ -17719,7 +17712,6 @@
 				AD68782329A5FADC005B5210 /* KMLightMemberCache.swift in Sources */,
 				BB8F4584295B0F900037EA22 /* KMHeaderFooterMarginInfoView.swift in Sources */,
 				BB49ED17293F489500C82CA2 /* KMConvertImageSettingView.swift in Sources */,
-				BB8931932B0C9CCD0054F58B /* KMStampManagerNew.swift in Sources */,
 				899700EA28F3E4D3009AF911 /* MainWindowController.swift in Sources */,
 				BBD1F79A296FF78C00343885 /* KMPageEditSettingBaseModel.swift in Sources */,
 				BB8F4574295ACE380037EA22 /* KMHeaderFooterAdjectiveListCell.swift in Sources */,