Преглед на файлове

PDFTools(iOS)-高保真部分修改

yangliuhua преди 1 година
родител
ревизия
8f915dafc6
променени са 81 файла, в които са добавени 1269 реда и са изтрити 31 реда
  1. 0 4
      Annotation-Ctrl-Demo/Annotation-Ctrl-Demo/CPDFViewController.m
  2. 12 0
      compdfkit-tools/compdfkit-tools.xcodeproj/project.pbxproj
  3. 10 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/CPDFStampViewController.h
  4. 243 1
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/CPDFStampViewController.m
  5. 25 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/CStampButton.h
  6. 40 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/CStampButton.m
  7. 37 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/CStampCollectionViewCell.h
  8. 126 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/CStampCollectionViewCell.m
  9. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-01.imageset/Contents.json
  10. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-01.imageset/stamp-01.png
  11. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-01.imageset/stamp-01@2x.png
  12. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-02.imageset/Contents.json
  13. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-02.imageset/stamp-02.png
  14. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-02.imageset/stamp-02@2x.png
  15. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-03.imageset/Contents.json
  16. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-03.imageset/stamp-03.png
  17. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-03.imageset/stamp-03@2x.png
  18. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-04.imageset/Contents.json
  19. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-04.imageset/stamp-04.png
  20. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-04.imageset/stamp-04@2x.png
  21. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-05.imageset/Contents.json
  22. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-05.imageset/stamp-05.png
  23. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-05.imageset/stamp-05@2x.png
  24. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-06.imageset/Contents.json
  25. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-06.imageset/stamp-06.png
  26. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-06.imageset/stamp-06@2x.png
  27. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-07.imageset/Contents.json
  28. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-07.imageset/stamp-07.png
  29. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-07.imageset/stamp-07@2x.png
  30. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-08.imageset/Contents.json
  31. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-08.imageset/stamp-08.png
  32. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-08.imageset/stamp-08@2x.png
  33. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-09.imageset/Contents.json
  34. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-09.imageset/stamp-09.png
  35. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-09.imageset/stamp-09@2x.png
  36. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-10.imageset/Contents.json
  37. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-10.imageset/stamp-10.png
  38. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-10.imageset/stamp-10@2x.png
  39. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-11.imageset/Contents.json
  40. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-11.imageset/stamp-11.png
  41. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-11.imageset/stamp-11@2x.png
  42. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-12.imageset/Contents.json
  43. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-12.imageset/stamp-12.png
  44. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-12.imageset/stamp-12@2x.png
  45. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-13.imageset/Contents.json
  46. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-13.imageset/stamp-13.png
  47. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-13.imageset/stamp-13@2x.png
  48. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-14.imageset/Contents.json
  49. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-14.imageset/stamp-14.png
  50. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-14.imageset/stamp-14@2x.png
  51. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-15.imageset/Contents.json
  52. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-15.imageset/stamp-15.png
  53. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-15.imageset/stamp-15@2x.png
  54. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-16.imageset/Contents.json
  55. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-16.imageset/stamp-16.png
  56. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-16.imageset/stamp-16@2x.png
  57. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-18.imageset/Contents.json
  58. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-18.imageset/stamp-18.png
  59. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-18.imageset/stamp-18@2x.png
  60. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-20.imageset/Contents.json
  61. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-20.imageset/stamp-20.png
  62. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-20.imageset/stamp-20@2x.png
  63. 21 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImageImage.imageset/Contents.json
  64. 99 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImageImage.imageset/Group (1).pdf
  65. 21 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImageText.imageset/Contents.json
  66. 95 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImageText.imageset/Group.pdf
  67. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_chick.imageset/Contents.json
  68. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_chick.imageset/stamp_chick.png
  69. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_chick.imageset/stamp_chick@2x.png
  70. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_circle.imageset/Contents.json
  71. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_circle.imageset/stamp_circle_01.png
  72. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_circle.imageset/stamp_circle_01@2x.png
  73. 22 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_cross.imageset/Contents.json
  74. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_cross.imageset/stamp_cross.png
  75. BIN
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_cross.imageset/stamp_cross@2x.png
  76. 6 0
      compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/Contents.json
  77. 15 11
      compdfkit-tools/compdfkit-tools/Common/Views/PDFAnnotationBar/CPDFAnnotationBar.m
  78. 52 7
      compdfkit-tools/compdfkit-tools/Common/Views/PDFProperties/CPDFAnnotationSampleView.m
  79. 1 0
      compdfkit-tools/compdfkit-tools/Common/Views/PDFProperties/CPDFColorSelectView.m
  80. 2 4
      compdfkit-tools/compdfkit-tools/Common/Views/PDFProperties/CPDFOpacitySliderView.m
  81. 2 4
      compdfkit-tools/compdfkit-tools/Common/Views/PDFProperties/CPDFThicknessSliderView.m

+ 0 - 4
Annotation-Ctrl-Demo/Annotation-Ctrl-Demo/CPDFViewController.m

@@ -247,10 +247,6 @@
     [self.annotationBar reloadData];
 }
 
-- (void)PDFListViewChangeatioActiveAnnotations:(CPDFListView *)pdfListView forActiveAnnotations:(NSArray<CPDFAnnotation *> *)annotations {
-    self.annotationManage = [[CAnnotationManage alloc] initWithPDFView:pdfListView];
-}
-
 - (void)PDFListViewPerformAddStamp:(CPDFListView *)pdfView atPoint:(CGPoint)point forPage:(CPDFPage *)page {
     
 }

+ 12 - 0
compdfkit-tools/compdfkit-tools.xcodeproj/project.pbxproj

@@ -127,6 +127,9 @@
 		C9FBA2132A0D1172003FABEC /* CStampCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C9FBA2112A0D1172003FABEC /* CStampCollectionViewCell.m */; };
 		C9FBA2162A0D11C7003FABEC /* CStampFileManger.h in Headers */ = {isa = PBXBuildFile; fileRef = C9FBA2142A0D11C7003FABEC /* CStampFileManger.h */; };
 		C9FBA2172A0D11C7003FABEC /* CStampFileManger.m in Sources */ = {isa = PBXBuildFile; fileRef = C9FBA2152A0D11C7003FABEC /* CStampFileManger.m */; };
