Forráskód Böngészése

新转档库 - 新转档库接入,及转档过程参数控制;

zhudongyong 2 éve
szülő
commit
25e2b6309a

+ 14 - 1
KdanAutoTest/KdanAuto/Class/AutoTestCase/AutoTest.swift

@@ -19,6 +19,7 @@ class AutoTest : NSObject, AutoTestProtocal {
     var _type : String = "Others"
     var _extention : String = "rtf"
     var _name : String = "对照测试"
+    var _params : NSDictionary = [:]
     
     class func autoTestFor(_ fileType:NSString ,type:NSString) -> AutoTest? {
         let key = String(fileType) + "." + String(type)
@@ -43,6 +44,7 @@ class AutoTest : NSObject, AutoTestProtocal {
             let cType = cItem["Type"] as! NSString
             let cExtention = cItem["Extention"] as! NSString
             let cName = cItem["Name"] as! NSString
+            let cParams = cItem["Params"] as? NSDictionary
             if (cType.isEqual(to: type)) {
                 let className = String((clsname )+"."+(cItem["Class"] as! String))
                 let cl = NSClassFromString(className) as! AutoTest.Type
@@ -52,6 +54,9 @@ class AutoTest : NSObject, AutoTestProtocal {
                 object?._type = String(cType)
                 object?._extention = String(cExtention)
                 object?._name = String(cName)
+                if nil != cParams {
+                    object?._params = cParams!;
+                }
                 cacheObjects.setValue(object, forKey: key)
                 
                 return object
@@ -85,6 +90,10 @@ class AutoTest : NSObject, AutoTestProtocal {
         return _name
     }
     
+    func params() -> NSDictionary {
+        return _params
+    }
+    
     func keys() -> NSArray {
         return ["快照"]
     }
@@ -300,6 +309,10 @@ class AutoTest : NSObject, AutoTestProtocal {
     }
     
     func process(_ originPath:String, resultPath:String) -> Bool {
+        process(originPath, resultPath: resultPath, params: self.params())
+    }
+    
+    func process(_ originPath:String, resultPath:String, params:NSDictionary) -> Bool {
         // ...
         // 执行转换过程
         let convertSemaphore = DispatchSemaphore(value: 0)
@@ -307,7 +320,7 @@ class AutoTest : NSObject, AutoTestProtocal {
         let convertQueue = DispatchQueue.global()
         convertQueue.async {
             autoreleasepool {
-                success = FileConverter.shared().converter(originPath, inDesPath: resultPath)
+                success = FileConverter.shared().converter(originPath, inDesPath: resultPath, params: params)
                 
                 // 修复转 PNG 实际图片为 JPG 问题, 导致无法匹配问题
                 if (NSArray(array: ["png", "PNG"]).contains(NSString(string: resultPath).pathExtension)) {

+ 320 - 56
KdanAutoTest/KdanAuto/Class/AutoTestCase/AutoTestProperty.plist

@@ -13,73 +13,90 @@
 			<string>pdf</string>
 			<key>Class</key>
 			<string>PDFCompareTest</string>
+			<key>Params</key>
+			<dict/>
 		</dict>
 	</array>
 	<key>RTF</key>
 	<array>
 		<dict>
 			<key>Type</key>
-			<string>Fonts</string>
+			<string>Others(Old)</string>
 			<key>Extention</key>
 			<string>rtf</string>
 			<key>Name</key>
-			<string>字体转换准确率测试</string>
+			<string>快照对比(老库)</string>
 			<key>Class</key>
-			<string>FontAutoTest</string>
+			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
 		</dict>
 		<dict>
 			<key>Type</key>
-			<string>Colors</string>
+			<string>Others(New)</string>
 			<key>Extention</key>
 			<string>rtf</string>
 			<key>Name</key>
-			<string>字符颜色值转换测试</string>
+			<string>快照对比(新库)</string>
 			<key>Class</key>
-			<string>TextColorAutoTest</string>
+			<string>AutoTest</string>
 		</dict>
+	</array>
+	<key>Word</key>
+	<array>
 		<dict>
 			<key>Type</key>
-			<string>Characters</string>
-			<key>Extention</key>
-			<string>rtf</string>
+			<string>Others(Old)</string>
 			<key>Name</key>
-			<string>字符转换准确率测试</string>
+			<string>快照对比(老库)</string>
+			<key>Extention</key>
+			<string>docx</string>
 			<key>Class</key>
-			<string>CharacterAutoTest</string>
+			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
 		</dict>
 		<dict>
 			<key>Type</key>
-			<string>Others</string>
-			<key>Extention</key>
-			<string>rtf</string>
+			<string>Others(New)</string>
 			<key>Name</key>
-			<string>快照对比</string>
+			<string>快照对比(新库)</string>
+			<key>Extention</key>
+			<string>docx</string>
 			<key>Class</key>
 			<string>AutoTest</string>
 		</dict>
 	</array>
-	<key>Word</key>
+	<key>PPT</key>
 	<array>
 		<dict>
 			<key>Type</key>
-			<string>Others</string>
-			<key>Name</key>
-			<string>快照对比</string>
+			<string>Others(Old)</string>
 			<key>Extention</key>
-			<string>docx</string>
+			<string>pptx</string>
+			<key>Name</key>
+			<string>快照对比(老库)</string>
 			<key>Class</key>
 			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
 		</dict>
-	</array>
-	<key>PPT</key>
-	<array>
 		<dict>
 			<key>Type</key>
-			<string>Others</string>
+			<string>Others(New)</string>
 			<key>Extention</key>
 			<string>pptx</string>
 			<key>Name</key>
-			<string>快照对比</string>
+			<string>快照对比(新库)</string>
 			<key>Class</key>
 			<string>AutoTest</string>
 		</dict>
@@ -88,9 +105,24 @@
 	<array>
 		<dict>
 			<key>Type</key>
-			<string>Others</string>
+			<string>Others(Old)</string>
+			<key>Name</key>
+			<string>快照对比(老库)</string>
+			<key>Extention</key>
+			<string>xlsx</string>
+			<key>Class</key>
+			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
+		</dict>
+		<dict>
+			<key>Type</key>
+			<string>Others(New)</string>
 			<key>Name</key>
-			<string>快照对比</string>
+			<string>快照对比(新库)</string>
 			<key>Extention</key>
 			<string>xlsx</string>
 			<key>Class</key>
@@ -101,51 +133,124 @@
 	<array>
 		<dict>
 			<key>Type</key>
-			<string>Others</string>
+			<string>AllInOne(Old)</string>
+			<key>Name</key>
+			<string>合并导出快照对比</string>
 			<key>Extention</key>
 			<string>csv</string>
 			<key>Class</key>
 			<string>AutoTest</string>
-			<key>Name</key>
-			<string>快照对比</string>
 			<key>Params</key>
-			<string></string>
+			<dict>
+				<key>CPDFConvertOptionsKeyAllInOneSheet</key>
+				<true/>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
 		</dict>
 		<dict>
 			<key>Type</key>
-			<string>合并导出</string>
+			<string>Others(Old)</string>
+			<key>Extention</key>
+			<string>csv</string>
+			<key>Class</key>
+			<string>AutoTest</string>
 			<key>Name</key>
-			<string>合并导出快照对比</string>
+			<string>快照对比(老库)</string>
+			<key>Params</key>
+			<dict>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
+		</dict>
+		<dict>
+			<key>Type</key>
+			<string>Others(New)</string>
 			<key>Extention</key>
 			<string>csv</string>
 			<key>Class</key>
 			<string>AutoTest</string>
+			<key>Name</key>
+			<string>快照对比(新库)</string>
 			<key>Params</key>
-			<string></string>
+			<dict>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
 		</dict>
 	</array>
 	<key>HTML</key>
 	<array>
 		<dict>
 			<key>Type</key>
-			<string>Others</string>
+			<string>Others(Old)</string>
+			<key>Name</key>
+			<string>快照对比(老库)</string>
+			<key>Extention</key>
+			<string>html</string>
+			<key>Class</key>
+			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
+		</dict>
+		<dict>
+			<key>Type</key>
+			<string>SinglePage(New)</string>
 			<key>Name</key>
-			<string>快照对比</string>
+			<string>单页(新库)</string>
 			<key>Extention</key>
 			<string>html</string>
 			<key>Class</key>
 			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>paneOptions</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Type</key>
+			<string>MultiplePages(New)</string>
+			<key>Name</key>
+			<string>多页(新库)</string>
+			<key>Extention</key>
+			<string>html</string>
+			<key>Class</key>
+			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>paneOptions</key>
+				<integer>2</integer>
+			</dict>
 		</dict>
 	</array>
 	<key>TXT</key>
 	<array>
 		<dict>
 			<key>Type</key>
-			<string>Others</string>
+			<string>Others(Old)</string>
 			<key>Extention</key>
 			<string>txt</string>
 			<key>Name</key>
-			<string>快照对比</string>
+			<string>快照对比(老库)</string>
+			<key>Class</key>
+			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
+		</dict>
+		<dict>
+			<key>Type</key>
+			<string>Others(New)</string>
+			<key>Extention</key>
+			<string>txt</string>
+			<key>Name</key>
+			<string>快照对比(新库)</string>
 			<key>Class</key>
 			<string>AutoTest</string>
 		</dict>
@@ -154,39 +259,88 @@
 	<array>
 		<dict>
 			<key>Type</key>
-			<string>Others</string>
+			<string>Others(Old)</string>
 			<key>Extention</key>
 			<string>jpg</string>
 			<key>Name</key>
-			<string>快照对比</string>
+			<string>快照对比(老库)</string>
 			<key>Class</key>
 			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
 		</dict>
 		<dict>
 			<key>Type</key>
-			<string>DPI-300</string>
+			<string>DPI-300(Old)</string>
 			<key>Name</key>
-			<string>DPI-300 快照对比</string>
+			<string>DPI-300 快照对比(老库)</string>
 			<key>Extention</key>
 			<string>jpg</string>
 			<key>Class</key>
 			<string>AutoTest</string>
 			<key>Params</key>
 			<dict>
-				<key>DPI</key>
+				<key>KMPDFConvertOptionsKeyImageDPI</key>
 				<string>300</string>
+				<key>useOldLib</key>
+				<true/>
 			</dict>
 		</dict>
+		<dict>
+			<key>Type</key>
+			<string>Others(New)</string>
+			<key>Extention</key>
+			<string>jpg</string>
+			<key>Name</key>
+			<string>快照对比(新库)</string>
+			<key>Class</key>
+			<string>AutoTest</string>
+		</dict>
 	</array>
 	<key>PNG</key>
 	<array>
 		<dict>
 			<key>Type</key>
-			<string>Others</string>
+			<string>Others(Old)</string>
+			<key>Extention</key>
+			<string>png</string>
+			<key>Name</key>
+			<string>快照对比(Old)</string>
+			<key>Class</key>
+			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
+		</dict>
+		<dict>
+			<key>Type</key>
+			<string>DPI-300(Old)</string>
+			<key>Name</key>
+			<string>DPI-300 快照对比(老库)</string>
+			<key>Extention</key>
+			<string>png</string>
+			<key>Class</key>
+			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>KMPDFConvertOptionsKeyImageDPI</key>
+				<string>300</string>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
+		</dict>
+		<dict>
+			<key>Type</key>
+			<string>Others(New)</string>
 			<key>Extention</key>
 			<string>png</string>
 			<key>Name</key>
-			<string>快照对比</string>
+			<string>快照对比(新库)</string>
 			<key>Class</key>
 			<string>AutoTest</string>
 		</dict>
@@ -195,65 +349,175 @@
 	<array>
 		<dict>
 			<key>Type</key>
-			<string>Others</string>
+			<string>Others(Old)</string>
 			<key>Extention</key>
 			<string>gif</string>
 			<key>Name</key>
-			<string>快照对比</string>
+			<string>快照对比(Old)</string>
+			<key>Class</key>
+			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
+		</dict>
+		<dict>
+			<key>Type</key>
+			<string>DPI-300(Old)</string>
+			<key>Name</key>
+			<string>DPI-300 快照对比(老库)</string>
+			<key>Extention</key>
+			<string>gif</string>
 			<key>Class</key>
 			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>KMPDFConvertOptionsKeyImageDPI</key>
+				<string>300</string>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
 		</dict>
 	</array>
 	<key>TIFF</key>
 	<array>
 		<dict>
 			<key>Type</key>
-			<string>Others</string>
+			<string>Others(Old)</string>
 			<key>Extention</key>
 			<string>tiff</string>
 			<key>Name</key>
-			<string>快照对比</string>
+			<string>快照对比(Old)</string>
 			<key>Class</key>
 			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
+		</dict>
+		<dict>
+			<key>Type</key>
+			<string>DPI-300(Old)</string>
+			<key>Name</key>
+			<string>DPI-300 快照对比(老库)</string>
+			<key>Extention</key>
+			<string>tiff</string>
+			<key>Class</key>
+			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>KMPDFConvertOptionsKeyImageDPI</key>
+				<string>300</string>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
 		</dict>
 	</array>
 	<key>TGA</key>
 	<array>
 		<dict>
 			<key>Type</key>
-			<string>Others</string>
+			<string>Others(Old)</string>
 			<key>Extention</key>
 			<string>tga</string>
 			<key>Name</key>
-			<string>快照对比</string>
+			<string>快照对比(Old)</string>
+			<key>Class</key>
+			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
+		</dict>
+		<dict>
+			<key>Type</key>
+			<string>DPI-300(Old)</string>
+			<key>Name</key>
+			<string>DPI-300 快照对比(老库)</string>
+			<key>Extention</key>
+			<string>tga</string>
 			<key>Class</key>
 			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>KMPDFConvertOptionsKeyImageDPI</key>
+				<string>300</string>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
 		</dict>
 	</array>
 	<key>BMP</key>
 	<array>
 		<dict>
 			<key>Type</key>
-			<string>Others</string>
+			<string>Others(Old)</string>
 			<key>Extention</key>
 			<string>bmp</string>
 			<key>Name</key>
-			<string>快照对比</string>
+			<string>快照对比(Old)</string>
 			<key>Class</key>
 			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
+		</dict>
+		<dict>
+			<key>Type</key>
+			<string>DPI-300(Old)</string>
+			<key>Name</key>
+			<string>DPI-300 快照对比(老库)</string>
+			<key>Extention</key>
+			<string>bmp</string>
+			<key>Class</key>
+			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>KMPDFConvertOptionsKeyImageDPI</key>
+				<string>300</string>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
 		</dict>
 	</array>
 	<key>JPEG2000</key>
 	<array>
 		<dict>
 			<key>Type</key>
-			<string>Others</string>
+			<string>Others(Old)</string>
 			<key>Extention</key>
-			<string>jpg</string>
+			<string>jp2</string>
 			<key>Name</key>
-			<string>快照对比</string>
+			<string>快照对比(Old)</string>
 			<key>Class</key>
 			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
+		</dict>
+		<dict>
+			<key>Type</key>
+			<string>DPI-300(Old)</string>
+			<key>Name</key>
+			<string>DPI-300 快照对比(老库)</string>
+			<key>Extention</key>
+			<string>jp2</string>
+			<key>Class</key>
+			<string>AutoTest</string>
+			<key>Params</key>
+			<dict>
+				<key>KMPDFConvertOptionsKeyImageDPI</key>
+				<string>300</string>
+				<key>useOldLib</key>
+				<true/>
+			</dict>
 		</dict>
 	</array>
 </dict>

+ 1 - 0
KdanAutoTest/KdanAuto/Class/AutoTestCase/AutoTestProtocal.swift

@@ -25,6 +25,7 @@ protocol AutoTestProtocal : NSObjectProtocol {
     func fileType() -> String // PPT/RTF/EXCEL/Word/....
     func type() -> String
     func name() -> String
+    func params() -> NSDictionary
     
     func keys() -> NSArray
     func selectedKeys() -> NSArray

+ 6 - 1
KdanAutoTest/KdanAuto/Class/CompareViewController/CompareViewController.swift

@@ -38,6 +38,11 @@ class CompareViewController: NSViewController, NSTableViewDataSource, NSTableVie
         return sharedCViewController!
     }
     
+    override func viewDidLoad() {
+        self.listView.register(NSNib.init(nibNamed: NSNib.Name.init(NSString(string: "ImageCompareCellView")),
+                                          bundle: Bundle.main), forIdentifier: NSUserInterfaceItemIdentifier.init("ImageCompareCellView"))
+    }
+    
     // IBAction
     @IBAction func filterSimilarItemAction(_ sender:NSButton) {
         self.setFiles(_files);
@@ -205,7 +210,7 @@ class CompareViewController: NSViewController, NSTableViewDataSource, NSTableVie
     func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
         return autoreleasepool {
             var cellView = tableView.makeView(withIdentifier: .init("ImageCompareCellView"), owner: nil) as! ImageCompareCellView?
-            if (nil != cellView) {
+            if (nil == cellView) {
                 cellView = ImageCompareCellView.shared() ?? nil
             }
             

+ 41 - 23
KdanAutoTest/KdanAuto/Class/CompareViewController/ImageCompareCellView.swift

@@ -205,45 +205,52 @@ class ImageCompareCellView : NSTableCellView {
         }
     }
     
+    // 留意该方法在子线程调用
     func processCompareImage() -> NSImage? {
-        _imageView03.image = nil;
-        _imageView04.image = nil;
         
         return autoreleasepool {
             let comparePath = _fileInfo.comparePath()
             let resultPath = _fileInfo.resultPath()
             
             let image = NSImage.init(contentsOfFile: comparePath)
-            _imageView01.image = image;
             
             let image2 = NSImage.init(contentsOfFile: resultPath)
-            _imageView02.image = image2;
-            
-            _showCoverBtn.isHidden = true;
-            _segmentedControl.isHidden = true;
-            _degreeInfoLbl.isHidden = true;
+            DispatchQueue.main.sync {
+                _imageView01.image = image;
+                _imageView02.image = image2;
+                _imageView03.image = nil;
+                _imageView04.image = nil;
+                
+                _showCoverBtn.isHidden = true;
+                //            _segmentedControl.isHidden = true;
+                //            _degreeInfoLbl.isHidden = true;
+            }
             
             let nimage = self.imageFroView(self)
             return nimage
         }
     }
     
+    // 留意该方法在子线程调用
     func processCoverImage() -> NSImage? {
-        _imageView01.image = nil;
-        _imageView02.image = nil;
-        
         return autoreleasepool {
             let comparePath = _fileInfo.comparePath()
             let resultPath = _fileInfo.resultPath()
             
             let image = NSImage.init(contentsOfFile: comparePath)
-            _imageView03.image = image;
-            self._imageView04.image = nil;
-            _imageView04.isHidden = false
+            DispatchQueue.main.sync {
+                _imageView01.image = nil;
+                _imageView02.image = nil;
+                
+                self._imageView03.image = image;
+                self._imageView03.isHidden = false
+                self._imageView04.image = nil;
+                self._imageView04.isHidden = false
+            }
             
             var image2 = nil as NSImage?
             
-            let coverPath = NSString(format: "%@_cover.png", NSString(string: resultPath).deletingPathExtension) as! String
+            let coverPath = NSString(format: "%@_cover.png", NSString(string: resultPath).deletingPathExtension) as String
             
             if FileManager.default.fileExists(atPath: coverPath) {
                 image2 = NSImage.init(contentsOfFile: coverPath)
@@ -259,12 +266,14 @@ class ImageCompareCellView : NSTableCellView {
                 }
             }
             
-            self._imageView04.image = image2
-            self._activityView.isHidden = true
-            
-            self._showCoverBtn.isHidden = true;
-            self._segmentedControl.isHidden = true;
-            self._degreeInfoLbl.isHidden = true;
+            DispatchQueue.main.sync {
+                self._imageView04.image = image2
+//                self._activityView.isHidden = true
+                
+//                self._showCoverBtn.isHidden = true;
+                self._segmentedControl.isHidden = true;
+                self._degreeInfoLbl.isHidden = true;
+            }
             
             let nimage = self.imageFroView(self)
             return nimage
@@ -275,8 +284,17 @@ class ImageCompareCellView : NSTableCellView {
         var image = nil as NSImage?;
         
         autoreleasepool {
-            let data = view.dataWithPDF(inside: view.frame)
-            image = NSImage.init(data: data);
+            var data = nil as Data?
+            if (Thread.isMainThread) {
+                data = view.dataWithPDF(inside: view.frame)
+            }else {
+                DispatchQueue.main.sync {
+                    data = view.dataWithPDF(inside: view.frame)
+                }
+            }
+            if data != nil {
+                image = NSImage.init(data: data!);
+            }
         }
         
         return image ?? nil;

+ 142 - 59
KdanAutoTest/KdanAuto/Class/Tools/FileConveter/FileConverter.swift

@@ -40,6 +40,10 @@ class FileConverter : NSObject, CPDFConverterDelegate, CPDFConverterFPDelegate {
     }
     
     func converter(_ inSrcPath: String, inDesPath: String) -> Bool {
+        return converter(inSrcPath, inDesPath: inDesPath, params: nil)
+    }
+    
+    func converter(_ inSrcPath: String, inDesPath: String, params:NSDictionary?) -> Bool {
         if !FileManager.default.fileExists(atPath: inSrcPath) {
             return false
         }
@@ -68,6 +72,21 @@ class FileConverter : NSObject, CPDFConverterDelegate, CPDFConverterFPDelegate {
         self.pathExtension = NSString(string: self.desPath).pathExtension
 //        let outputPath = NSString(string: self.desPath).deletingPathExtension
 //        let output = self.desPath
+        let password = params?.value(forKey: "password")
+        let tParams = params as? NSDictionary
+        let useOldLibValue = params?.value(forKey: "useOldLib")
+    
+        var useOldLib = false;
+        if (nil != useOldLibValue) {
+            if ((useOldLibValue as? String) != nil) {
+                useOldLib = NSArray(array: ["TRUE", "true", "1"]).contains((useOldLibValue as! String))
+            }else if ((useOldLibValue as? NSNumber) != nil) {
+                useOldLib = (useOldLibValue as? NSNumber)!.boolValue || (useOldLibValue as? NSNumber)!.intValue == 1
+            }
+        }
+    
+        NSLog("%@ - %@", useOldLib ? "老库" : "新库", params ?? "")
+        
         self.convertQueue.async {
             let url = URL.init(fileURLWithPath: self.srcPath, isDirectory: false)
             let document = PDFDocument(url: url)
@@ -82,66 +101,128 @@ class FileConverter : NSObject, CPDFConverterDelegate, CPDFConverterFPDelegate {
                 self.pages.append(i)
             }
             
-            if NSArray(array: ["jpg", "JPG", "png", "PNG"]).contains(self.pathExtension) {
-                let cachePath = NSString(string: self.desPath).deletingPathExtension+".zip"
-                self.pdfConverter = CPDFConverterImg.init(url: url, password: nil)
-                self.pdfConverter?.delegate = self
-                self.options = CPDFConvertImgOptions()
-                self.pdfConverter?.convert(toFilePath: cachePath, pageIndexs: self.pages, options: self.options)
-            }else {
-                
-                //            if NSArray(array: ["ppt", "PPT", "PPTX", "pptx"]).contains(pathExtension) {
-                //                self.pdfConverter = CPDFConverterPPT.init(url: url, password: kDefaultPassword)
-                //                self.pdfConverter?.delegate = self
-                //                self.options = CPDFConvertPPTOptions()
-                //                self.pdfConverter?.convert(toFilePath: outputPath,
-                //                                           pageIndexs: [], options: nil)
-                //            }else
-                //            if NSArray(array: ["doc", "DOC", "docx", "DOCX"]).contains(pathExtension) {
-                //                self.pdfConverter = CPDFConverterWord.init(url: url, password: nil)
-                //                self.pdfConverter?.delegate = self
-                //                self.options = CPDFConvertWordOptions()
-                //                self.pdfConverter?.convert(toFilePath: self.self.desPath,
-                //                                           pageIndexs: pagesArray, options: nil)
-                //            }else
-                //            if NSArray(array: ["xls", "XLS", "xlsx", "XLSX"]).contains(pathExtension) {
-                //                self.pdfConverter = CPDFConverterTable.init(url: url, password: nil)
-                //                self.pdfConverter?.delegate = self
-                //                self.options = CPDFConvertTableOptions()
-                //                self.pdfConverter?.convert(toFilePath: self.self.desPath,
-                //                                           pageIndexs: pagesArray, options: nil)
-                //            }else if NSArray(array: ["csv", "CSV"]).contains(pathExtension) {
-                //                self.pdfConverter = CPDFConverterCsv.init(url: url, password: nil)
-                //                self.pdfConverter?.delegate = self
-                //                self.options = CPDFConvertCsvOptions()
-                //                self.pdfConverter?.convert(toFilePath: self.self.desPath,
-                //                                           pageIndexs: pagesArray, options: nil)
-                //            }else {
-                if self.fpConverter == nil {
-                    self.fpConverter = CPDFConverterFP.init()
-                    self.fpConverter?.setDelegate(self)
-                }else {
-                    self.fpConverter?.stopConvertsionIfNeed()
+            if  !useOldLib && NSArray(array: ["jpg", "JPG", "png", "PNG"]).contains(self.pathExtension) {
+                autoreleasepool {
+                    let cachePath = NSString(string: self.desPath).deletingPathExtension+".zip"
+                    self.pdfConverter = CPDFConverterImg.init(url: url, password: nil)
+                    if (nil == self.pdfConverter && nil != password) {
+                        self.pdfConverter = CPDFConverterImg.init(url: url, password: password as? String)
+                    }
+                    self.pdfConverter?.delegate = self
+                    self.options = CPDFConvertImgOptions()
+                    if (NSArray(array: ["jpg", "JPG"]).contains(self.pathExtension)) {
+                        (self.options as! CPDFConvertImgOptions).type = .JPEG
+                    }else {
+                        (self.options as! CPDFConvertImgOptions).type = .PNG
+                    }
+                    self.pdfConverter?.convert(toFilePath: cachePath, pageIndexs: self.pages, options: self.options)
                 }
-                
-                
-                let needMerge = NSArray(array: ["csv", "CSV"]).contains(self.pathExtension)
-                //                let allInOneSheetKey = String(CPDFConvertOptionsKey.allInOneSheet)
-                
-                //            Task.init {
+            }else if !useOldLib && NSArray(array: ["ppt", "PPT", "PPTX", "pptx"]).contains(self.pathExtension) {
+                autoreleasepool {
+                    self.pdfConverter = CPDFConverterPPT.init(url: url, password: nil)
+                    if (nil == self.pdfConverter && nil != password) {
+                        self.pdfConverter = CPDFConverterPPT.init(url: url, password: password as? String)
+                    }
+                    self.pdfConverter?.delegate = self
+                    self.options = CPDFConvertPPTOptions()
+                    self.pdfConverter?.convert(toFilePath: self.desPath,
+                                               pageIndexs: self.pages, options: self.options)
+                }
+            }else if !useOldLib && NSArray(array: ["doc", "DOC", "docx", "DOCX"]).contains(self.pathExtension) {
+                autoreleasepool {
+                    self.pdfConverter = CPDFConverterWord.init(url: url, password: nil)
+                    if (nil == self.pdfConverter && nil != password) {
+                        self.pdfConverter = CPDFConverterWord.init(url: url, password: password as? String)
+                    }
+                    self.pdfConverter?.delegate = self
+                    self.options = CPDFConvertWordOptions()
+                    self.pdfConverter?.convert(toFilePath: self.desPath,
+                                               pageIndexs: self.pages, options: self.options)
+                }
+            }else if !useOldLib && NSArray(array: ["xls", "XLS", "xlsx", "XLSX"]).contains(self.pathExtension) {
+                autoreleasepool {
+                    self.pdfConverter = CPDFConverterExcel.init(url: url, password: nil)
+                    if (nil == self.pdfConverter && nil != password) {
+                        self.pdfConverter = CPDFConverterExcel.init(url: url, password: password as? String)
+                    }
+                    self.pdfConverter?.delegate = self
+                    self.options = CPDFConvertExcelOptions()
+                    self.pdfConverter?.convert(toFilePath: self.desPath,
+                                               pageIndexs: self.pages, options: self.options)
+                }
+            }else if !useOldLib && NSArray(array: ["csv", "CSV"]).contains(self.pathExtension) {
+                autoreleasepool {
+                    self.pdfConverter = CPDFConverterCsv.init(url: url, password: nil)
+                    if (nil == self.pdfConverter && nil != password) {
+                        self.pdfConverter = CPDFConverterCsv.init(url: url, password: password as? String)
+                    }
+                    self.pdfConverter?.delegate = self
+                    self.options = CPDFConvertCsvOptions()
+                    self.pdfConverter?.convert(toFilePath: self.desPath,
+                                               pageIndexs: self.pages, options: self.options)
+                }
+            }else if !useOldLib && NSArray(array: ["html", "HTML"]).contains(self.pathExtension) {
+                autoreleasepool {
+                    let cachePath = NSString(string: self.desPath).deletingPathExtension+".zip"
+                    self.pdfConverter = CPDFConverterHtml.init(url: url, password: nil)
+                    if (nil == self.pdfConverter && nil != password) {
+                        self.pdfConverter = CPDFConverterHtml.init(url: url, password: password as? String)
+                    }
+                    self.pdfConverter?.delegate = self
+                    self.options = CPDFConvertHtmlOptions()
+                    if ((tParams?.value(forKey: "paneOptions") as? NSNumber) != nil) {
+                        (self.options as! CPDFConvertHtmlOptions).paneOptions = CPDFConvertHtmlPageAndNavigationPaneOptions(rawValue: (tParams?.value(forKey: "paneOptions") as! NSNumber).intValue)!
+                    }
+                    self.pdfConverter?.convert(toFilePath: cachePath,
+                                               pageIndexs: self.pages, options: self.options)
+                }
+            }else if !useOldLib && NSArray(array: ["rtf", "RTF"]).contains(self.pathExtension) {
+                autoreleasepool {
+                    self.pdfConverter = CPDFConverterRtf.init(url: url, password: nil)
+                    if (nil == self.pdfConverter && nil != password) {
+                        self.pdfConverter = CPDFConverterRtf.init(url: url, password: password as? String)
+                    }
+                    self.pdfConverter?.delegate = self
+                    self.options = CPDFConvertRtfOptions()
+                    self.pdfConverter?.convert(toFilePath: self.desPath,
+                                               pageIndexs: self.pages, options: self.options)
+                }
+            }else if !useOldLib && NSArray(array: ["txt", "TXT"]).contains(self.pathExtension) {
+                autoreleasepool {
+                    self.pdfConverter = CPDFConverterTxt.init(url: url, password: nil)
+                    if (nil == self.pdfConverter && nil != password) {
+                        self.pdfConverter = CPDFConverterTxt.init(url: url, password: password as? String)
+                    }
+                    self.pdfConverter?.delegate = self
+                    self.options = CPDFConvertTxtOptions()
+                    self.pdfConverter?.convert(toFilePath: self.desPath,
+                                               pageIndexs: self.pages, options: self.options)
+                }
+            }else {
                 autoreleasepool {
+                    if self.fpConverter == nil {
+                        self.fpConverter = CPDFConverterFP.init()
+                        self.fpConverter?.setDelegate(self)
+                    }else {
+                        self.fpConverter?.stopConvertsionIfNeed()
+                    }
+                    
+                    var needMerge = NSArray(array: ["csv", "CSV"]).contains(self.pathExtension)
+                    let dpi = tParams?.value(forKey: "KMPDFConvertOptionsKeyImageDPI")
+                    if (needMerge && tParams?.value(forKey: "CPDFConvertOptionsKeyAllInOneSheet") != nil) {
+                        needMerge = (tParams?.value(forKey: "CPDFConvertOptionsKeyAllInOneSheet") as! NSNumber).boolValue
+                    }
+                    
                     self.fpConverter?.convertPDF(atPath: self.srcPath,
-                                                 pdfPassword: nil,
+                                                 pdfPassword: password as? String,
                                                  pdfPageIndexs: self.pages,
                                                  destDocType: self.pathExtension,
                                                  destDocPath: self.desPath,
                                                  moreOptions: [
-                                                    "KMPDFConvertOptionsKeyImageDPI" : "72",
+                                                    "KMPDFConvertOptionsKeyImageDPI" : (dpi as? String) ?? "72",
                                                     "CPDFConvertOptionsKeyAllInOneSheet":NSNumber(booleanLiteral: needMerge)
                                                  ])
                 }
-                //            }
-                //            }
             }
         }
         
@@ -162,15 +243,16 @@ class FileConverter : NSObject, CPDFConverterDelegate, CPDFConverterFPDelegate {
         autoreleasepool {
             sleep(2)
             
-            let cachePath = NSString(string: self.desPath).deletingPathExtension+".zip"
-            //        try? FileManager.default.createDirectory(atPath: self.desPath, withIntermediateDirectories: true)
-            
-            let zip = ZipArchive.init()
-            
-            zip.unzipOpenFile(cachePath)
-            zip.unzipFile(to: self.desPath, overWrite: true)
-            
-            try? FileManager.default.removeItem(atPath: cachePath)
+            if NSArray(array: ["jpg", "JPG", "png", "PNG", "HTML", "html"]).contains(self.pathExtension) {
+                let cachePath = NSString(string: self.desPath).deletingPathExtension+".zip"
+                
+                let zip = ZipArchive.init()
+                
+                zip.unzipOpenFile(cachePath)
+                zip.unzipFile(to: self.desPath, overWrite: true)
+                
+                try? FileManager.default.removeItem(atPath: cachePath)
+            }
             
             sleep(1)
             
@@ -179,6 +261,7 @@ class FileConverter : NSObject, CPDFConverterDelegate, CPDFConverterFPDelegate {
             }
             self.pdfConverter?.delegate = nil
             self.pdfConverter = nil
+            
             semaphore?.signal()
         }
     }

+ 4 - 2
KdanAutoTest/ProcessCheckFile/Process/ProcessThumbnal.swift

@@ -25,8 +25,10 @@ class ProcessThumbnal : NSObject {
     
     class func process(_ filePath:String, desPath:String, outputSize:CGSize) -> Bool {
         if NSArray(array: ["PDF", "pdf"]).contains(NSString(string: filePath).pathExtension) {
-            let success = FileConverter.shared().converter(filePath, inDesPath: desPath)
-            return success
+            return autoreleasepool {
+                let success = FileConverter.shared().converter(filePath, inDesPath: desPath)
+                return success
+            }
         }
         
         if NSArray(array: ["JPG", "jpg"]).contains(NSString(string: filePath).pathExtension) {