Ver código fonte

【OCToSwift】CPDFRedactAnnotation+PDFListView

tangchao 1 ano atrás
pai
commit
cb625b0c40

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

@@ -2493,6 +2493,9 @@
 		BB6719E92AD2A57C003D44D5 /* CPDFLinkAnnotation+PDFListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB6719E82AD2A57C003D44D5 /* CPDFLinkAnnotation+PDFListView.swift */; };
 		BB6719EA2AD2A57C003D44D5 /* CPDFLinkAnnotation+PDFListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB6719E82AD2A57C003D44D5 /* CPDFLinkAnnotation+PDFListView.swift */; };
 		BB6719EB2AD2A57C003D44D5 /* CPDFLinkAnnotation+PDFListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB6719E82AD2A57C003D44D5 /* CPDFLinkAnnotation+PDFListView.swift */; };
+		BB6719F52AD2C949003D44D5 /* CPDFRedactAnnotation+PDFListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB6719F42AD2C949003D44D5 /* CPDFRedactAnnotation+PDFListView.swift */; };
+		BB6719F62AD2C949003D44D5 /* CPDFRedactAnnotation+PDFListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB6719F42AD2C949003D44D5 /* CPDFRedactAnnotation+PDFListView.swift */; };
+		BB6719F72AD2C949003D44D5 /* CPDFRedactAnnotation+PDFListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB6719F42AD2C949003D44D5 /* CPDFRedactAnnotation+PDFListView.swift */; };
 		BB69C95C299116FD0001A9B1 /* five_line_score.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BB69C959299116FD0001A9B1 /* five_line_score.pdf */; };
 		BB69C95D299116FD0001A9B1 /* five_line_score.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BB69C959299116FD0001A9B1 /* five_line_score.pdf */; };
 		BB69C95E299116FD0001A9B1 /* five_line_score.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BB69C959299116FD0001A9B1 /* five_line_score.pdf */; };
@@ -3309,9 +3312,6 @@
 		F37322F6292DF9410013862C /* CSelfSignAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = F37322C9292DF9410013862C /* CSelfSignAnnotation.m */; };
 		F37322F7292DF9410013862C /* CSelfSignAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = F37322C9292DF9410013862C /* CSelfSignAnnotation.m */; };
 		F37322F8292DF9410013862C /* CSelfSignAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = F37322C9292DF9410013862C /* CSelfSignAnnotation.m */; };
-		F37322F9292DF9410013862C /* CPDFRedactAnnotation+PDFListView.m in Sources */ = {isa = PBXBuildFile; fileRef = F37322CB292DF9410013862C /* CPDFRedactAnnotation+PDFListView.m */; };
-		F37322FA292DF9410013862C /* CPDFRedactAnnotation+PDFListView.m in Sources */ = {isa = PBXBuildFile; fileRef = F37322CB292DF9410013862C /* CPDFRedactAnnotation+PDFListView.m */; };
-		F37322FB292DF9410013862C /* CPDFRedactAnnotation+PDFListView.m in Sources */ = {isa = PBXBuildFile; fileRef = F37322CB292DF9410013862C /* CPDFRedactAnnotation+PDFListView.m */; };
 		F37322FC292DF9410013862C /* CPDFWidgetAnnotation+PDFListView.m in Sources */ = {isa = PBXBuildFile; fileRef = F37322CF292DF9410013862C /* CPDFWidgetAnnotation+PDFListView.m */; };
 		F37322FD292DF9410013862C /* CPDFWidgetAnnotation+PDFListView.m in Sources */ = {isa = PBXBuildFile; fileRef = F37322CF292DF9410013862C /* CPDFWidgetAnnotation+PDFListView.m */; };
 		F37322FE292DF9410013862C /* CPDFWidgetAnnotation+PDFListView.m in Sources */ = {isa = PBXBuildFile; fileRef = F37322CF292DF9410013862C /* CPDFWidgetAnnotation+PDFListView.m */; };