+		C9FBA2192A0DD277003FABEC /* Image.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C9FBA2182A0DD277003FABEC /* Image.xcassets */; };
+		C9FBA21C2A0E2FB6003FABEC /* CStampButton.h in Headers */ = {isa = PBXBuildFile; fileRef = C9FBA21A2A0E2FB6003FABEC /* CStampButton.h */; };
+		C9FBA21D2A0E2FB6003FABEC /* CStampButton.m in Sources */ = {isa = PBXBuildFile; fileRef = C9FBA21B2A0E2FB6003FABEC /* CStampButton.m */; };
 		F32DA16229ED904300E19ECA /* CPDFOutlineModel.h in Headers */ = {isa = PBXBuildFile; fileRef = F32DA12229ED904300E19ECA /* CPDFOutlineModel.h */; };
 		F32DA16329ED904300E19ECA /* Image.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F32DA12329ED904300E19ECA /* Image.xcassets */; };
 		F32DA16429ED904300E19ECA /* CPDFOutlineViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F32DA12429ED904300E19ECA /* CPDFOutlineViewCell.m */; };
@@ -341,6 +344,9 @@
 		C9FBA2112A0D1172003FABEC /* CStampCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CStampCollectionViewCell.m; sourceTree = "<group>"; };
 		C9FBA2142A0D11C7003FABEC /* CStampFileManger.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CStampFileManger.h; sourceTree = "<group>"; };
 		C9FBA2152A0D11C7003FABEC /* CStampFileManger.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CStampFileManger.m; sourceTree = "<group>"; };
+		C9FBA2182A0DD277003FABEC /* Image.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Image.xcassets; sourceTree = "<group>"; };
+		C9FBA21A2A0E2FB6003FABEC /* CStampButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CStampButton.h; sourceTree = "<group>"; };
+		C9FBA21B2A0E2FB6003FABEC /* CStampButton.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CStampButton.m; sourceTree = "<group>"; };
 		F313657129E4367A00EE6BBB /* ComPDFKit.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = ComPDFKit.xcframework; path = ../Lib/ComPDFKit.xcframework; sourceTree = "<group>"; };
 		F32DA12229ED904300E19ECA /* CPDFOutlineModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPDFOutlineModel.h; sourceTree = "<group>"; };
 		F32DA12329ED904300E19ECA /* Image.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Image.xcassets; sourceTree = "<group>"; };
@@ -770,6 +776,9 @@
 				C9FBA2112A0D1172003FABEC /* CStampCollectionViewCell.m */,
 				C9FBA2142A0D11C7003FABEC /* CStampFileManger.h */,
 				C9FBA2152A0D11C7003FABEC /* CStampFileManger.m */,
+				C9FBA21A2A0E2FB6003FABEC /* CStampButton.h */,
+				C9FBA21B2A0E2FB6003FABEC /* CStampButton.m */,
+				C9FBA2182A0DD277003FABEC /* Image.xcassets */,
 			);
 			path = PDFStamp;
 			sourceTree = "<group>";
@@ -1107,6 +1116,7 @@
 				4F5986912A03411700F06A1B /* CPDFDropDownMenu.h in Headers */,
 				F32DA18529ED904300E19ECA /* CActivityIndicatorView.h in Headers */,
 				F350B34B2A09EAF100B4FC8F /* CPDFMediaManager.h in Headers */,
+				C9FBA21C2A0E2FB6003FABEC /* CStampButton.h in Headers */,
 				4F06AB5529F6792E007797E4 /* CPDFEditToolBar.h in Headers */,
 				F32DA17E29ED904300E19ECA /* CPDFBOTAViewController.h in Headers */,
 				F32DA16829ED904300E19ECA /* CPDFOutlineViewCell.h in Headers */,
@@ -1265,6 +1275,7 @@
 				4F1131BC29F911A800950564 /* CPDFTextPropertyCell.xib in Resources */,
 				C918CED829FB5ADF00D43974 /* Image.xcassets in Resources */,
 				F382636C29EFD0D9003F1DFD /* CPDFSliderImage.xcassets in Resources */,
+				C9FBA2192A0DD277003FABEC /* Image.xcassets in Resources */,
 				4F1131B629F90E7200950564 /* CPDFImagePropertyCell.xib in Resources */,
 				C91BE7DF2A03CF080038F2BC /* Image.xcassets in Resources */,
 			);
@@ -1338,6 +1349,7 @@
 				C918CECA29FA140C00D43974 /* CPDFInkViewController.m in Sources */,
 				F382636929EFD0D9003F1DFD /* CPDFPageIndicatorView.m in Sources */,
 				C91BE7DD2A039E900038F2BC /* CPDFSignatureEditViewController.m in Sources */,
+				C9FBA21D2A0E2FB6003FABEC /* CStampButton.m in Sources */,
 				F32DA17229ED904300E19ECA /* CPDFThumbnailViewCell.m in Sources */,
 				F32DA18429ED904300E19ECA /* CActivityIndicatorView.m in Sources */,
 				4F6C796B29FBD532008C9501 /* CPDFEditFontNameSelectView.m in Sources */,

+ 10 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/CPDFStampViewController.h

@@ -24,6 +24,16 @@ extern PDFAnnotationStampKey PDFAnnotationStampKeyShowTime;    // BOOL
 extern PDFAnnotationStampKey PDFAnnotationStampKeyStyle;       // NSIntger
 extern PDFAnnotationStampKey PDFAnnotationStampKeyShape;       // NSIntger
 
+@class CPDFStampViewController;
+
+@protocol CPDFStampViewControllerDelegate <NSObject>
+
+@optional
+
+- (void)stampViewController:(CPDFStampViewController *)stampViewController selectedInde:(NSInteger)selectedIndex stamp:(NSDictionary *)stamp;
+
+@end
+
 @interface CPDFStampViewController : UIViewController
 
 @end

+ 243 - 1
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/CPDFStampViewController.m

@@ -11,16 +11,258 @@
 //
 
 #import "CPDFStampViewController.h"
+#import "CStampFileManger.h"
+#import "CStampCollectionViewCell.h"
+#import "CPDFColorUtils.h"
+#import "CStampButton.h"
 
