Browse Source

【综合】保存带水印,新增删除之前添加的水印注释

tangchao 1 year ago
parent
commit
405eaeff32

+ 21 - 4
PDF Office/PDF Master/Class/Common/Tools/KMTools.swift

@@ -377,13 +377,30 @@ extension KMTools {
         watermark?.scale = 0.3
         _document.addWatermark(watermark)
         // 添加 link注释
+        var watermarkAnnoBounds = NSMakeRect(0, 0, 72, 20)
         for i in 0 ..< _document.pageCount {
-            let page = _document.page(at: i)
-            
+            guard let page = _document.page(at: i) else {
+                continue
+            }
+
+            // 水印注释 frame
+            watermarkAnnoBounds.origin.y = page.bounds.size.height-watermarkAnnoBounds.size.height
+            // 找到需要删除的水印注释(之前添加)
+            var flagAnnos: [CPDFAnnotation] = []
+            for anno in page.annotations {
+                if let anno_link = anno as? CPDFLinkAnnotation, anno_link.url() == kKMPurchaseProductURLString, anno_link.bounds.equalTo(watermarkAnnoBounds) {
+                    flagAnnos.append(anno_link)
+                }
+            }
+            // 删除之前的水印注释
+            for anno in flagAnnos {
+                page.removeAnnotation(anno)
+            }
+            // 新增新的水印注释
             let anno = CPDFLinkAnnotation(document: _document)
-            anno?.bounds = NSMakeRect(0, _document.page(at: 0).bounds.size.height-20, 70, 20)
+            anno?.bounds = watermarkAnnoBounds
             anno?.setURL(kKMPurchaseProductURLString)
-            page?.addAnnotation(anno)
+            page.addAnnotation(anno)
         }
         
         // 保存文档

+ 0 - 1
PDF Office/PDF Master/Class/Document/KMMainDocument.swift

@@ -222,7 +222,6 @@ typealias KMMainDocumentCloudUploadHanddler = (@escaping(Bool, String)->()) -> (
                         return
                     }
                     
-                    // isWaterMarkExport
                     if (isWaterMarkExport) {
                         guard let _document = self.mainViewController?.document else {
                             return