// // KMPageSizeTool.swift // PDF Reader Pro // // Created by tangchao on 2023/9/26. // import Cocoa class KMPageSizeTool: NSObject { class var KMPaperSizeNameA3: String { get { return NSLocalizedString("A3", comment: "") } } class var KMPaperSizeNameA4: String { get { return NSLocalizedString("A4", comment: "") } } class var KMPaperSizeNameA5: String { get { return NSLocalizedString("A5", comment: "") } } class var KMPaperSizeNameB5: String { get { return NSLocalizedString("B5", comment: "") } } class var KMPaperSizeNameEnvelope10: String { get { return NSLocalizedString("Envelope #10", comment: "") } } class var KMPaperSizeNameEnvelopeChoukei: String { get { return NSLocalizedString("Envelope Choukei 3", comment: "") } } class var KMPaperSizeNameEnvelopeDL: String { get { return NSLocalizedString("Envelope DL", comment: "") } } class var KMPaperSizeNameJISB5: String { get { return NSLocalizedString("JIS B5", comment: "") } } class var KMPaperSizeNameROC16K: String { get { return NSLocalizedString("ROC 16K", comment: "") } } class var KMPaperSizeNameSuper: String { get { return NSLocalizedString("Super B/A3", comment: "") } } class var KMPaperSizeNameTabloid: String { get { return NSLocalizedString("Tabloid", comment: "") } } class var KMPaperSizeNameTabloidOversize: String { get { return NSLocalizedString("Tabloid Oversize", comment: "") } } class var KMPaperSizeNameUSLegal: String { get { return NSLocalizedString("US Legal", comment: "") } } class var KMPaperSizeNameUSLetter: String { get { return NSLocalizedString("US Letter", comment: "") } } class func paperSize() -> [String] { return [KMPaperSizeNameA3, KMPaperSizeNameA4, KMPaperSizeNameA5, KMPaperSizeNameB5, KMPaperSizeNameEnvelope10, KMPaperSizeNameEnvelopeChoukei, KMPaperSizeNameEnvelopeDL, KMPaperSizeNameJISB5, KMPaperSizeNameROC16K, KMPaperSizeNameSuper, KMPaperSizeNameTabloid, KMPaperSizeNameTabloidOversize, KMPaperSizeNameUSLegal, KMPaperSizeNameUSLetter] } class func getPaperSize(paperName: String) -> NSSize { var size = CGSizeZero if (paperName == KMPaperSizeNameA3) { size = CGSizeMake(297, 420) } else if (paperName == KMPaperSizeNameA4){ size = CGSizeMake(210, 297) } else if (paperName == KMPaperSizeNameA5){ size = CGSizeMake(148, 210) } else if (paperName == KMPaperSizeNameB5){ size = CGSizeMake(176, 250) } else if (paperName == KMPaperSizeNameEnvelope10){ size = CGSizeMake(105, 241) } else if (paperName == KMPaperSizeNameEnvelopeChoukei){ size = CGSizeMake(120, 235) } else if (paperName == KMPaperSizeNameEnvelopeDL){ size = CGSizeMake(110, 220) } else if (paperName == KMPaperSizeNameJISB5){ size = CGSizeMake(182, 257) } else if (paperName == KMPaperSizeNameROC16K){ size = CGSizeMake(197, 273) } else if (paperName == KMPaperSizeNameSuper){ size = CGSizeMake(330, 483) } else if (paperName == KMPaperSizeNameTabloid){ size = CGSizeMake(279, 432) } else if (paperName == KMPaperSizeNameTabloidOversize){ size = CGSizeMake(305, 457) } else if (paperName == KMPaperSizeNameUSLegal){ size = CGSizeMake(216, 356) } else if (paperName == KMPaperSizeNameUSLetter){ size = CGSizeMake(216, 279) } return size } class func conversion(withUnit: String, value: CGFloat) -> String { var f = value if (withUnit == "cm") { f = value / 10.0 } else if (withUnit == "in") { f = value / 25.4 } else { f = value } if (fmod(f, 1) == 0) { //如果有一位小数点 return String(format: "%.0f", f) } else if (fmod(value * 10, 1) == 0) { //如果有两位小数点 return String(format: "%.1f", f) } else { return String(format: "%.2f", f) } } class func conversion(with unit: String, from funit: String, value: CGFloat) -> String { var f = value if (unit == funit) { } else if(unit == "cm") { if(funit == "mm") { f = value/10.0 } else if(funit == "in") { f = value * 25.4 } } else if(unit == "mm") { if(funit == "cm") { f = value * 10.0 } else if(funit == "in") { f = value * 10 * 25.4 } } else if(unit == "in") { if(funit == "cm") { f = value/25.4 } else if(funit == "mm") { f = value/10.0 f = value/25.4 } } if (fmod(f, 1) == 0) { //如果有一位小数点 return String(format: "%.0f", f) } else if (fmod(value * 10, 1) == 0) { //如果有两位小数点 return String(format: "%.1f", f) } else { return String(format: "%.2f", f) } } }