-@interface CPDFStampViewController ()
+#import <ComPDFKit/ComPDFKit.h>
+
+PDFAnnotationStampKey const PDFAnnotationStampKeyType = @"PDFAnnotationStampKeyType";
+PDFAnnotationStampKey const PDFAnnotationStampKeyImagePath = @"PDFAnnotationStampKeyImagePath";
+PDFAnnotationStampKey const PDFAnnotationStampKeyText = @"PDFAnnotationStampKeyText";
+PDFAnnotationStampKey const PDFAnnotationStampKeyShowDate = @"PDFAnnotationStampKeyShowDate";
+PDFAnnotationStampKey const PDFAnnotationStampKeyShowTime = @"PDFAnnotationStampKeyShowTime";
+PDFAnnotationStampKey const PDFAnnotationStampKeyStyle = @"PDFAnnotationStampKeyStyle";
+PDFAnnotationStampKey const PDFAnnotationStampKeyShape = @"PDFAnnotationStampKeyShape";
+
+@interface CPDFStampViewController () <UICollectionViewDelegate, UICollectionViewDataSource>
+
+@property (nonatomic, strong) UICollectionView *collectView;
+
+@property (nonatomic, strong) UISegmentedControl *segmentedControl;
+
+@property (nonatomic, strong) NSArray *standardArray;
+
+@property (nonatomic, strong) NSArray *customTextArray;
+
+@property (nonatomic, strong) NSArray *customImageArray;
+
+@property (nonatomic, strong) NSMutableDictionary *imgDicCache;
+
+@property (nonatomic, strong) UIButton *backBtn;
+
+@property (nonatomic, strong) UILabel *titleLabel;
+
+@property (nonatomic, strong) UIButton *createButton;
+
+@property (nonatomic, strong) UIView *standardView;
+
+@property (nonatomic, strong) UIView *customizeView;
+
+@property (nonatomic, strong) CStampFileManger *stampFileManager;
+
+@property (nonatomic, strong) CStampButton *textButton;
+
+@property (nonatomic, strong) CStampButton *imageButton;
 
 @end
 
 @implementation CPDFStampViewController
 
+#pragma mark - ViewController Methods
+
 - (void)viewDidLoad {
     [super viewDidLoad];
     // Do any additional setup after loading the view.
+    self.view.backgroundColor = [CPDFColorUtils CPDFViewControllerBackgroundColor];
+    
+    self.titleLabel = [[UILabel alloc] init];
+    self.titleLabel.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;
+    self.titleLabel.text = NSLocalizedString(@"Stamp", nil);
+    self.titleLabel.font = [UIFont systemFontOfSize:20];
+    self.titleLabel.adjustsFontSizeToFitWidth = YES;
+    [self.view addSubview:self.titleLabel];
+    
+    self.backBtn = [[UIButton alloc] init];
+    self.backBtn.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
+    [self.backBtn setImage:[UIImage imageNamed:@"CPDFAnnotationBaseImageBack" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil] forState:UIControlStateNormal];
+    [self.backBtn addTarget:self action:@selector(buttonItemClicked_back:) forControlEvents:UIControlEventTouchUpInside];
+    [self.view addSubview:self.backBtn];
+    
+    NSArray *segmmentArray = [NSArray arrayWithObjects:NSLocalizedString(@"Standard", nil), NSLocalizedString(@"Customize", nil), nil];
+    self.segmentedControl = [[UISegmentedControl alloc] initWithItems:segmmentArray];
+    self.segmentedControl.selectedSegmentIndex = 0;
+    self.segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
+    [self.segmentedControl addTarget:self action:@selector(segmentedControlValueChanged_singature:) forControlEvents:UIControlEventValueChanged];
+    [self.view addSubview:self.segmentedControl];
+    
+    // StandardView
+    [self createStandardView];
+    
+    // CustomizeView
+    [self createCustomizeView];
+    
+    // Data
+    NSMutableArray *array = [NSMutableArray array];
+    for (int i=1; i<13; i++) {
+        NSString *tPicName = nil;
+        if (i<10) {
+            tPicName = [NSString stringWithFormat:@"CPDFStampImage-0%d.png",i];
+        } else {
+            tPicName = [NSString stringWithFormat:@"CPDFStampImage-%d.png",i];
+        }
+        [array addObject:tPicName];
+    }
+    [array addObjectsFromArray:@[@"CPDFStampImage-13", @"CPDFStampImage-14", @"CPDFStampImage-15", @"CPDFStampImage-16", @"CPDFStampImage-18", @"CPDFStampImage-20", @"CPDFStampImage_chick", @"CPDFStampImage_cross", @"CPDFStampImage_circle"]];
+    self.standardArray = array;
+    self.imgDicCache = [NSMutableDictionary dictionary];
+    
+    self.stampFileManager = [[CStampFileManger alloc] init];
+    [self.stampFileManager readStampDataFromFile];
+    self.customTextArray = [self.stampFileManager getTextStampData];
+    self.customImageArray = [self.stampFileManager getImageStampData];
+    
+    [self createGestureRecognizer];
+    [self updatePreferredContentSizeWithTraitCollection:self.traitCollection];
+}
+
+- (void)viewWillLayoutSubviews {
+    [super viewWillLayoutSubviews];
+    self.titleLabel.frame = CGRectMake((self.view.frame.size.width - 120)/2, 5, 120, 50);
+    self.segmentedControl.frame = CGRectMake(50, 50, self.view.frame.size.width-100, 30);
+    
+    if (@available(iOS 11.0, *)) {
+        self.backBtn.frame = CGRectMake(self.view.frame.size.width - 60 - self.view.safeAreaInsets.right, 5, 50, 50);
+        self.createButton.frame = CGRectMake(self.view.frame.size.width - 70 - self.view.safeAreaInsets.right, self.view.frame.size.height - 200 - self.view.safeAreaInsets.bottom, 50, 50);
+    } else {
+        self.backBtn.frame = CGRectMake(self.view.frame.size.width - 100, 5, 50, 50);
+        self.createButton.frame = CGRectMake(self.view.frame.size.width - 70, self.view.frame.size.height - 100, 50, 50);
+    }
+}
+
+- (void)viewWillAppear:(BOOL)animated {
+    [super viewWillAppear:animated];
+    
+    [self.collectView reloadData];
+}
+
+- (void)willTransitionToTraitCollection:(UITraitCollection *)newCollection withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
+    [super willTransitionToTraitCollection:newCollection withTransitionCoordinator:coordinator];
+    [self updatePreferredContentSizeWithTraitCollection:newCollection];
+}
+
+#pragma mark - Private Methods
+
+- (void)createStandardView {
+    self.standardView = [[UIView alloc] initWithFrame:CGRectMake(0, 100, self.view.bounds.size.width, self.view.bounds.size.height)];
+    self.standardView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
+    [self.view addSubview:self.standardView];
+    
+    UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
+    layout.scrollDirection = UICollectionViewScrollDirectionVertical;
+    layout.minimumInteritemSpacing = 10;
+    layout.minimumLineSpacing = 10;
+    layout.itemSize = CGSizeMake(170,80);
+    layout.sectionInset = UIEdgeInsetsMake(5, 20, 5, 20);
+    
+    self.collectView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:layout];
+    self.collectView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
+    self.collectView.delegate = self;
+    self.collectView.dataSource = self;
+    self.collectView.backgroundColor = [UIColor clearColor];
+    [self.collectView registerClass:[StampCollectionHeaderView class]
+     forSupplementaryViewOfKind:UICollectionElementKindSectionHeader
+            withReuseIdentifier:@"header"];
+    [self.collectView registerClass:[StampCollectionHeaderView1 class]
+     forSupplementaryViewOfKind:UICollectionElementKindSectionHeader
+            withReuseIdentifier:@"header1"];
+    [self.collectView registerClass:[CStampCollectionViewCell class]
+     forCellWithReuseIdentifier:@"TStampViewCell"];
+    
+    if (@available(iOS 11.0, *)) {
+        _collectView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentAlways;
+    }
+    [self.standardView addSubview:self.collectView];
+}
+
+- (void)createCustomizeView {
+    self.customizeView = [[UIView alloc] initWithFrame:CGRectMake(0, 100, self.view.bounds.size.width, self.view.bounds.size.height)];
+    self.customizeView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
+    [self.view addSubview:self.customizeView];
+    self.customizeView.hidden = YES;
+    
+    self.createButton = [[UIButton alloc] init];
+    self.createButton.layer.cornerRadius = 25.0;
+    self.createButton.clipsToBounds = YES;
+    [self.createButton setImage:[UIImage imageNamed:@"CPDFSignatureImageAdd" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil] forState:UIControlStateNormal];
+    self.createButton.backgroundColor = [UIColor blueColor];
+    [self.createButton addTarget:self action:@selector(buttonItemClicked_create:) forControlEvents:UIControlEventTouchUpInside];
+    [self.customizeView addSubview:self.createButton];
+    
+    self.textButton = [[CStampButton alloc] init];
+    [self.textButton.stampBtn setImage:[UIImage imageNamed:@"CPDFStampImageText" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil] forState:UIControlStateNormal];
+    self.textButton.titleLabel.text = NSLocalizedString(@"", nil);
+    [self.textButton.stampBtn addTarget:self action:@selector(buttonItemClicked_text:) forControlEvents:UIControlEventTouchUpInside];
+    [self.customizeView addSubview:self.textButton];
+}
+
+- (void)createGestureRecognizer {
+    [self.createButton setUserInteractionEnabled:YES];
+
+    UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panaddBookmarkBtn:)];
+    [self.createButton addGestureRecognizer:panRecognizer];
+}
+
+- (void)panaddBookmarkBtn:(UIPanGestureRecognizer *)gestureRecognizer {
+    CGPoint point = [gestureRecognizer translationInView:self.view];
+    CGFloat newX = self.createButton.center.x + point.x;
+    CGFloat newY = self.createButton.center.y + point.y;
+    if (CGRectContainsPoint(self.view.frame, CGPointMake(newX, newY))) {
+        self.createButton.center = CGPointMake(newX, newY);
+    }
+    [gestureRecognizer setTranslation:CGPointZero inView:self.view];
+}
+
+#pragma mark - Protect Methods
+
+- (void)updatePreferredContentSizeWithTraitCollection:(UITraitCollection *)traitCollection {
+    self.preferredContentSize = CGSizeMake(self.view.bounds.size.width, traitCollection.verticalSizeClass == UIUserInterfaceSizeClassCompact ? 370 : 800);
+}
+
+#pragma mark - Action
+
+- (void)buttonItemClicked_back:(id)sender {
+    [self dismissViewControllerAnimated:YES completion:nil];
+}
+
+- (void)buttonItemClicked_create:(id)sender {
+    
+}
+
+- (void)segmentedControlValueChanged_singature:(id)sender {
+    if (self.segmentedControl.selectedSegmentIndex == 0) {
+        self.standardView.hidden = NO;
+        self.customizeView.hidden = YES;
+    } else {
+        self.standardView.hidden = YES;
+        self.customizeView.hidden = NO;
+    }
+}
+
+- (void)buttonItemClicked_text:(id)sender {
+    
+}
+
+- (void)buttonItemClicked_image:(id)sender {
+    
+}
+
+#pragma mark - UICollectionViewDataSource
+
+- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
+    return 1;
+}
+
+- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
+    return self.standardArray.count;
+}
+
+- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
+    CStampCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"TStampViewCell" forIndexPath:indexPath];
+    cell.editing = NO;
+    cell.stampImage.image = [UIImage imageNamed:self.standardArray[indexPath.item] inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
+    return cell;
 }
 
 @end

