Sfoglia il codice sorgente

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

tangchao 10 mesi fa
parent
commit
fa1c1a57f0

+ 24 - 17
PDF Office/PDF Master/Class/Home/WindowController/KMURLToPDFWindowController/Model/KMConvertURLToPDF.m

@@ -84,28 +84,32 @@
     NSURL *url = self.urls[pageIndex];
     
     if ([url.pathExtension.lowercaseString isEqualToString:@"pdf"]) {
-        NSData *urlData = [NSData dataWithContentsOfURL:url];
-        NSString *name = [NSString stringWithFormat:@"webpage%ld",self.pageIndex];
-        NSString *savePath = [self.savePath  stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.pdf",self.fileName?:name]];
-        
-        if ([urlData writeToFile:savePath atomically:YES]) {
-            [self.successArray addObject:savePath];
-            if (self.pageIndex + 1 >= self.urls.count) {
+        dispatch_async(dispatch_get_main_queue(), ^{
+            NSData *urlData = [NSData dataWithContentsOfURL:url];
+            NSString *name = [NSString stringWithFormat:@"webpage%ld",self.pageIndex];
+            NSString *savePath = [self.savePath  stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.pdf", self.fileName.length > 0? self.fileName : name]];
+            if (![[NSFileManager defaultManager]fileExistsAtPath:self.savePath]) {
+                [[NSFileManager defaultManager] createDirectoryAtPath:self.savePath withIntermediateDirectories:YES attributes:nil error:nil];
+            }
+            if ([urlData writeToFile:savePath atomically:YES]) {
+                [self.successArray addObject:savePath];
+                if (self.pageIndex + 1 >= self.urls.count) {
+                    if (self.handler) {
+                        self.handler (self.successArray,self.failArray);
+                        self.handler= nil;
+                    }
+                } else {
+                    [self convertFileAtPageIndex:++self.pageIndex];
+                    
+                }
+            } else {
+                [self.failArray addObject:self.urls[self.pageIndex]];
                 if (self.handler) {
                     self.handler (self.successArray,self.failArray);
                     self.handler= nil;
                 }
-            } else {
-                [self convertFileAtPageIndex:++self.pageIndex];
-                
-            }
-        } else {
-            [self.failArray addObject:self.urls[self.pageIndex]];
-            if (self.handler) {
-                self.handler (self.successArray,self.failArray);
-                self.handler= nil;
             }
-        }
+        });
     } else {
        
         if (!self.webView) {
@@ -136,6 +140,9 @@
         name = self.fileName;
     }
     NSString *savePath = [self.savePath  stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.pdf",name]];
+    if (![[NSFileManager defaultManager]fileExistsAtPath:self.savePath]) {
+        [[NSFileManager defaultManager] createDirectoryAtPath:self.savePath withIntermediateDirectories:YES attributes:nil error:nil];
+    }
     CGFloat margin = self.gap;
     NSSize paperSize = self.pageSize;
     WebFrameView *frameView = [frame frameView];