PDFCompareTest.swift 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. //
  2. // PDFCompareTest.swift
  3. // KdanAuto
  4. //
  5. // Created by 朱东勇 on 2023/2/16.
  6. //
  7. import Foundation
  8. import AppKit
  9. class PDFCompareTest : AutoTest {
  10. static var pdfSharedInstance = PDFCompareTest()
  11. override class func shared() -> AutoTest? {
  12. return pdfSharedInstance
  13. }
  14. override func clearCacheFiles() {
  15. }
  16. override func process(_ originPath:String, resultPath:String, complention:@escaping (_ status:Int) -> ()) {
  17. DispatchQueue.global().async {
  18. Thread.sleep(forTimeInterval: 0.3);
  19. complention(1)
  20. }
  21. }
  22. override func compareFiles(_ fileName: String) -> NSArray? {
  23. let files = NSMutableArray()
  24. let checkDirectory = self.checkFileDirectory()
  25. // let originDirectory = self.originFileDirectory()
  26. let resultDirectory = self.resultFileDirectory()
  27. let fName = NSString(string: fileName).deletingPathExtension
  28. // let originPath = NSString(string: originDirectory).appendingPathComponent(fName+".pdf")
  29. let resultPath = NSString(string: resultDirectory).appendingPathComponent(fName+".jpg")
  30. // let checkPath = NSString(string: checkDirectory).appendingPathComponent(fName+"."+_extention)
  31. var isDirectory = ObjCBool(false)
  32. if FileManager.default.fileExists(atPath: resultPath, isDirectory:&isDirectory) {
  33. // compare screenshoot between result file with check file
  34. let items = NSMutableArray()
  35. if (isDirectory.boolValue) {
  36. let searchItems = try! FileManager.default.contentsOfDirectory(atPath: resultPath)
  37. for item in NSArray(array: searchItems) {
  38. let ext = NSString(string: item as! String).pathExtension.lowercased()
  39. if NSArray(array: ["jpg"]).contains(ext) {
  40. let fileName = NSString(string: fName+".jpg"+"/\(item as! String)").deletingPathExtension
  41. items.add(fileName)
  42. }
  43. }
  44. }else {
  45. items.add(fName)
  46. }
  47. let nitems = items.sortedArray { str1, str2 in
  48. let s1 = NSString(string: str1 as! String).deletingPathExtension
  49. let s2 = NSString(string: str2 as! String).deletingPathExtension
  50. if (NSString(string: s1).length != NSString(string: s2).length) {
  51. if (NSString(string: s1).length > NSString(string: s2).length) {
  52. return .orderedDescending
  53. }else {
  54. return .orderedAscending
  55. }
  56. }
  57. return NSString(string: s1).compare(s2)
  58. }
  59. for item in nitems {
  60. let subFileName = item as! String
  61. let rComparePath = NSString(string: resultDirectory).appendingPathComponent(subFileName+".jpg")
  62. let cComparePath = NSString(string: checkDirectory).appendingPathComponent(subFileName+".jpg")
  63. let fileInfo = NSMutableDictionary.fileInfoWith(fileName, // 实际文档名
  64. refFilePath: (isDirectory.boolValue ? (subFileName+".jpg") : nil),
  65. resultPath: rComparePath,
  66. comparePath: cComparePath,
  67. objc: self)
  68. files.add(fileInfo)
  69. }
  70. }
  71. return files
  72. }
  73. }