+ 25 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/CStampButton.h

@@ -0,0 +1,25 @@
+//
+//  CStampButton.h
+//  compdfkit-tools
+//
+//  Copyright © 2014-2023 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 <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface CStampButton : UIView
+
+@property (nonatomic, strong) UIButton *stampBtn;
+
+@property (nonatomic, strong) UILabel *titleLabel;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 40 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/CStampButton.m

@@ -0,0 +1,40 @@
+//
+//  CStampButton.m
+//  compdfkit-tools
+//
+//  Copyright © 2014-2023 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 "CStampButton.h"
+
+@implementation CStampButton
+
+- (instancetype)initWithFrame:(CGRect)frame {
+    if (self = [super initWithFrame:frame]) {
+        self.stampBtn = [[UIButton alloc] init];
+        self.stampBtn.layer.cornerRadius = 20;
+        self.stampBtn.layer.masksToBounds = YES;
+        [self addSubview:self.stampBtn];
+        
+        self.titleLabel = [[UILabel alloc] init];
+        self.titleLabel.textColor = [UIColor whiteColor];
+        self.titleLabel.backgroundColor = [UIColor clearColor];
+        [self addSubview:self.titleLabel];
+        
+        self.backgroundColor = [UIColor clearColor];
+    }
+    return self;
+}
+
+- (void)layoutSubviews {
+    [super layoutSubviews];
+    self.stampBtn.frame = CGRectMake(self.bounds.size.width - 40, 0, 40, self.bounds.size.height);
+    self.titleLabel.frame = CGRectMake(0, 0, 120, self.bounds.size.height);
+}
+
+@end

+ 37 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/CStampCollectionViewCell.h

