Browse Source

【合并】新增带水印导出

tangchao 1 year ago
parent
commit
517cd78168

+ 32 - 13
PDF Office/PDF Master/Class/Merge/OCPart/KMPDFEditAppendWindow.m

@@ -102,8 +102,19 @@
     CGContextTranslateCTM(context, xTransform, yTransform);
     CGContextScaleCTM(context, ratio, ratio);
     
+    NSImage *image = [NSImage imageNamed:@"KMImageNameWatermark"];
     if (@available(macOS 10.12, *)) {
         [page drawWithBox:kPDFDisplayBoxCropBox toContext:context];
+        
+//        [image drawInRect:NSMakeRect(10, 350, 100, 30) fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0];
+        NSData *data = [image TIFFRepresentation];
+        CGImageRef imageRef;
+        if (data) {
+            CGImageSourceRef imageSource = CGImageSourceCreateWithData((CFDataRef)data, NULL);
+            imageRef = CGImageSourceCreateImageAtIndex(imageSource, 0, NULL);
+            
+            CGContextDrawImage(context, CGRectMake(0, pageSize.height-20, 72, 20), imageRef);
+        }
         [page transformContext:context forBox:kPDFDisplayBoxCropBox];
     } else {
         [NSGraphicsContext saveGraphicsState];
@@ -701,15 +712,15 @@ static KMPDFEditAppendWindow *windowController = nil;
 - (void)handerReDraw
 {
     //如果选择的是原始尺寸,不处理
-    KMImageTitleButton *originalSizeButton = self.originalSizeButton.subviews.lastObject;
-    if (originalSizeButton.state == NSControlStateValueOn) {
+//    KMImageTitleButton *originalSizeButton = self.originalSizeButton.subviews.lastObject;
+//    if (originalSizeButton.state == NSControlStateValueOn) {
         
-    }else{
+//    }else{
         //重新选择了界面尺寸,那么就要重绘
-        if (self.newPageSize.width < 0) {
-            NSBeep();
-            return;
-        }else{
+//        if (self.newPageSize.width < 0) {
+//            NSBeep();
+//            return;
+//        }else{
             NSMutableArray *pagesArray = [NSMutableArray array];
             
             NSInteger pageCount = self.PDFDocument.pageCount;
@@ -719,10 +730,18 @@ static KMPDFEditAppendWindow *windowController = nil;
             }
             
             for (NSInteger i = 0; i < pageCount; i ++) {
+                PDFPage *oPage = pagesArray[i];
+                NSRect pageBounds = [oPage boundsForBox:kPDFDisplayBoxCropBox];
                 KMAppendPDFPage *page = [[KMAppendPDFPage alloc] init];
-                [page setBounds:NSMakeRect(0, 0, self.newPageSize.width, self.newPageSize.height) forBox:kPDFDisplayBoxMediaBox];
-                page.drawingPage = pagesArray[i];
+                [page setBounds:NSMakeRect(0, 0, pageBounds.size.width, pageBounds.size.height) forBox:kPDFDisplayBoxMediaBox];
+                page.drawingPage = oPage;
 //                [self.PDFDocument insertPageObject:page atIndex:i];
+                
+                PDFAnnotationLink *linkA = [[PDFAnnotationLink alloc] init];
+                linkA.bounds = NSMakeRect(0, pageBounds.size.height-20, 72, 20);
+                linkA.URL = [NSURL URLWithString:@"https://www.pdfreaderpro.com/store"];
+                [page addAnnotation:linkA];
+                
                 [self.PDFDocument insertPage:page atIndex:i];
             }
             //如果是自定义大小,删除所有的outline,因为合并出来的outline是无效的
@@ -737,8 +756,8 @@ static KMPDFEditAppendWindow *windowController = nil;
                     [deleteOutline removeFromParent];
                 }
             }
-        }
-    }
+//        }
+//    }
 }
 
 - (BOOL)hasOpenFiles {
@@ -1193,7 +1212,7 @@ static KMPDFEditAppendWindow *windowController = nil;
             }
             
             dispatch_async(dispatch_get_main_queue(), ^{
-//                [self handerReDraw];
+                [self handerReDraw];
                 
                 KMSavePanelAccessoryController *savePanelAccessoryViewController = [[KMSavePanelAccessoryController alloc] init];
                 NSSavePanel *savePanel = [NSSavePanel savePanel];
@@ -1280,7 +1299,7 @@ static KMPDFEditAppendWindow *windowController = nil;
             }
         }
         if (_isSuccessfully) {
-//            [self handerReDraw];
+            [self handerReDraw];
             KMSavePanelAccessoryController *savePanelAccessoryViewController = [[KMSavePanelAccessoryController alloc] init];
             NSSavePanel *savePanel = [NSSavePanel savePanel];
             savePanel.nameFieldStringValue = fileName;

+ 1 - 1
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController.swift

@@ -1348,7 +1348,7 @@ import Cocoa
     }
     
     func pdfViewDidClick(onLink pdfView: CPDFView!, withURL url: String!) {
-        if (url == kKMPurchaseProductURLString) {
+        if let urlString = url, urlString == kKMPurchaseProductURLString {
             //跳转订阅比较表
             let _ = KMComparativeTableViewController.show(window: NSApp.mainWindow ?? NSWindow())
             return