@@ -4513,6 +4513,7 @@
 		BB5F8A1829BB15AD00365ADB /* KMEmailSubWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KMEmailSubWindowController.m; sourceTree = "<group>"; };
 		BB6719E42AD28527003D44D5 /* CPDFLineAnnotation+PDFListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CPDFLineAnnotation+PDFListView.swift"; sourceTree = "<group>"; };
 		BB6719E82AD2A57C003D44D5 /* CPDFLinkAnnotation+PDFListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CPDFLinkAnnotation+PDFListView.swift"; sourceTree = "<group>"; };
+		BB6719F42AD2C949003D44D5 /* CPDFRedactAnnotation+PDFListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CPDFRedactAnnotation+PDFListView.swift"; sourceTree = "<group>"; };
 		BB69C959299116FD0001A9B1 /* five_line_score.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = five_line_score.pdf; sourceTree = "<group>"; };
 		BB69C95A299116FD0001A9B1 /* plaid.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = plaid.pdf; sourceTree = "<group>"; };
 		BB69C95B299116FD0001A9B1 /* horizontal_line.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = horizontal_line.pdf; sourceTree = "<group>"; };
@@ -4849,7 +4850,6 @@
 		F36EB6C82987C9FE004C25FB /* KMDocumentAIViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMDocumentAIViewController.xib; sourceTree = "<group>"; };
 		F3732284292CB1150013862C /* NSEvent+PDFListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSEvent+PDFListView.h"; sourceTree = "<group>"; };
 		F3732288292CB4030013862C /* CPDFListView+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CPDFListView+Private.h"; sourceTree = "<group>"; };
-		F37322B3292DF9410013862C /* CPDFRedactAnnotation+PDFListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CPDFRedactAnnotation+PDFListView.h"; sourceTree = "<group>"; };
 		F37322B5292DF9410013862C /* CPDFWidgetAnnotation+PDFListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CPDFWidgetAnnotation+PDFListView.h"; sourceTree = "<group>"; };
 		F37322B8292DF9410013862C /* CPDFAnnotationModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CPDFAnnotationModel.m; sourceTree = "<group>"; };
 		F37322B9292DF9410013862C /* CPDFSquareAnnotation+PDFListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CPDFSquareAnnotation+PDFListView.h"; sourceTree = "<group>"; };
@@ -4863,7 +4863,6 @@
 		F37322C8292DF9410013862C /* CSelfSignAnnotationFreeText.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CSelfSignAnnotationFreeText.m; sourceTree = "<group>"; };
 		F37322C9292DF9410013862C /* CSelfSignAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CSelfSignAnnotation.m; sourceTree = "<group>"; };
 		F37322CA292DF9410013862C /* CSelfSignAnnotationFreeText.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSelfSignAnnotationFreeText.h; sourceTree = "<group>"; };
-		F37322CB292DF9410013862C /* CPDFRedactAnnotation+PDFListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "CPDFRedactAnnotation+PDFListView.m"; sourceTree = "<group>"; };
 		F37322CC292DF9410013862C /* CPDFAnnotationModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPDFAnnotationModel.h; sourceTree = "<group>"; };
 		F37322CF292DF9410013862C /* CPDFWidgetAnnotation+PDFListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "CPDFWidgetAnnotation+PDFListView.m"; sourceTree = "<group>"; };
 		F37322D1292DF9410013862C /* CPDFMarkupAnnotation+PDFListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CPDFMarkupAnnotation+PDFListView.h"; sourceTree = "<group>"; };
@@ -9187,8 +9186,7 @@
 				BB6719E82AD2A57C003D44D5 /* CPDFLinkAnnotation+PDFListView.swift */,
 				F37322D1292DF9410013862C /* CPDFMarkupAnnotation+PDFListView.h */,
 				F37322BD292DF9410013862C /* CPDFMarkupAnnotation+PDFListView.m */,
-				F37322B3292DF9410013862C /* CPDFRedactAnnotation+PDFListView.h */,
-				F37322CB292DF9410013862C /* CPDFRedactAnnotation+PDFListView.m */,
+				BB6719F42AD2C949003D44D5 /* CPDFRedactAnnotation+PDFListView.swift */,
 				F37322C0292DF9410013862C /* CPDFSignatureWidgetAnnotation+PDFListView.h */,
 				F37322D9292DF9410013862C /* CPDFSignatureWidgetAnnotation+PDFListView.m */,
 				F37322B9292DF9410013862C /* CPDFSquareAnnotation+PDFListView.h */,