@@ -14,8 +14,45 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
+#pragma mark - StampCollectionHeaderView
+
+@interface StampCollectionHeaderView : UICollectionReusableView
+
+@property (nonatomic,retain) UILabel *textLabel;
+
+@end
+
+#pragma mark - StampCollectionHeaderView1
+
+@class StampCollectionHeaderView1;
+
+@protocol StampHeaderViewDelegate <NSObject>
+
+@optional
+- (void)addTextWithHeaderView:(StampCollectionHeaderView1 *)headerView;
+
+- (void)addImageWithHeaderView:(StampCollectionHeaderView1 *)headerView;
+
+@end
+
+#pragma mark - StampCollectionHeaderView1
+
+@interface StampCollectionHeaderView1 : UICollectionReusableView
+
+@property (nonatomic,retain)UILabel *textLabel;
+
+@property (nonatomic,assign) id<StampHeaderViewDelegate> delegate;
+
+@end
+
+#pragma mark - StampCollectionViewCell
+
 @interface CStampCollectionViewCell : UICollectionViewCell
 
+@property (nonatomic, strong) UIImageView *stampImage;
+
+@property (nonatomic, assign) BOOL editing;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 126 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/CStampCollectionViewCell.m

@@ -12,6 +12,132 @@
 
 #import "CStampCollectionViewCell.h"
 
+#pragma mark - StampCollectionViewCell
+
+@interface CStampCollectionViewCell ()
+
+@end
+
 @implementation CStampCollectionViewCell
 
+- (instancetype)initWithFrame:(CGRect)frame {
+    if (self = [super initWithFrame:frame]) {
+        self.stampImage = [[UIImageView alloc] init];
+        self.stampImage.backgroundColor = [UIColor clearColor];
+        self.stampImage.contentMode = UIViewContentModeScaleAspectFit;
+        [self.contentView addSubview:self.stampImage];
+        
+        self.contentView.layer.borderWidth = 0.5;
+        self.contentView.layer.borderColor = [UIColor lightGrayColor].CGColor;
+    }
+    return self;
+}
+
+- (void)layoutSubviews {
+    [super layoutSubviews];
+    self.stampImage.frame = CGRectMake(10, (self.contentView.bounds.size.height - 50)/2,
+                                   self.contentView.bounds.size.width - 20, 50);
+}
+
+@end
+
+#pragma mark - StampCollectionHeaderView
+
+@implementation StampCollectionHeaderView
+
+- (instancetype)initWithFrame:(CGRect)frame {
+    if (self = [super initWithFrame:frame]) {
+        self.backgroundColor = [UIColor colorWithRed:248.0/255.0 green:248.0/255.0  blue:248.0/255.0  alpha:1.0];
+
+        _textLabel = [[UILabel alloc] init];
+        _textLabel.textColor = [UIColor colorWithRed:36.0/255.0 green:36.0/255.0 blue:36.0/255.0 alpha:1.0];
+        _textLabel.font = [UIFont systemFontOfSize:14.0];
+        [self addSubview:_textLabel];
+    }
+    return self;
+}
+
+- (void)layoutSubviews {
+    [super layoutSubviews];
+    _textLabel.frame = CGRectMake(10, 0, self.bounds.size.width-20, 20);
+}
+
+@end
+
+#pragma mark - StampCollectionHeaderView1
+
+@interface StampCollectionHeaderView1()
+
+@property (nonatomic,retain) UIView * headerView;
+
+@property (nonatomic,retain) UIButton * textButton;
+
+@property (nonatomic,retain) UIButton * imageButton;
+
+@end
+
+@implementation StampCollectionHeaderView1
+
+- (instancetype)initWithFrame:(CGRect)frame {
+    if (self = [super initWithFrame:frame]) {
+        _headerView = [[UIView alloc] init];
+        _headerView.backgroundColor = [UIColor clearColor];
+        [self addSubview:_headerView];
+        
+        self.textButton = [UIButton buttonWithType:UIButtonTypeSystem];
+        [_textButton setTitle:NSLocalizedString(@"New Text Stamp", nil) forState:UIControlStateNormal];
+        [_textButton setTitleColor:[UIColor colorWithRed:36.0/255.0 green:36.0/255.0 blue:36.0/255.0 alpha:1.0] forState:UIControlStateNormal];
+        [_textButton addTarget:self action:@selector(buttonItemClicked_AddText:) forControlEvents:UIControlEventTouchUpInside];
+        _textButton.layer.borderWidth = 1;
+        _textButton.layer.cornerRadius = 5;
+        _textButton.titleLabel.font = [UIFont systemFontOfSize:16.0];
+        _textButton.titleLabel.adjustsFontSizeToFitWidth = YES;
+        _textButton.layer.borderColor = [UIColor colorWithRed:17.0/255.0 green:140.0/255.0 blue:1.0 alpha:1.0].CGColor;
+        [_headerView addSubview:_textButton];
+        
+        self.imageButton = [UIButton buttonWithType:UIButtonTypeSystem];
+        [_imageButton setTitle:NSLocalizedString(@"New Image Stamp", nil) forState:UIControlStateNormal];
+        [_imageButton setTitleColor:[UIColor colorWithRed:36.0/255.0 green:36.0/255.0 blue:36.0/255.0 alpha:1.0] forState:UIControlStateNormal];
+        _imageButton.titleLabel.font = [UIFont systemFontOfSize:16.0];
+        _imageButton.titleLabel.adjustsFontSizeToFitWidth = YES;
+        [_imageButton addTarget:self action:@selector(buttonItemClicked_AddImage:) forControlEvents:UIControlEventTouchUpInside];
+        _imageButton.layer.borderWidth = 1;
+        _imageButton.layer.cornerRadius = 5;
+        _imageButton.layer.borderColor = [UIColor colorWithRed:17.0/255.0 green:140.0/255.0 blue:1.0 alpha:1.0].CGColor;
+        [_headerView addSubview:_imageButton];
+        
+        self.backgroundColor = [UIColor colorWithRed:248.0/255.0 green:248.0/255.0  blue:248.0/255.0  alpha:1.0];
+        
+        _textLabel = [[UILabel alloc] init];
+        _textLabel.textColor = [UIColor colorWithRed:36.0/255.0 green:36.0/255.0 blue:36.0/255.0 alpha:1.0];
+        _textLabel.font = [UIFont systemFontOfSize:14.0];
+        [self addSubview:_textLabel];
+    
+    }
+    return self;
+}
+
+- (void)layoutSubviews {
+    [super layoutSubviews];
+    _headerView.frame = CGRectMake(0, 0, self.bounds.size.width, 80);
+    _textButton.frame = CGRectMake(10, CGRectGetMinY(_headerView.frame)+10, (self.bounds.size.width-40)/2, 60);
+    _imageButton.frame = CGRectMake(30 + (self.bounds.size.width-40)/2, CGRectGetMinY(_headerView.frame)+10, (self.bounds.size.width-40)/2, 60);
+    _textLabel.frame = CGRectMake(10, CGRectGetMinY(_headerView.frame)+80, self.bounds.size.width-20, 20);
+}
+
+#pragma mark - Button Event Action
+
+- (void)buttonItemClicked_AddImage:(id)sender {
+    if ([self.delegate respondsToSelector:@selector(addImageWithHeaderView:)]) {
+        [self.delegate addImageWithHeaderView:self];
+    }
+}
+
+- (void)buttonItemClicked_AddText:(id)sender {
+    if ([self.delegate respondsToSelector:@selector(addTextWithHeaderView:)]) {
+        [self.delegate addTextWithHeaderView:self];
+    }
+
+}
+
 @end

