123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- //
- // KMPageSizeTool.swift
- // PDF Reader Pro
- //
- // Created by tangchao on 2023/9/26.
- //
- import Cocoa
- let KMNPaperSizeNameA3: String = KMLocalizedString("A3")
- let KMNPaperSizeNameA4: String = KMLocalizedString("A4")
- let KMNPaperSizeNameA5: String = KMLocalizedString("A5")
- let KMNPaperSizeNameB5: String = KMLocalizedString("B5")
- let KMNPaperSizeNameEnvelope10: String = KMLocalizedString("Envelope #10")
- let KMNPaperSizeNameEnvelopeChoukei: String = KMLocalizedString("Envelope Choukei 3")
- let KMNPaperSizeNameEnvelopeDL: String = KMLocalizedString("Envelope DL")
- let KMNPaperSizeNameJISB5: String = KMLocalizedString("JIS B5")
- let KMNPaperSizeNameROC16K: String = KMLocalizedString("ROC 16K")
- let KMNPaperSizeNameSuper: String = KMLocalizedString("Super B/A3")
- let KMNPaperSizeNameTabloid: String = KMLocalizedString("Tabloid")
- let KMNPaperSizeNameTabloidOversize: String = KMLocalizedString("Tabloid Oversize")
- let KMNPaperSizeNameUSLegal: String = KMLocalizedString("US Legal")
- let KMNPaperSizeNameUSLetter: String = KMLocalizedString("US Letter")
- @objcMembers class KMNPageSizeTool: NSObject {
-
- static func paperSize() -> [String] {
- return [KMNPaperSizeNameA3,
- KMNPaperSizeNameA4,
- KMNPaperSizeNameA5,
- KMNPaperSizeNameB5,
- KMNPaperSizeNameEnvelope10,
- KMNPaperSizeNameEnvelopeChoukei,
- KMNPaperSizeNameEnvelopeDL,
- KMNPaperSizeNameJISB5,
- KMNPaperSizeNameROC16K,
- KMNPaperSizeNameSuper,
- KMNPaperSizeNameTabloid,
- KMNPaperSizeNameTabloidOversize,
- KMNPaperSizeNameUSLegal,
- KMNPaperSizeNameUSLetter]
- }
-
- static func getPaperSize(paperName: String) -> NSSize {
- var size: NSSize = .zero
- if (paperName == KMNPaperSizeNameA3) {
- size = NSMakeSize(297, 420)
- } else if (paperName == KMNPaperSizeNameA4){
- size = NSMakeSize(210, 297)
- } else if (paperName == KMNPaperSizeNameA5){
- size = NSMakeSize(148, 210)
- } else if (paperName == KMNPaperSizeNameB5){
- size = NSMakeSize(176, 250)
- } else if (paperName == KMNPaperSizeNameEnvelope10){
- size = NSMakeSize(105, 241)
- } else if (paperName == KMNPaperSizeNameEnvelopeChoukei){
- size = NSMakeSize(120, 235)
- } else if (paperName == KMNPaperSizeNameEnvelopeDL){
- size = NSMakeSize(110, 220)
- } else if (paperName == KMNPaperSizeNameJISB5){
- size = NSMakeSize(182, 257)
- } else if (paperName == KMNPaperSizeNameROC16K){
- size = NSMakeSize(197, 273)
- } else if (paperName == KMNPaperSizeNameSuper){
- size = NSMakeSize(330, 483)
- } else if (paperName == KMNPaperSizeNameTabloid){
- size = NSMakeSize(279, 432)
- } else if (paperName == KMNPaperSizeNameTabloidOversize){
- size = NSMakeSize(305, 457)
- } else if (paperName == KMNPaperSizeNameUSLegal){
- size = NSMakeSize(216, 356)
- } else if (paperName == KMNPaperSizeNameUSLetter){
- size = NSMakeSize(216, 279)
- }
- return size
- }
-
- static 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)
- }
- }
-
- static 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 = f/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)
- }
- }
- }
|