PDFCompareTest.swift 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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) -> Int {
  17. return 1
  18. }
  19. override func compareFiles(_ fileName: String) -> NSArray? {
  20. let files = NSMutableArray()
  21. let checkDirectory = self.checkFileDirectory()
  22. let originDirectory = self.originFileDirectory()
  23. let resultDirectory = self.resultFileDirectory()
  24. let fName = NSString(string: fileName).deletingPathExtension
  25. // let originPath = NSString(string: originDirectory).appendingPathComponent(fName+".pdf")
  26. let resultPath = NSString(string: resultDirectory).appendingPathComponent(fName+".jpg")
  27. // let checkPath = NSString(string: checkDirectory).appendingPathComponent(fName+"."+_extention)
  28. var isDirectory = ObjCBool(false)
  29. if FileManager.default.fileExists(atPath: resultPath, isDirectory:&isDirectory) {
  30. // compare screenshoot between result file with check file
  31. let items = NSMutableArray()
  32. if (isDirectory.boolValue) {
  33. let searchItems = try! FileManager.default.contentsOfDirectory(atPath: resultPath)
  34. for item in NSArray(array: searchItems) {
  35. let ext = NSString(string: item as! String).pathExtension.lowercased()
  36. if NSArray(array: ["jpg"]).contains(ext) {
  37. let fileName = NSString(string: fName+".jpg"+"/\(item as! String)").deletingPathExtension
  38. items.add(fileName)
  39. }
  40. }
  41. }else {
  42. items.add(fName)
  43. }
  44. let nitems = items.sortedArray { str1, str2 in
  45. let s1 = NSString(string: str1 as! String).deletingPathExtension
  46. let s2 = NSString(string: str2 as! String).deletingPathExtension
  47. if (NSString(string: s1).length != NSString(string: s2).length) {
  48. if (NSString(string: s1).length > NSString(string: s2).length) {
  49. return .orderedDescending
  50. }else {
  51. return .orderedAscending
  52. }
  53. }
  54. return NSString(string: s1).compare(s2)
  55. }
  56. for item in nitems {
  57. let subFileName = item as! String
  58. let rComparePath = NSString(string: resultDirectory).appendingPathComponent(subFileName+".jpg")
  59. let cComparePath = NSString(string: checkDirectory).appendingPathComponent(subFileName+".jpg")
  60. let fileInfo = NSMutableDictionary.fileInfoWith(fileName, // 实际文档名
  61. refFilePath: (isDirectory.boolValue ? (subFileName+".jpg") : nil),
  62. resultPath: rComparePath,
  63. comparePath: cComparePath,
  64. objc: self)
  65. files.add(fileInfo)
  66. }
  67. }
  68. return files
  69. }
  70. }