+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-01.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-01.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-01@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-01.imageset/stamp-01.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-01.imageset/stamp-01@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-02.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-02.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-02@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-02.imageset/stamp-02.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-02.imageset/stamp-02@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-03.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-03.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-03@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-03.imageset/stamp-03.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-03.imageset/stamp-03@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-04.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-04.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-04@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-04.imageset/stamp-04.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-04.imageset/stamp-04@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-05.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-05.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-05@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-05.imageset/stamp-05.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-05.imageset/stamp-05@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-06.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-06.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-06@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-06.imageset/stamp-06.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-06.imageset/stamp-06@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-07.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-07.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-07@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-07.imageset/stamp-07.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-07.imageset/stamp-07@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-08.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-08.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-08@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-08.imageset/stamp-08.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-08.imageset/stamp-08@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-09.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-09.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-09@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-09.imageset/stamp-09.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-09.imageset/stamp-09@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-10.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-10.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-10@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-10.imageset/stamp-10.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-10.imageset/stamp-10@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-11.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-11.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-11@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-11.imageset/stamp-11.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-11.imageset/stamp-11@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-12.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-12.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-12@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-12.imageset/stamp-12.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-12.imageset/stamp-12@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-13.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-13.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-13@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-13.imageset/stamp-13.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-13.imageset/stamp-13@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-14.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-14.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-14@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-14.imageset/stamp-14.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-14.imageset/stamp-14@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-15.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-15.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-15@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-15.imageset/stamp-15.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-15.imageset/stamp-15@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-16.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-16.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-16@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-16.imageset/stamp-16.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-16.imageset/stamp-16@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-18.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-18.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-18@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-18.imageset/stamp-18.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-18.imageset/stamp-18@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-20.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp-20.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp-20@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-20.imageset/stamp-20.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage-20.imageset/stamp-20@2x.png


+ 21 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImageImage.imageset/Contents.json

@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "Group (1).pdf",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 99 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImageImage.imageset/Group (1).pdf

@@ -0,0 +1,99 @@
+%PDF-1.7
+
+1 0 obj
+  << >>
+endobj
+
+2 0 obj
+  << /Length 3 0 R >>
+stream
+/DeviceRGB CS
+/DeviceRGB cs
+q
+1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm
+1.000000 1.000000 1.000000 scn
+42.000000 21.000000 m
+42.000000 9.402020 32.597980 0.000000 21.000000 0.000000 c
+9.402020 0.000000 0.000000 9.402020 0.000000 21.000000 c
+0.000000 32.597980 9.402020 42.000000 21.000000 42.000000 c
+32.597980 42.000000 42.000000 32.597980 42.000000 21.000000 c
+h
+f
+n
+Q
+q
+1.000000 0.000000 -0.000000 1.000000 12.250000 14.250000 cm
+0.262745 0.278431 0.301961 scn
+0.000000 13.500000 m
+17.500000 13.500000 l
+17.500000 0.000000 l
+0.000000 0.000000 l
+0.000000 13.500000 l
+h
+16.000000 12.000000 m
+1.500000 12.000000 l
+1.500000 3.540523 l
+4.544956 6.750000 l
+8.814282 3.250000 l
+11.121848 5.682244 l
+15.894180 1.500000 l
+16.000000 1.500000 l
+16.000000 12.000000 l
+h
+13.250000 7.750000 m
+14.078427 7.750000 14.750000 8.421573 14.750000 9.250000 c
+14.750000 10.078426 14.078427 10.750000 13.250000 10.750000 c
+12.421573 10.750000 11.750000 10.078426 11.750000 9.250000 c
+11.750000 8.421573 12.421573 7.750000 13.250000 7.750000 c
+h
+f*
+n
+Q
+
+endstream
+endobj
+
+3 0 obj
+  1048
+endobj
+
+4 0 obj
+  << /Annots []
+     /Type /Page
+     /MediaBox [ 0.000000 0.000000 42.000000 42.000000 ]
+     /Resources 1 0 R
+     /Contents 2 0 R
+     /Parent 5 0 R
+  >>
+endobj
+
+5 0 obj
+  << /Kids [ 4 0 R ]
+     /Count 1
+     /Type /Pages
+  >>
+endobj
+
+6 0 obj
+  << /Pages 5 0 R
+     /Type /Catalog
+  >>
+endobj
+
+xref
+0 7
+0000000000 65535 f
+0000000010 00000 n
+0000000034 00000 n
+0000001138 00000 n
+0000001161 00000 n
+0000001334 00000 n
+0000001408 00000 n
+trailer
+<< /ID [ (some) (id) ]
+   /Root 6 0 R
+   /Size 7
+>>
+startxref
+1467
+%%EOF

+ 21 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImageText.imageset/Contents.json

@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "Group.pdf",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 95 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImageText.imageset/Group.pdf