@@ -10746,7 +10744,6 @@
 				BB147023299DC0D100784A6A /* OIDResponseTypes.m in Sources */,
 				9F1FE4D529406E4700E952CA /* NSPasteboard+Utils.m in Sources */,
 				9F1FE4B129406E4700E952CA /* CTTabWindowController.m in Sources */,
-				F37322F9292DF9410013862C /* CPDFRedactAnnotation+PDFListView.m in Sources */,
 				AD867FA129DEB4B000F00440 /* KMBOTAAnnotationTool.swift in Sources */,
 				BBAFC844298519A500D0648E /* KMFileAttribute.m in Sources */,
 				9F1FE4BD29406E4700E952CA /* URLDropTarget.m in Sources */,
@@ -11114,6 +11111,7 @@
 				BB6DD814293486FA001F0544 /* KMSecureEncryptPasswordCellView.swift in Sources */,
 				BB146FF6299DC0D100784A6A /* OIDAuthorizationService+Mac.m in Sources */,
 				BB897269294DB41D0045787C /* KMWatermarkAdjectivePositionView.swift in Sources */,
+				BB6719F52AD2C949003D44D5 /* CPDFRedactAnnotation+PDFListView.swift in Sources */,
 				BBB9B31C299A5D6D004F3235 /* KMCloudOperation.m in Sources */,
 				BB8B173C2907CDD9001C5EA5 /* NibLoadable.swift in Sources */,
 				ADE3C1AB29A4779E00793B13 /* KMPrintAccessoryController.swift in Sources */,
@@ -11458,7 +11456,6 @@
 				ADCB98DA2924774F00B51A03 /* KMBatchProcessingOrderTableCell.swift in Sources */,
 				BBBB6CCB2AD109F30035AA66 /* CPDFAnnotation+PDFListView.swift in Sources */,
 				9FCFECA92AD243C900EAD2CB /* KMBlankView.swift in Sources */,
-				F37322FA292DF9410013862C /* CPDFRedactAnnotation+PDFListView.m in Sources */,
 				BB3AAB9A2987BEA900992A5A /* KMWatermarkPDFView_OC.m in Sources */,
 				F3F0B27429B8ACD000722957 /* CPDFListViewDragObject.m in Sources */,
 				F34BF94029530D02002C25A2 /* NSBezierPath+PDFListView.m in Sources */,
@@ -11684,6 +11681,7 @@
 				9F0CB4FA298655E500007028 /* KMDesignToken+Border.swift in Sources */,
 				ADD1B6E92946C02600C3FFF7 /* KMPrintChoosePageSizeMultipageView.swift in Sources */,
 				9F0CB4602966C9E200007028 /* KMFormPropertPanelViewController.swift in Sources */,
+				BB6719F62AD2C949003D44D5 /* CPDFRedactAnnotation+PDFListView.swift in Sources */,
 				ADCFFC0329C004AD007D3657 /* KMBookMarkTableRowView.swift in Sources */,
 				9F1FE4EE29406E4700E952CA /* ThrobberView.m in Sources */,
 				BB2F18472A0C7E250003F65E /* KMConvertBaseView.swift in Sources */,
@@ -12490,6 +12488,7 @@
 				89752E062939DB42003FF08E /* KMToolbarViewController.swift in Sources */,
 				89D2D2FD294C806000BFF5FE /* KMPDFThumbnailItem.swift in Sources */,
 				BBFBE74928DD7DB8008B2335 /* ViewController.swift in Sources */,
+				BB6719F72AD2C949003D44D5 /* CPDFRedactAnnotation+PDFListView.swift in Sources */,
 				ADB1FE33297008E800ED072D /* KMBatchCollectionView.swift in Sources */,
 				9F1FE4B029406E4700E952CA /* CTPresentationModeController.m in Sources */,
 				BBD1F791296FE6A500343885 /* KMPageEditSplitWindowController.swift in Sources */,
@@ -12497,7 +12496,6 @@
 				9FCFECA22AD17B8A00EAD2CB /* SKProgressController.swift in Sources */,
 				9F0CB4612966C9E200007028 /* KMFormPropertPanelViewController.swift in Sources */,
 				9F1FE4EF29406E4700E952CA /* ThrobberView.m in Sources */,
