KMPageSizeTool.swift 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. //
  2. // KMPageSizeTool.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by tangchao on 2023/9/26.
  6. //
  7. import Cocoa
  8. class KMPageSizeTool: NSObject {
  9. class var KMPaperSizeNameA3: String {
  10. get {
  11. return NSLocalizedString("A3", comment: "")
  12. }
  13. }
  14. class var KMPaperSizeNameA4: String {
  15. get {
  16. return NSLocalizedString("A4", comment: "")
  17. }
  18. }
  19. class var KMPaperSizeNameA5: String {
  20. get {
  21. return NSLocalizedString("A5", comment: "")
  22. }
  23. }
  24. class var KMPaperSizeNameB5: String {
  25. get {
  26. return NSLocalizedString("B5", comment: "")
  27. }
  28. }
  29. class var KMPaperSizeNameEnvelope10: String {
  30. get {
  31. return NSLocalizedString("Envelope #10", comment: "")
  32. }
  33. }
  34. class var KMPaperSizeNameEnvelopeChoukei: String {
  35. get {
  36. return NSLocalizedString("Envelope Choukei 3", comment: "")
  37. }
  38. }
  39. class var KMPaperSizeNameEnvelopeDL: String {
  40. get {
  41. return NSLocalizedString("Envelope DL", comment: "")
  42. }
  43. }
  44. class var KMPaperSizeNameJISB5: String {
  45. get {
  46. return NSLocalizedString("JIS B5", comment: "")
  47. }
  48. }
  49. class var KMPaperSizeNameROC16K: String {
  50. get {
  51. return NSLocalizedString("ROC 16K", comment: "")
  52. }
  53. }
  54. class var KMPaperSizeNameSuper: String {
  55. get {
  56. return NSLocalizedString("Super B/A3", comment: "")
  57. }
  58. }
  59. class var KMPaperSizeNameTabloid: String {
  60. get {
  61. return NSLocalizedString("Tabloid", comment: "")
  62. }
  63. }
  64. class var KMPaperSizeNameTabloidOversize: String {
  65. get {
  66. return NSLocalizedString("Tabloid Oversize", comment: "")
  67. }
  68. }
  69. class var KMPaperSizeNameUSLegal: String {
  70. get {
  71. return NSLocalizedString("US Legal", comment: "")
  72. }
  73. }
  74. class var KMPaperSizeNameUSLetter: String {
  75. get {
  76. return NSLocalizedString("US Letter", comment: "")
  77. }
  78. }
  79. class func paperSize() -> [String] {
  80. return [KMPaperSizeNameA3,
  81. KMPaperSizeNameA4,
  82. KMPaperSizeNameA5,
  83. KMPaperSizeNameB5,
  84. KMPaperSizeNameEnvelope10,
  85. KMPaperSizeNameEnvelopeChoukei,
  86. KMPaperSizeNameEnvelopeDL,
  87. KMPaperSizeNameJISB5,
  88. KMPaperSizeNameROC16K,
  89. KMPaperSizeNameSuper,
  90. KMPaperSizeNameTabloid,
  91. KMPaperSizeNameTabloidOversize,
  92. KMPaperSizeNameUSLegal,
  93. KMPaperSizeNameUSLetter]
  94. }
  95. class func getPaperSize(paperName: String) -> NSSize {
  96. var size = CGSizeZero
  97. if (paperName == KMPaperSizeNameA3) {
  98. size = CGSizeMake(297, 420)
  99. } else if (paperName == KMPaperSizeNameA4){
  100. size = CGSizeMake(210, 297)
  101. } else if (paperName == KMPaperSizeNameA5){
  102. size = CGSizeMake(148, 210)
  103. } else if (paperName == KMPaperSizeNameB5){
  104. size = CGSizeMake(176, 250)
  105. } else if (paperName == KMPaperSizeNameEnvelope10){
  106. size = CGSizeMake(105, 241)
  107. } else if (paperName == KMPaperSizeNameEnvelopeChoukei){
  108. size = CGSizeMake(120, 235)
  109. } else if (paperName == KMPaperSizeNameEnvelopeDL){
  110. size = CGSizeMake(110, 220)
  111. } else if (paperName == KMPaperSizeNameJISB5){
  112. size = CGSizeMake(182, 257)
  113. } else if (paperName == KMPaperSizeNameROC16K){
  114. size = CGSizeMake(197, 273)
  115. } else if (paperName == KMPaperSizeNameSuper){
  116. size = CGSizeMake(330, 483)
  117. } else if (paperName == KMPaperSizeNameTabloid){
  118. size = CGSizeMake(279, 432)
  119. } else if (paperName == KMPaperSizeNameTabloidOversize){
  120. size = CGSizeMake(305, 457)
  121. } else if (paperName == KMPaperSizeNameUSLegal){
  122. size = CGSizeMake(216, 356)
  123. } else if (paperName == KMPaperSizeNameUSLetter){
  124. size = CGSizeMake(216, 279)
  125. }
  126. return size
  127. }
  128. class func conversion(withUnit: String, value: CGFloat) -> String {
  129. var f = value
  130. if (withUnit == "cm") {
  131. f = value / 10.0
  132. } else if (withUnit == "in") {
  133. f = value / 25.4
  134. } else {
  135. f = value
  136. }
  137. if (fmod(f, 1) == 0) { //如果有一位小数点
  138. return String(format: "%.0f", f)
  139. } else if (fmod(value * 10, 1) == 0) { //如果有两位小数点
  140. return String(format: "%.1f", f)
  141. } else {
  142. return String(format: "%.2f", f)
  143. }
  144. }
  145. class func conversion(with unit: String, from funit: String, value: CGFloat) -> String {
  146. var f = value
  147. if (unit == funit) {
  148. } else if(unit == "cm") {
  149. if(funit == "mm") {
  150. f = value/10.0
  151. } else if(funit == "in") {
  152. f = value * 25.4
  153. }
  154. } else if(unit == "mm") {
  155. if(funit == "cm") {
  156. f = value * 10.0
  157. } else if(funit == "in") {
  158. f = value * 10 * 25.4
  159. }
  160. } else if(unit == "in") {
  161. if(funit == "cm") {
  162. f = value/25.4
  163. } else if(funit == "mm") {
  164. f = value/10.0
  165. f = value/25.4
  166. }
  167. }
  168. if (fmod(f, 1) == 0) { //如果有一位小数点
  169. return String(format: "%.0f", f)
  170. } else if (fmod(value * 10, 1) == 0) { //如果有两位小数点
  171. return String(format: "%.1f", f)
  172. } else {
  173. return String(format: "%.2f", f)
  174. }
  175. }
  176. }