@@ -0,0 +1,95 @@
+%PDF-1.7
+
+1 0 obj
+  << >>
+endobj
+
+2 0 obj
+  << /Length 3 0 R >>
+stream
+/DeviceRGB CS
+/DeviceRGB cs
+q
+1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm
+1.000000 1.000000 1.000000 scn
+42.000000 21.000000 m
+42.000000 9.402020 32.597980 0.000000 21.000000 0.000000 c
+9.402020 0.000000 0.000000 9.402020 0.000000 21.000000 c
+0.000000 32.597980 9.402020 42.000000 21.000000 42.000000 c
+32.597980 42.000000 42.000000 32.597980 42.000000 21.000000 c
+h
+f
+n
+Q
+q
+1.000000 0.000000 -0.000000 1.000000 14.250000 13.250000 cm
+0.262745 0.278431 0.301961 scn
+13.500000 15.000000 m
+13.500000 11.750000 l
+12.000000 11.750000 l
+12.000000 13.500000 l
+7.500000 13.500000 l
+7.500000 1.500000 l
+9.083332 1.500000 l
+9.083332 0.000000 l
+4.416666 0.000000 l
+4.416666 1.500000 l
+6.000000 1.500000 l
+6.000000 13.500000 l
+1.500000 13.500000 l
+1.500000 11.750000 l
+0.000000 11.750000 l
+0.000000 15.000000 l
+13.500000 15.000000 l
+h
+f*
+n
+Q
+
+endstream
+endobj
+
+3 0 obj
+  845
+endobj
+
+4 0 obj
+  << /Annots []
+     /Type /Page
+     /MediaBox [ 0.000000 0.000000 42.000000 42.000000 ]
+     /Resources 1 0 R
+     /Contents 2 0 R
+     /Parent 5 0 R
+  >>
+endobj
+
+5 0 obj
+  << /Kids [ 4 0 R ]
+     /Count 1
+     /Type /Pages
+  >>
+endobj
+
+6 0 obj
+  << /Pages 5 0 R
+     /Type /Catalog
+  >>
+endobj
+
+xref
+0 7
+0000000000 65535 f
+0000000010 00000 n
+0000000034 00000 n
+0000000935 00000 n
+0000000957 00000 n
+0000001130 00000 n
+0000001204 00000 n
+trailer
+<< /ID [ (some) (id) ]
+   /Root 6 0 R
+   /Size 7
+>>
+startxref
+1263
+%%EOF

+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_chick.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp_chick.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp_chick@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_chick.imageset/stamp_chick.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_chick.imageset/stamp_chick@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_circle.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp_circle_01.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp_circle_01@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_circle.imageset/stamp_circle_01.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_circle.imageset/stamp_circle_01@2x.png


+ 22 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_cross.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "stamp_cross.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stamp_cross@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_cross.imageset/stamp_cross.png


BIN
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/CPDFStampImage_cross.imageset/stamp_cross@2x.png


+ 6 - 0
compdfkit-tools/compdfkit-tools/Annotation/PDFProperties/PDFStamp/Image.xcassets/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 15 - 11
compdfkit-tools/compdfkit-tools/Common/Views/PDFAnnotationBar/CPDFAnnotationBar.m

@@ -28,6 +28,7 @@
 #import "CPDFListView+Private.h"
 #import "CAnnotationManage.h"
 #import "CPDFSignatureEditViewController.h"
+#import "CPDFStampViewController.h"
 #import "CSignatureManager.h"
 #import "CPDFColorUtils.h"
 
@@ -257,7 +258,7 @@
     
     [self updatePropertiesButtonState];
     
-    [self createInkTopToolBar];
+    [self createPropertyViewController];
 }
 
 - (void)buttonItemClicked_open:(UIButton *)button {
@@ -366,11 +367,6 @@
             presentationController = [[AAPLCustomPresentationController alloc] initWithPresentedViewController:freeTextVC presentingViewController:self.parentVC];
             freeTextVC.transitioningDelegate = presentationController;
             [self.parentVC presentViewController:freeTextVC animated:YES completion:nil];
-        }
-            break;
-        case CPDFToolbarSignature:
-        {
-            
         }
             break;
         default:
@@ -392,7 +388,7 @@
 
 #pragma mark - Private Methods
 