-				F37322FB292DF9410013862C /* CPDFRedactAnnotation+PDFListView.m in Sources */,
 				AD867F9229D9554F00F00440 /* KMBOTAOutlineItem.swift in Sources */,
 				F3D547B629568CC300AA3953 /* ComPDFUIConfig.m in Sources */,
 				BBB9B327299A5D6D004F3235 /* GTMKeychain_macOS.m in Sources */,

+ 0 - 17
PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFKitExtensions/CPDFAnnotationExtensions/CPDFRedactAnnotation+PDFListView.h

@@ -1,17 +0,0 @@
-//
-//  CPDFRedactAnnotation+PDFListView.h
-//  ComPDFKit
-//
-//  Copyright © 2014-2022 PDF Technologies, Inc. All Rights Reserved.
-//
-//  THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
-//  AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
-//  UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
-//  This notice may not be removed from this file.
-//
-
-#import <ComPDFKit/ComPDFKit.h>
-
-@interface CPDFRedactAnnotation (PDFListView)
-
-@end

+ 0 - 76
PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFKitExtensions/CPDFAnnotationExtensions/CPDFRedactAnnotation+PDFListView.m

@@ -1,76 +0,0 @@
-//
-//  CPDFRedactAnnotation+Extensions.m
-//  ComPDFKit
-//
-//  Copyright © 2014-2022 PDF Technologies, Inc. All Rights Reserved.
-//
-//  THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
-//  AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
-//  UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
-//  This notice may not be removed from this file.
-//
-
-#import "CPDFRedactAnnotation+PDFListView.h"
-#import "CPDFListView+Tool.h"
-
-#import "CPDFAnnotationModel.h"
-#import <PDF_Master-Swift.h>
-
-@implementation CPDFRedactAnnotation (PDFListView)
-
-- (instancetype)initPDFListViewNoteWithDocument:(CPDFDocument *)document {
-    self = [self initWithDocument:document];
-    if (self) {
-        CPDFAnnotationModel *annotationModel = [[CPDFAnnotationModel alloc] initWithAnnotationType:CAnnotationTypeRedact];
-        self.interiorColor = annotationModel.interiorColor;
-        self.borderColor = annotationModel.color;
-        if (annotationModel.isOverlayText) {
-            self.overlayText = annotationModel.overlayText?:@"";
-            self.fontColor = annotationModel.fontColor;
-            self.alignment = annotationModel.alignment;
-            self.font = [NSFont fontWithName:@"Helvetica" size:annotationModel.fontSize];
-        }
-    }
-    return self;
-}
-
-- (BOOL)isResizable { return NO; }
-
-- (BOOL)isMovable { return NO; }
-
-- (NSSet *)keysForValuesToObserveForUndo {
-    static NSSet *circleKeys = nil;
-    if (circleKeys == nil) {
-        NSMutableSet *mutableKeys = [[super keysForValuesToObserveForUndo] mutableCopy];
-        [mutableKeys addObjectsFromArray:@[CPDFAnnotationFontKey,
-                                           CPDFAnnotationFontColorKey,
-                                           CPDFAnnotationAlignmentKey,
-                                           CPDFAnnotationOverlayTextKey,
-                                           CPDFAnnotationInteriorOpacityKey,
-                                           CPDFAnnotationBorderColorKey]];
-        circleKeys = [mutableKeys copy];
-    }
-    return circleKeys;
-}
-
-- (void)drawSelectionHighlightForView:(CPDFListView *)pdfView inContext:(CGContextRef)context isHover:(BOOL)isHover {
-    if (NSIsEmptyRect([self bounds]))
-        return;
-
-    NSRect rect = [self borderRecctForView:pdfView];
-
-    CGFloat lineWidth = [pdfView unitWidthOnPage:[self page]];
-    CGContextSaveGState(context);
-    CGColorRef color = [CPDFListViewConfig defaultManager].annotationBorderColor.CGColor;
-    CGContextSetStrokeColorWithColor(context, color);
-    if(isHover) {
-        CGFloat length[] = {5,5};
-        CGContextSetLineDash(context, 0, length, 2);
-        CGContextStrokeRectWithWidth(context, CGRectInset(NSRectToCGRect(rect), 0,0), lineWidth);
-    } else {
-        CGContextStrokeRectWithWidth(context, CGRectInset(NSRectToCGRect(rect), 0,0), lineWidth);
-    }
-    CGContextRestoreGState(context);
-}
-
-@end

