PDFCompareTest.swift 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. complention(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. }