-- (void)createInkTopToolBar {
+- (void)createPropertyViewController {
     if (CPDFViewAnnotationModeInk == self.selectedIndex) {
         if (@available(iOS 11.0, *)) {
             self.topToolBar = [[CPDFInkTopToolBar alloc] initWithFrame:CGRectMake(50, self.parentVC.view.safeAreaInsets.top, self.parentVC.view.frame.size.width-100, 50)];
@@ -411,10 +407,18 @@
         CAnnotStyle *annotStytle = self.annotManage.annotStyle;
         AAPLCustomPresentationController *presentationController NS_VALID_UNTIL_END_OF_SCOPE;
         self.signatureVC = [[CPDFSignatureViewController alloc] initWithStyle:annotStytle];
-       presentationController = [[AAPLCustomPresentationController alloc] initWithPresentedViewController:self.signatureVC presentingViewController:self.parentVC];
-       self.signatureVC.delegate = self;
-       self.signatureVC.transitioningDelegate = presentationController;
-       [self.parentVC presentViewController:self.signatureVC animated:YES completion:nil];
+        presentationController = [[AAPLCustomPresentationController alloc] initWithPresentedViewController:self.signatureVC presentingViewController:self.parentVC];
+        self.signatureVC.delegate = self;
+        self.signatureVC.transitioningDelegate = presentationController;
+        [self.parentVC presentViewController:self.signatureVC animated:YES completion:nil];
+    } else if (CPDFViewAnnotationModeStamp == self.selectedIndex) {
+        CAnnotStyle *annotStytle = self.annotManage.annotStyle;
+        AAPLCustomPresentationController *presentationController NS_VALID_UNTIL_END_OF_SCOPE;
+        CPDFStampViewController *stampVC = [[CPDFStampViewController alloc] init];
+        presentationController = [[AAPLCustomPresentationController alloc] initWithPresentedViewController:self.signatureVC presentingViewController:self.parentVC];
+//        stampVC.delegate = self;
+        stampVC.transitioningDelegate = presentationController;
+        [self.parentVC presentViewController:stampVC animated:YES completion:nil];
     }
 }
 

+ 52 - 7
compdfkit-tools/compdfkit-tools/Common/Views/PDFProperties/CPDFAnnotationSampleView.m

@@ -43,25 +43,70 @@
 - (void)drawRect:(CGRect)rect {
     [super drawRect:rect];
     CGContextRef context = UIGraphicsGetCurrentContext();
-    self.centerRect = CGRectInset(rect, 130, self.bounds.size.height/3);
+    self.centerRect = CGRectInset(rect, 130, (self.bounds.size.height/8)*3);
     self.arrowRect = CGRectInset(rect, 100, 20);
     
     self.textRect = CGRectInset(rect, self.bounds.size.width/3, self.bounds.size.height/3);
     
-    [self drawSamples:context];
+    [self drawSamples:context rect:self.centerRect];
 }
 
 #pragma mark - Private Methods
 
-- (void)drawSamples:(CGContextRef)context {
+- (void)drawSamples:(CGContextRef)context rect:(CGRect)rect {
     CGContextSetAlpha(context, self.opcity);
     switch (self.selecIndex) {
         case CPDFSamplesNote:
         {
-            CGContextSetFillColorWithColor(context, self.fillColor.CGColor);
-            CGContextFillRect(context, self.centerRect);
-            UIImage *image = [UIImage imageNamed:@"CPDFAnnotationBarImageNote" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil];
-            [image drawInRect:self.centerRect];
+            CGContextSetRGBStrokeColor(context, 0, 0, 0, 1.0);
+
+            if(self.fillColor) {
+                CGFloat red, green, blue, alpha;
+                [self.fillColor getRed:&red green:&green blue:&blue alpha:&alpha];
+                UIColor *color = [UIColor colorWithRed:red green:green blue:blue alpha:self.opcity];
+                CGContextSetFillColorWithColor(context, color.CGColor);
+            } else {
+                CGContextSetRGBStrokeColor(context, 0.0, 0.0, 0.0, 1.0);
+                CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);
+            }
+
+            // Draw outer boxes.
+            CGFloat width = 1.0;
+            CGFloat size = rect.size.height / 5;
+            CGRect outerRect1 = CGRectInset(rect, 0, 0);
+            outerRect1.size.height -= size;
+            CGRect outerRect2 = outerRect1;
+            outerRect2.origin.x += size;
+            outerRect2.origin.y += size*4;
+            outerRect2.size.width = size;
+            outerRect2.size.height = size;
+            
+            CGContextSetLineWidth(context, width);
+            CGContextMoveToPoint(context, CGRectGetMinX(outerRect1), CGRectGetMinY(outerRect1));
+            CGContextAddLineToPoint(context, CGRectGetMinX(outerRect1), CGRectGetMaxY(outerRect1));
+            CGContextAddLineToPoint(context, CGRectGetMinX(outerRect2), CGRectGetMinY(outerRect2));
+            CGContextAddLineToPoint(context, CGRectGetMidX(outerRect2), CGRectGetMaxY(outerRect2));
+            CGContextAddLineToPoint(context, CGRectGetMidX(outerRect2), CGRectGetMinY(outerRect2));
+            CGContextAddLineToPoint(context, CGRectGetMaxX(outerRect1), CGRectGetMaxY(outerRect1));
+            CGContextAddLineToPoint(context, CGRectGetMaxX(outerRect1), CGRectGetMinY(outerRect1));
+            CGContextClosePath(context);
+            CGContextDrawPath(context, kCGPathFillStroke);
+
+            // Draw inner lines.
+            int count = 3;
+            CGFloat xDelta = rect.size.width / 10;
+            CGFloat yDelta = outerRect1.size.height / (count + 1);
+            
+            CGRect lineRect = outerRect1;
+            lineRect.origin.x += xDelta;
+            lineRect.size.width -= 2*xDelta;
+            
+            for (int i=0; i<count; i++) {
+                CGFloat y = CGRectGetMaxY(lineRect) - yDelta * (i + 1);
+                CGContextMoveToPoint(context, CGRectGetMinX(lineRect), y);
+                CGContextAddLineToPoint(context, CGRectGetMaxX(lineRect), y);
+                CGContextStrokePath(context);
+            }
         }
             break;
         case CPDFSamplesHighlight:

+ 1 - 0
compdfkit-tools/compdfkit-tools/Common/Views/PDFProperties/CPDFColorSelectView.m

@@ -84,6 +84,7 @@
         UIButton *button = (UIButton *)self.colorArray[i];
         button.frame = CGRectMake((self.bounds.size.width - ((self.colorPickerView.bounds.size.height - 20)*8))/9 * (i+1) + (self.colorPickerView.bounds.size.height - 20) * i, 5, self.colorPickerView.bounds.size.height - 20, self.colorPickerView.bounds.size.height - 20);
         [[button layer] setCornerRadius:(self.colorPickerView.bounds.size.height - 20)/2];
+        button.layer.masksToBounds = YES;
         button.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin;
         button.backgroundColor = colors[i];
         button.tag = i;

+ 2 - 4
compdfkit-tools/compdfkit-tools/Common/Views/PDFProperties/CPDFOpacitySliderView.m

@@ -37,9 +37,7 @@
         self.startLabel.text = NSLocalizedString(@"100%", nil);
         self.startLabel.layer.borderWidth = 1.0;
         self.startLabel.textAlignment = NSTextAlignmentCenter;
-        self.startLabel.layer.cornerRadius = 6.0;
-        self.startLabel.layer.masksToBounds = YES;
-        self.startLabel.layer.borderColor = [UIColor grayColor].CGColor;
+        self.startLabel.layer.borderColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.1].CGColor;
         self.startLabel.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;
         [self addSubview:self.startLabel];
     }
@@ -50,7 +48,7 @@
     [super layoutSubviews];
     self.titleLabel.frame = CGRectMake(10, 0, 50, self.frame.size.height/2);
     self.opacitySlider.frame = CGRectMake(10, self.frame.size.height/2, self.frame.size.width - 110, self.frame.size.height/2);
-    self.startLabel.frame = CGRectMake(self.frame.size.width - 90, self.frame.size.height/2 + 10, 80, self.frame.size.height/2 - 20);
+    self.startLabel.frame = CGRectMake(self.frame.size.width - 90, self.frame.size.height/2 + 10, 80, self.frame.size.height/2 - 15);
 }
 
 #pragma mark - Action

+ 2 - 4
compdfkit-tools/compdfkit-tools/Common/Views/PDFProperties/CPDFThicknessSliderView.m

@@ -36,9 +36,7 @@
         self.startLabel.text = NSLocalizedString(@"10pt", nil);
         self.startLabel.layer.borderWidth = 1.0;
         self.startLabel.textAlignment = NSTextAlignmentCenter;
-        self.startLabel.layer.cornerRadius = 6.0;
-        self.startLabel.layer.masksToBounds = YES;
-        self.startLabel.layer.borderColor = [UIColor grayColor].CGColor;
+        self.startLabel.layer.borderColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.1].CGColor;
         self.startLabel.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;
         [self addSubview:self.startLabel];
     }
@@ -49,7 +47,7 @@
     [super layoutSubviews];
     self.titleLabel.frame = CGRectMake(10, 0, 70, self.frame.size.height/2);
     self.thicknessSlider.frame = CGRectMake(10, self.frame.size.height/2, self.frame.size.width - 110, self.frame.size.height/2);
-    self.startLabel.frame = CGRectMake(self.frame.size.width - 90, self.frame.size.height/2 + 10, 80, self.frame.size.height/2 -20);
+    self.startLabel.frame = CGRectMake(self.frame.size.width - 90, self.frame.size.height/2 + 10, 80, self.frame.size.height/2 -15);
 }
 
 #pragma mark - Action