+ 66 - 0
PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFKitExtensions/CPDFAnnotationExtensions/CPDFRedactAnnotation+PDFListView.swift

@@ -0,0 +1,66 @@
+//
+//  CPDFRedactAnnotation+PDFListView.swift
+//  PDF Master
+//
+//  Created by tangchao on 2023/10/8.
+//
+
+import Foundation
+
+@objc extension CPDFRedactAnnotation {
+    convenience init(PDFListViewNoteWith document: CPDFDocument) {
+        self.init(document: document)
+        if let model = CPDFAnnotationModel(annotationType: .redact) {
+            self.setInteriorColor(model.interiorColor())
+            self.setBorderColor(model.color())
+            if (model.isOverlayText()) {
+                self.setOverlayText(model.overlayText() == nil ? "" : model.overlayText())
+                self.setFontColor(model.fontColor())
+                self.setAlignment(model.alignment())
+                self.setFont(NSFont(name: "Helvetica", size: model.fontSize()))
+            }
+        }
+    }
+    
+    override func isResizable() -> Bool {
+        return false
+    }
+    
+    override func isMovable() -> Bool {
+        return false
+    }
+    
+    private static var _r_keys: Set<AnyHashable>?
+    override func keysForValuesToObserveForUndo() -> Set<AnyHashable>! {
+        if (CPDFRedactAnnotation._r_keys == nil) {
+            CPDFRedactAnnotation._r_keys = super.keysForValuesToObserveForUndo()
+            _ = CPDFRedactAnnotation._r_keys?.insert(CPDFAnnotationFontKey)
+            _ = CPDFRedactAnnotation._r_keys?.insert(CPDFAnnotationFontColorKey)
+            _ = CPDFRedactAnnotation._r_keys?.insert(CPDFAnnotationAlignmentKey)
+            _ = CPDFRedactAnnotation._r_keys?.insert(CPDFAnnotationOverlayTextKey)
+            _ = CPDFRedactAnnotation._r_keys?.insert(CPDFAnnotationInteriorOpacityKey)
+            _ = CPDFRedactAnnotation._r_keys?.insert(CPDFAnnotationBorderColorKey)
+        }
+        return CPDFRedactAnnotation._r_keys
+    }
+    
+    override func drawSelectionHighlightForView(_ pdfView: CPDFListView, inContext context: CGContext, isHover: Bool) {
+        if (NSIsEmptyRect(self.bounds)) {
+            return
+        }
+        let rect = self.borderRecct(for: pdfView)
+        
+        let lineWidth = pdfView.unitWidth(on: self.page)
+        context.saveGState()
+        let color = CPDFListViewConfig.defaultManager().annotationBorderColor.cgColor
+        context.setStrokeColor(color)
+        if (isHover) {
+            let lengths: [CGFloat] = [5.0, 5.0]
+            context.setLineDash(phase: 0.0, lengths: lengths)
+            context.stroke(CGRectInset(NSRectToCGRect(rect), 0,0), width: lineWidth)
+        } else {
+            context.stroke(CGRectInset(NSRectToCGRect(rect), 0,0), width: lineWidth)
+        }
+        context.restoreGState()
+    }
+}

+ 0 - 1
PDF Office/PDF Master/Class/PDFWindowController/PDFListView/ComPDFUIKit.h

@@ -20,7 +20,6 @@
 #import "CPDFTextAnnotation+PDFListView.h"
 #import "CPDFStampAnnotation+PDFListView.h"
 #import "CPDFMarkupAnnotation+PDFListView.h"
-#import "CPDFRedactAnnotation+PDFListView.h"
 #import "CPDFSquareAnnotation+PDFListView.h"
 #import "CPDFWidgetAnnotation+PDFListView.h"
 #import "CPDFTextWidgetAnnotation+PDFListView.h"