Browse Source

【2025】【综合】功能串接

niehaoyu 2 months ago
parent
commit
70b3a1f085
33 changed files with 419 additions and 6678 deletions
  1. 0 206
      PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMMergeSettingWindowController.swift
  2. 0 269
      PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMMergeSettingWindowController.xib
  3. 0 1346
      PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMMergeViewController.swift
  4. 0 52
      PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMMergeViewController.xib
  5. 0 206
      PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMPageRangePickerWindowController.swift
  6. 0 189
      PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMPageRangePickerWindowController.xib
  7. 89 140
      PDF Office/PDF Master/Class/PDFTools/Merge/MergeNew/KMMergeWindowController.swift
  8. 9 9
      PDF Office/PDF Master/Class/PDFTools/Merge/MergeNew/KMMergeWindowController.xib
  9. 1 4
      PDF Office/PDF Master/Class/PDFTools/Merge/MergeNew/View/KMMergeBlankView/KMMergeBlankView.swift
  10. 4 32
      PDF Office/PDF Master/Class/PDFTools/Merge/Model/KMFileAttribute.swift
  11. 0 45
      PDF Office/PDF Master/Class/PDFTools/Merge/OCPart/KMPDFEditAppendWindow.h
  12. 0 1752
      PDF Office/PDF Master/Class/PDFTools/Merge/OCPart/KMPDFEditAppendWindow.m
  13. 0 661
      PDF Office/PDF Master/Class/PDFTools/Merge/OCPart/KMPDFEditAppendWindow.xib
  14. 3 3
      PDF Office/PDF Master/Class/PDFTools/Merge/OCPart/KMSavePanelAccessoryController.xib
  15. 0 164
      PDF Office/PDF Master/Class/PDFTools/Merge/View/KMMergeCollectionPageViewItem.swift
  16. 0 22
      PDF Office/PDF Master/Class/PDFTools/Merge/View/KMMergeCollectionPageViewItem.xib
  17. 0 174
      PDF Office/PDF Master/Class/PDFTools/Merge/View/KMMergeCollectionViewItem.swift
  18. 0 22
      PDF Office/PDF Master/Class/PDFTools/Merge/View/KMMergeCollectionViewItem.xib
  19. 0 66
      PDF Office/PDF Master/Class/PDFTools/Merge/View/KMMergeSelect.swift
  20. 0 386
      PDF Office/PDF Master/Class/PDFTools/Merge/View/KMMergeTitleBar.swift
  21. 0 76
      PDF Office/PDF Master/Class/PDFTools/Merge/View/KMPDFMergeFileNameTabelViewCell.swift
  22. 0 155
      PDF Office/PDF Master/Class/PDFTools/Merge/View/KMPDFMergePageRangeTabelViewCell.swift
  23. 0 63
      PDF Office/PDF Master/Class/PDFTools/Merge/View/KMPDFMergeSizeTabelViewCell.swift
  24. 4 9
      PDF Office/PDF Master/Class/PDFTools/TTS/WindowController/KMTTSWindowController.swift
  25. 3 164
      PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift
  26. 1 25
      PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+UI.swift
  27. 218 28
      PDF Office/PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift
  28. 2 0
      PDF Office/PDF Master/KMClass/KMPDFViewController/Toolbar/KMPDFSecToolbarController.swift
  29. 0 1
      PDF Office/PDF Master/PDF_Reader_Pro DMG-Bridging-Header.h
  30. 0 1
      PDF Office/PDF Master/PDF_Reader_Pro Edition-Bridging-Header.h
  31. 1 2
      PDF Office/PDF Master/PDF_Reader_Pro-Bridging-Header.h
  32. 0 138
      PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj
  33. 84 268
      PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

+ 0 - 206
PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMMergeSettingWindowController.swift

@@ -1,206 +0,0 @@
-//
-//  KMMergeSettingWindowController.swift
-//  PDF Reader Pro
-//
-//  Created by tangchao on 2022/11/25.
-//
-
-import Cocoa
-
-typealias KMMergeSettingWindowControllerCancelClick = (_ window: NSWindow)->()
-typealias KMMergeSettingWindowControllerMergeClick = (_ windowController: NSWindowController)->()
-class KMMergeSettingWindowController: NSWindowController {
-
-    @IBOutlet weak var titleLabel: NSTextField!
-    
-    @IBOutlet weak var odd_even_mergeComboBox: NSButton!
-    @IBOutlet weak var helpButton: NSButton!
-    
-    @IBOutlet weak var pageSizeLabel: NSTextField!
-    @IBOutlet weak var pageSizeComboBox: NSComboBox!
-    
-    @IBOutlet weak var customSizeView: NSView!
-    
-    @IBOutlet weak var customWitdhView: NSView!
-    @IBOutlet weak var customWidthTextField: NSTextField!
-    @IBOutlet weak var customHeigthView: NSView!
-    @IBOutlet weak var customHeightTextField: NSTextField!
-    
-    @IBOutlet weak var mergeButton: NSButton!
-    @IBOutlet weak var cancelButton: NSButton!
-    
-    var selectedIndex: Int = 0
-    
-    var cancelClick: KMMergeSettingWindowControllerCancelClick!
-    var mergeClick: KMMergeSettingWindowControllerMergeClick!
-    
-    override func windowDidLoad() {
-        super.windowDidLoad()
-
-        titleLabel.stringValue = NSLocalizedString("合并设置", comment: "")
-        
-        odd_even_mergeComboBox.title = NSLocalizedString("奇偶页面穿插合并", comment: "")
-        odd_even_mergeComboBox.state = .off
-        helpButton.target = self
-        helpButton.action = #selector(helpButtonAction)
-        
-        pageSizeLabel.stringValue = NSLocalizedString("页面大小", comment: "")
-        pageSizeComboBox.stringValue = NSLocalizedString("原始页面大小", comment: "")
-        pageSizeComboBox.removeAllItems()
-        pageSizeComboBox.addItems(withObjectValues: [NSLocalizedString("原始页面大小", comment: ""),
-                                                     NSLocalizedString("A4", comment: ""),
-                                                     NSLocalizedString("A3", comment: ""),
-                                                     NSLocalizedString("U.S.Letter", comment: ""),
-                                                     NSLocalizedString("U.S.Legal", comment: ""),
-                                                     NSLocalizedString("自定义(595*841mm)", comment: "")])
-        pageSizeComboBox.delegate = self
-        pageSizeComboBox.isEditable = false
-        customSizeView.isHidden = true
-        
-        for view in [customWitdhView, customHeigthView] {
-            view?.wantsLayer = true
-            view?.layer?.borderWidth = 1
-            view?.layer?.borderColor = NSColor.black.cgColor
-            view?.layer?.cornerRadius = 4
-        }
-        for textField in [customWidthTextField, customHeightTextField] {
-            textField?.focusRingType = .none
-            textField?.delegate = self
-        }
-        
-        mergeButton.title = NSLocalizedString("合并", comment: "")
-        mergeButton.target = self
-        mergeButton.action = #selector(mergeButtonAction)
-        cancelButton.title = NSLocalizedString("取消", comment: "")
-        cancelButton.target = self
-        cancelButton.action = #selector(cancelButtonAction)
-    }
-    
-    @objc func mergeButtonAction() {
-        guard let callback = mergeClick else {
-            return
-        }
-        
-        callback(self)
-    }
-    
-    @objc func cancelButtonAction() {
-        guard let callback = cancelClick else {
-            return
-        }
-        
-        callback(self.window!)
-    }
-    
-    @objc func helpButtonAction() {
-        let popover = NSPopover()
-        popover.behavior = .transient
-        let controller = KMMergePopoverViewController.init(nibName: "KMMergePopoverViewController", bundle: nil)
-        popover.contentViewController = controller
-        
-        popover .show(relativeTo: helpButton.bounds, of: helpButton, preferredEdge: .maxY)
-    }
-}
-
-extension KMMergeSettingWindowController: NSComboBoxDelegate {
-    func comboBoxSelectionDidChange(_ notification: Notification) {
-        if notification.object as! NSComboBox != pageSizeComboBox {
-            return
-        }
-        
-        let box: NSComboBox = notification.object as! NSComboBox
-        let index = box.indexOfSelectedItem
-        if index < 0 {
-            return
-        }
-        
-        selectedIndex = index
-        if index == 5 {
-            self.customSizeView.isHidden = false
-            let value: String = pageSizeComboBox.itemObjectValue(at: pageSizeComboBox.numberOfItems-1) as! String
-            let array = value.components(separatedBy: "*")
-            if array.count <= 1 {
-                self.customWidthTextField.stringValue = "595"
-                self.customHeightTextField.stringValue = "841"
-                return
-            }
-            var heigth: String = ""
-            heigth = (array.last?.components(separatedBy: "mm").first!)!
-            
-            var width: String = ""
-            width = (array.first?.components(separatedBy: NSLocalizedString("(", comment: "")).last)!
-            
-            self.customWidthTextField.stringValue = width
-            self.customHeightTextField.stringValue = heigth
-        } else {
-            self.customSizeView.isHidden = true
-        }
-    }
-    
-    func controlTextDidChange(_ obj: Notification) {
-        if customWidthTextField.isEqual(to: obj.object) {
-            let textField: NSTextField = obj.object as! NSTextField
-            var value: String = ""
-            for ch in textField.stringValue {
-                if ch != "0" && ch != "1" && ch != "2" && ch != "3" && ch != "4" && ch != "5" && ch != "6" && ch != "7" && ch != "8" && ch != "9" {
-
-                } else {
-                    if value.isEmpty && ch == "0" {
-                        
-                    } else {
-                        value.append(ch)
-                    }
-                }
-            }
-            customWidthTextField.stringValue = value
-            
-            pageSizeComboBox.removeAllItems()
-            var string: String = ""
-            string.append(NSLocalizedString("自定义", comment: ""))
-            string.append("(")
-            string.append(customWidthTextField.stringValue)
-            string.append("*")
-            string.append(customHeightTextField.stringValue)
-            string.append("mm)")
-            pageSizeComboBox.addItems(withObjectValues: [NSLocalizedString("原始页面大小", comment: ""),
-                                                         "A4",
-                                                         "A3",
-                                                         "U.S.Letter",
-                                                         "U.S.Legal",
-                                                         string])
-            pageSizeComboBox.stringValue = string
-        } else if customHeightTextField.isEqual(to: obj.object) {
-            let textField: NSTextField = obj.object as! NSTextField
-            var value: String = ""
-            for ch in textField.stringValue {
-                if ch != "0" && ch != "1" && ch != "2" && ch != "3" && ch != "4" && ch != "5" && ch != "6" && ch != "7" && ch != "8" && ch != "9" {
-
-                } else {
-                    if value.isEmpty && ch == "0" {
-                        
-                    } else {
-                        value.append(ch)
-                    }
-                }
-            }
-            customHeightTextField.stringValue = value
-            
-            pageSizeComboBox.removeAllItems()
-            var string: String = ""
-            string.append(NSLocalizedString("自定义", comment: ""))
-            string.append("(")
-            string.append(customWidthTextField.stringValue)
-            string.append("*")
-            string.append(customHeightTextField.stringValue)
-            string.append("mm)")
-            pageSizeComboBox.addItems(withObjectValues: [NSLocalizedString("原始页面大小", comment: ""),
-                                                         "A4",
-                                                         "A3",
-                                                         "U.S.Letter",
-                                                         "U.S.Legal",
-                                                         string])
-            pageSizeComboBox.stringValue = string
-        }
-    }
-}
-

+ 0 - 269
PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMMergeSettingWindowController.xib

@@ -1,269 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22155" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
-    <dependencies>
-        <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22155"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMMergeSettingWindowController" customModule="PDF_Master" customModuleProvider="target">
-            <connections>
-                <outlet property="cancelButton" destination="EGu-ht-Tks" id="KsN-hV-jyh"/>
-                <outlet property="customHeightTextField" destination="T3s-pk-EiI" id="IrM-9B-EHR"/>
-                <outlet property="customHeigthView" destination="HpK-Iy-0Zo" id="cY5-UY-Sym"/>
-                <outlet property="customSizeView" destination="zGa-vp-9ZQ" id="ySj-cz-SCD"/>
-                <outlet property="customWidthTextField" destination="s7L-VD-F6O" id="e3V-jg-nl2"/>
-                <outlet property="customWitdhView" destination="4li-5j-0ZV" id="84V-Uf-RHV"/>
-                <outlet property="helpButton" destination="aPX-cJ-kxk" id="huT-3a-sTm"/>
-                <outlet property="mergeButton" destination="lfY-N7-QFl" id="qWs-Xx-mpb"/>
-                <outlet property="odd_even_mergeComboBox" destination="6ob-kd-7I5" id="opj-SB-obE"/>
-                <outlet property="pageSizeComboBox" destination="szg-A0-OEW" id="UIx-fD-4yp"/>
-                <outlet property="pageSizeLabel" destination="Yeu-bT-U31" id="NRw-Ih-hwe"/>
-                <outlet property="titleLabel" destination="Jco-Ba-RRe" id="uDF-Ed-iLp"/>
-                <outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
-            </connections>
-        </customObject>
-        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
-        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
-        <window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
-            <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
-            <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
-            <rect key="contentRect" x="194" y="240" width="340" height="270"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/>
-            <value key="minSize" type="size" width="340" height="270"/>
-            <value key="maxSize" type="size" width="340" height="270"/>
-            <view key="contentView" id="se5-gp-TjO">
-                <rect key="frame" x="0.0" y="0.0" width="340" height="270"/>
-                <autoresizingMask key="autoresizingMask"/>
-                <subviews>
-                    <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="noe-Dy-Qyd" userLabel="titleBarBox">
-                        <rect key="frame" x="0.0" y="226" width="340" height="44"/>
-                        <view key="contentView" id="Uue-2w-Vm2">
-                            <rect key="frame" x="0.0" y="0.0" width="340" height="44"/>
-                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                            <subviews>
-                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Jco-Ba-RRe">
-                                    <rect key="frame" x="16" y="18" width="37" height="16"/>
-                                    <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="xU1-Ds-xu8">
-                                        <font key="font" usesAppearanceFont="YES"/>
-                                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                    </textFieldCell>
-                                </textField>
-                            </subviews>
-                            <constraints>
-                                <constraint firstItem="Jco-Ba-RRe" firstAttribute="leading" secondItem="Uue-2w-Vm2" secondAttribute="leading" constant="18" id="aMe-uq-vno"/>
-                                <constraint firstItem="Jco-Ba-RRe" firstAttribute="top" secondItem="Uue-2w-Vm2" secondAttribute="top" constant="10" id="fLC-9h-AFn"/>
-                            </constraints>
-                        </view>
-                        <constraints>
-                            <constraint firstAttribute="height" constant="44" id="0CP-Oi-zrn"/>
-                        </constraints>
-                    </box>
-                    <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="gQy-QH-hhZ" userLabel="contentBox">
-                        <rect key="frame" x="0.0" y="60" width="340" height="166"/>
-                        <view key="contentView" id="MjC-4w-bDK">
-                            <rect key="frame" x="0.0" y="0.0" width="340" height="166"/>
-                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                            <subviews>
-                                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="6ob-kd-7I5">
-                                    <rect key="frame" x="16" y="134" width="65" height="18"/>
-                                    <buttonCell key="cell" type="check" title="Check" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="AXg-zk-5Aa">
-                                        <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
-                                        <font key="font" metaFont="system"/>
-                                    </buttonCell>
-                                </button>
-                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Yeu-bT-U31">
-                                    <rect key="frame" x="16" y="94" width="37" height="16"/>
-                                    <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="E0F-qE-9cZ">
-                                        <font key="font" metaFont="system"/>
-                                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                    </textFieldCell>
-                                </textField>
-                                <comboBox focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="szg-A0-OEW">
-                                    <rect key="frame" x="17" y="62" width="264" height="23"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="260" id="nx8-gG-k67"/>
-                                    </constraints>
-                                    <comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" completes="NO" numberOfVisibleItems="5" id="EAB-lg-4NZ">
-                                        <font key="font" metaFont="system"/>
-                                        <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                        <objectValues>
-                                            <string>Item 1</string>
-                                            <string>Item 2</string>
-                                            <string>Item 3</string>
-                                        </objectValues>
-                                    </comboBoxCell>
-                                </comboBox>
-                                <button horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aPX-cJ-kxk">
-                                    <rect key="frame" x="90" y="129" width="25" height="25"/>
-                                    <buttonCell key="cell" type="help" bezelStyle="helpButton" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="6Tr-da-VVT">
-                                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                        <font key="font" metaFont="system"/>
-                                    </buttonCell>
-                                </button>
-                                <customView translatesAutoresizingMaskIntoConstraints="NO" id="zGa-vp-9ZQ">
-                                    <rect key="frame" x="0.0" y="13" width="340" height="46"/>
-                                    <subviews>
-                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="4li-5j-0ZV" userLabel="widthCustomView">
-                                            <rect key="frame" x="18" y="8" width="60" height="30"/>
-                                            <subviews>
-                                                <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="s7L-VD-F6O">
-                                                    <rect key="frame" x="0.0" y="6" width="60" height="18"/>
-                                                    <constraints>
-                                                        <constraint firstAttribute="height" constant="18" id="MRh-Lh-kSL"/>
-                                                    </constraints>
-                                                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" drawsBackground="YES" id="IB5-d0-W4O">
-                                                        <font key="font" usesAppearanceFont="YES"/>
-                                                        <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                                    </textFieldCell>
-                                                </textField>
-                                            </subviews>
-                                            <constraints>
-                                                <constraint firstItem="s7L-VD-F6O" firstAttribute="leading" secondItem="4li-5j-0ZV" secondAttribute="leading" id="3do-7C-qpY"/>
-                                                <constraint firstAttribute="height" constant="30" id="GAR-0O-kZj"/>
-                                                <constraint firstItem="s7L-VD-F6O" firstAttribute="centerY" secondItem="4li-5j-0ZV" secondAttribute="centerY" id="gmP-5r-4Iv"/>
-                                                <constraint firstAttribute="width" constant="60" id="q5Z-a7-5TH"/>
-                                                <constraint firstAttribute="trailing" secondItem="s7L-VD-F6O" secondAttribute="trailing" id="tFo-qR-rHg"/>
-                                            </constraints>
-                                        </customView>
-                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Ce3-Kh-f3d">
-                                            <rect key="frame" x="76" y="15" width="36" height="16"/>
-                                            <textFieldCell key="cell" lineBreakMode="clipping" alignment="center" title="x" id="CUS-jz-cDX">
-                                                <font key="font" metaFont="system"/>
-                                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                                <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                            </textFieldCell>
-                                        </textField>
-                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="HpK-Iy-0Zo" userLabel="heigthCustomView">
-                                            <rect key="frame" x="110" y="8" width="60" height="30"/>
-                                            <subviews>
-                                                <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="T3s-pk-EiI">
-                                                    <rect key="frame" x="0.0" y="7" width="60" height="16"/>
-                                                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" drawsBackground="YES" id="uqz-1K-ngc">
-                                                        <font key="font" usesAppearanceFont="YES"/>
-                                                        <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                                    </textFieldCell>
-                                                </textField>
-                                            </subviews>
-                                            <constraints>
-                                                <constraint firstItem="T3s-pk-EiI" firstAttribute="leading" secondItem="HpK-Iy-0Zo" secondAttribute="leading" id="5rg-C3-qza"/>
-                                                <constraint firstItem="T3s-pk-EiI" firstAttribute="centerY" secondItem="HpK-Iy-0Zo" secondAttribute="centerY" id="9mU-3k-yih"/>
-                                                <constraint firstAttribute="width" constant="60" id="Fc2-Jo-2GM"/>
-                                                <constraint firstAttribute="height" constant="30" id="Tgo-Bf-n07"/>
-                                                <constraint firstAttribute="trailing" secondItem="T3s-pk-EiI" secondAttribute="trailing" id="dqf-UH-bwM"/>
-                                            </constraints>
-                                        </customView>
-                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Eld-fp-MvF">
-                                            <rect key="frame" x="180" y="15" width="27" height="16"/>
-                                            <textFieldCell key="cell" lineBreakMode="clipping" title="mm" id="Ttl-gg-tp3">
-                                                <font key="font" metaFont="system"/>
-                                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                                <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                            </textFieldCell>
-                                        </textField>
-                                    </subviews>
-                                    <constraints>
-                                        <constraint firstItem="HpK-Iy-0Zo" firstAttribute="centerY" secondItem="zGa-vp-9ZQ" secondAttribute="centerY" id="1bb-YG-4hA"/>
-                                        <constraint firstAttribute="width" constant="340" id="3ID-Ph-mA5"/>
-                                        <constraint firstItem="HpK-Iy-0Zo" firstAttribute="leading" secondItem="Ce3-Kh-f3d" secondAttribute="trailing" id="3Nk-MG-3Hd"/>
-                                        <constraint firstItem="Ce3-Kh-f3d" firstAttribute="leading" secondItem="4li-5j-0ZV" secondAttribute="trailing" id="KIw-AU-8Rp"/>
-                                        <constraint firstAttribute="height" constant="46" id="Orb-v9-Hxu"/>
-                                        <constraint firstItem="4li-5j-0ZV" firstAttribute="centerY" secondItem="zGa-vp-9ZQ" secondAttribute="centerY" id="WQT-Oc-3Yc"/>
-                                        <constraint firstItem="Eld-fp-MvF" firstAttribute="leading" secondItem="HpK-Iy-0Zo" secondAttribute="trailing" constant="12" id="Xvw-R0-bcd"/>
-                                        <constraint firstItem="Eld-fp-MvF" firstAttribute="top" secondItem="zGa-vp-9ZQ" secondAttribute="top" constant="15" id="el0-jC-YPe"/>
-                                        <constraint firstItem="4li-5j-0ZV" firstAttribute="leading" secondItem="zGa-vp-9ZQ" secondAttribute="leading" constant="18" id="h6b-H6-pIq"/>
-                                        <constraint firstItem="Ce3-Kh-f3d" firstAttribute="centerY" secondItem="zGa-vp-9ZQ" secondAttribute="centerY" id="iRA-Me-xqv"/>
-                                        <constraint firstItem="HpK-Iy-0Zo" firstAttribute="leading" secondItem="4li-5j-0ZV" secondAttribute="trailing" constant="32" id="jXU-pk-xGD"/>
-                                    </constraints>
-                                </customView>
-                            </subviews>
-                            <constraints>
-                                <constraint firstItem="aPX-cJ-kxk" firstAttribute="leading" secondItem="6ob-kd-7I5" secondAttribute="trailing" constant="12" id="0C7-7a-aZk"/>
-                                <constraint firstItem="szg-A0-OEW" firstAttribute="top" secondItem="Yeu-bT-U31" secondAttribute="bottom" constant="10" id="0Mx-bX-z8T"/>
-                                <constraint firstItem="szg-A0-OEW" firstAttribute="bottom" secondItem="zGa-vp-9ZQ" secondAttribute="top" constant="-5" id="9Qg-jQ-ldc"/>
-                                <constraint firstItem="6ob-kd-7I5" firstAttribute="top" secondItem="MjC-4w-bDK" secondAttribute="top" constant="15" id="I7r-iA-7Dx"/>
-                                <constraint firstItem="zGa-vp-9ZQ" firstAttribute="leading" secondItem="MjC-4w-bDK" secondAttribute="leading" id="Pmj-kX-vwJ"/>
-                                <constraint firstItem="Yeu-bT-U31" firstAttribute="leading" secondItem="MjC-4w-bDK" secondAttribute="leading" constant="18" id="bY3-NJ-zlU"/>
-                                <constraint firstItem="Yeu-bT-U31" firstAttribute="top" secondItem="6ob-kd-7I5" secondAttribute="bottom" constant="25" id="oCt-LM-8WV"/>
-                                <constraint firstItem="szg-A0-OEW" firstAttribute="leading" secondItem="MjC-4w-bDK" secondAttribute="leading" constant="18" id="sX3-BE-twj"/>
-                                <constraint firstItem="6ob-kd-7I5" firstAttribute="leading" secondItem="MjC-4w-bDK" secondAttribute="leading" constant="18" id="uPF-sE-4JZ"/>
-                                <constraint firstItem="aPX-cJ-kxk" firstAttribute="centerY" secondItem="6ob-kd-7I5" secondAttribute="centerY" id="vLe-hV-fcS"/>
-                            </constraints>
-                        </view>
-                        <constraints>
-                            <constraint firstAttribute="width" constant="340" id="FVr-AN-uEI"/>
-                        </constraints>
-                    </box>
-                    <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="jyw-7M-ewf" userLabel="bottomBarBox">
-                        <rect key="frame" x="0.0" y="0.0" width="340" height="60"/>
-                        <view key="contentView" id="hBS-ni-5nK">
-                            <rect key="frame" x="0.0" y="0.0" width="340" height="60"/>
-                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                            <subviews>
-                                <box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="cYA-aF-exB">
-                                    <rect key="frame" x="0.0" y="57" width="340" height="5"/>
-                                </box>
-                                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="lfY-N7-QFl">
-                                    <rect key="frame" x="235" y="8" width="94" height="42"/>
-                                    <buttonCell key="cell" type="push" title="Button" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="abI-bp-TL1">
-                                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                        <font key="font" metaFont="system"/>
-                                        <string key="keyEquivalent" base64-UTF8="YES">
-DQ
-</string>
-                                    </buttonCell>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="30" id="9K6-Uu-d2b"/>
-                                        <constraint firstAttribute="width" constant="80" id="RXh-Eq-IIv"/>
-                                    </constraints>
-                                </button>
-                                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="EGu-ht-Tks">
-                                    <rect key="frame" x="145" y="13" width="94" height="32"/>
-                                    <buttonCell key="cell" type="push" title="Button" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Y0F-70-xn6">
-                                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                        <font key="font" metaFont="system"/>
-                                    </buttonCell>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="80" id="U0h-i0-Do5"/>
-                                    </constraints>
-                                </button>
-                            </subviews>
-                            <constraints>
-                                <constraint firstItem="cYA-aF-exB" firstAttribute="leading" secondItem="hBS-ni-5nK" secondAttribute="leading" id="5b5-kA-Pad"/>
-                                <constraint firstItem="cYA-aF-exB" firstAttribute="top" secondItem="hBS-ni-5nK" secondAttribute="top" id="BcM-rq-hzh"/>
-                                <constraint firstAttribute="trailing" secondItem="lfY-N7-QFl" secondAttribute="trailing" constant="18" id="C2a-Ci-TJO"/>
-                                <constraint firstItem="lfY-N7-QFl" firstAttribute="centerY" secondItem="hBS-ni-5nK" secondAttribute="centerY" id="Nv4-z2-StH"/>
-                                <constraint firstAttribute="trailing" secondItem="cYA-aF-exB" secondAttribute="trailing" id="Q4v-19-e54"/>
-                                <constraint firstItem="EGu-ht-Tks" firstAttribute="centerY" secondItem="hBS-ni-5nK" secondAttribute="centerY" id="ceP-8I-Da6"/>
-                                <constraint firstItem="lfY-N7-QFl" firstAttribute="leading" secondItem="EGu-ht-Tks" secondAttribute="trailing" constant="10" id="weh-w0-2eB"/>
-                            </constraints>
-                        </view>
-                        <constraints>
-                            <constraint firstAttribute="height" constant="60" id="Tk4-fL-vc2"/>
-                        </constraints>
-                    </box>
-                </subviews>
-                <constraints>
-                    <constraint firstAttribute="trailing" secondItem="jyw-7M-ewf" secondAttribute="trailing" id="0SR-5f-EzF"/>
-                    <constraint firstItem="noe-Dy-Qyd" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" id="0eP-mV-xOw"/>
-                    <constraint firstAttribute="bottom" secondItem="jyw-7M-ewf" secondAttribute="bottom" id="6JW-ZF-MMb"/>
-                    <constraint firstItem="gQy-QH-hhZ" firstAttribute="top" secondItem="noe-Dy-Qyd" secondAttribute="bottom" id="83O-kR-0kE"/>
-                    <constraint firstItem="noe-Dy-Qyd" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="L7e-6H-VWi"/>
-                    <constraint firstItem="gQy-QH-hhZ" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="ffd-zq-KnR"/>
-                    <constraint firstAttribute="trailing" secondItem="noe-Dy-Qyd" secondAttribute="trailing" id="m7m-aU-vgF"/>
-                    <constraint firstItem="jyw-7M-ewf" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="skj-10-yVQ"/>
-                    <constraint firstItem="jyw-7M-ewf" firstAttribute="top" secondItem="gQy-QH-hhZ" secondAttribute="bottom" id="xoc-zy-dCX"/>
-                </constraints>
-            </view>
-            <connections>
-                <outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
-            </connections>
-            <point key="canvasLocation" x="-54.5" y="144"/>
-        </window>
-    </objects>
-</document>

File diff suppressed because it is too large
+ 0 - 1346
PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMMergeViewController.swift


+ 0 - 52
PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMMergeViewController.xib

@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22155" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
-    <dependencies>
-        <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22155"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMMergeViewController" customModule="PDF_Master" customModuleProvider="target">
-            <connections>
-                <outlet property="contentBox" destination="9Di-TJ-wWc" id="msZ-pj-qFD"/>
-                <outlet property="titleBar" destination="TdV-XL-tj1" id="a9T-wN-f0L"/>
-                <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
-            </connections>
-        </customObject>
-        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
-        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
-        <customView id="Hz6-mo-xeY">
-            <rect key="frame" x="0.0" y="0.0" width="1022" height="572"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <box boxType="custom" borderWidth="0.0" title="Box" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="TdV-XL-tj1">
-                    <rect key="frame" x="0.0" y="528" width="1022" height="44"/>
-                    <view key="contentView" id="37v-MR-bz7">
-                        <rect key="frame" x="0.0" y="0.0" width="1022" height="44"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                    </view>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="44" id="cuu-Hm-2W7"/>
-                    </constraints>
-                </box>
-                <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="9Di-TJ-wWc">
-                    <rect key="frame" x="0.0" y="0.0" width="1022" height="528"/>
-                    <view key="contentView" id="NPQ-Io-FpK">
-                        <rect key="frame" x="0.0" y="0.0" width="1022" height="528"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                    </view>
-                </box>
-            </subviews>
-            <constraints>
-                <constraint firstItem="9Di-TJ-wWc" firstAttribute="top" secondItem="TdV-XL-tj1" secondAttribute="bottom" id="Vs4-m6-UQs"/>
-                <constraint firstItem="9Di-TJ-wWc" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" id="aEe-AP-zzy"/>
-                <constraint firstAttribute="trailing" secondItem="9Di-TJ-wWc" secondAttribute="trailing" id="f0F-cq-3Us"/>
-                <constraint firstAttribute="bottom" secondItem="9Di-TJ-wWc" secondAttribute="bottom" id="k5e-AN-K0c"/>
-                <constraint firstItem="TdV-XL-tj1" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" id="oIk-pT-oip"/>
-                <constraint firstAttribute="trailing" secondItem="TdV-XL-tj1" secondAttribute="trailing" id="qA5-mi-sEH"/>
-                <constraint firstItem="TdV-XL-tj1" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" id="v0Y-uj-knh"/>
-            </constraints>
-            <point key="canvasLocation" x="357" y="147"/>
-        </customView>
-    </objects>
-</document>

+ 0 - 206
PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMPageRangePickerWindowController.swift

@@ -1,206 +0,0 @@
-//
-//  KMPageRangePickerWindowController.swift
-//  PDF Reader Pro
-//
-//  Created by tangchao on 2022/11/25.
-//
-
-import Cocoa
-
-typealias KMPageRangePickerWindowControllerCancelClick = (_ window: NSWindow)->()
-typealias KMPageRangePickerWindowControllerConfirmClick = (_ windowController: NSWindowController)->()
-class KMPageRangePickerWindowController: NSWindowController {
-
-    @IBOutlet weak var titleLabel: NSTextField!
-    
-    @IBOutlet weak var allPageButton: NSButton!
-    @IBOutlet weak var oddPagesButton: NSButton!
-    @IBOutlet weak var evenPagesButton: NSButton!
-    @IBOutlet weak var customPagesButton: NSButton!
-    
-    @IBOutlet weak var customPagesTextField: NSTextField!
-    @IBOutlet weak var cancelButton: NSButton!
-    @IBOutlet weak var confirmButton: NSButton!
-    
-    var fileModel: KMMergeFileModel!
-    
-    var selectIndex: Int = 0
-    
-    var cancelClick: KMPageRangePickerWindowControllerCancelClick!
-    var confirmClick: KMPageRangePickerWindowControllerConfirmClick!
-    
-    override func windowDidLoad() {
-        super.windowDidLoad()
-
-        titleLabel.stringValue = NSLocalizedString("页面范围", comment: "")
-        
-        allPageButton.title = NSLocalizedString("全部页面", comment: "")
-        allPageButton.target = self
-        allPageButton.action = #selector(allPageButtonAction)
-        
-        oddPagesButton.title = NSLocalizedString("奇数页面", comment: "")
-        oddPagesButton.target = self
-        oddPagesButton.action = #selector(oddPagesButtonAction)
-        
-        evenPagesButton.title = NSLocalizedString("偶数页面", comment: "")
-        evenPagesButton.target = self
-        evenPagesButton.action = #selector(evenPagesButtonAction)
-        
-        customPagesButton.title = NSLocalizedString("自定义", comment: "")
-        customPagesButton.target = self
-        customPagesButton.action = #selector(customPagesButtonAction)
-        
-        customPagesTextField.placeholderString = NSLocalizedString("如1,3-5,10", comment: "")
-        customPagesTextField.isEnabled = false
-        
-        cancelButton.title = NSLocalizedString("Cancel", comment: "")
-        cancelButton.target = self
-        cancelButton.action = #selector(cancelButtonAction)
-        confirmButton.title = NSLocalizedString("Confirm", comment: "")
-        confirmButton.target = self
-        confirmButton.action = #selector(confirmButtonAction)
-        
-        selectIndex = 0;
-        allPageButton.state = .on
-    }
-    
-    @objc func allPageButtonAction() {
-        for button in [allPageButton, oddPagesButton, evenPagesButton, customPagesButton] {
-            button?.state = .off
-        }
-        
-        allPageButton.state = .on
-        window?.makeFirstResponder(nil)
-        customPagesTextField.isEnabled = false
-        selectIndex = 0
-    }
-    
-    @objc func oddPagesButtonAction() {
-        for button in [allPageButton, oddPagesButton, evenPagesButton, customPagesButton] {
-            button?.state = .off
-        }
-        
-        oddPagesButton.state = .on
-        window?.makeFirstResponder(nil)
-        customPagesTextField.isEnabled = false
-        selectIndex = 1
-    }
-    
-    @objc func evenPagesButtonAction() {
-        for button in [allPageButton, oddPagesButton, evenPagesButton, customPagesButton] {
-            button?.state = .off
-        }
-        
-        evenPagesButton.state = .on
-        window?.makeFirstResponder(nil)
-        customPagesTextField.isEnabled = false
-        selectIndex = 2
-    }
-    
-    @objc func customPagesButtonAction() {
-        for button in [allPageButton, oddPagesButton, evenPagesButton, customPagesButton] {
-            button?.state = .off
-        }
-        
-        customPagesButton.state = .on
-        customPagesTextField.isEnabled = true
-        window?.makeFirstResponder(customPagesTextField)
-        selectIndex = 3
-    }
-    
-    @objc func cancelButtonAction() {
-        guard let callback = cancelClick else {
-            return
-        }
-        
-        callback(window!)
-    }
-    
-    @objc func confirmButtonAction() {
-        if selectIndex == 3 && findSelectPage(pagesString: self.customPagesTextField.stringValue).count == 0 {
-            let alert = NSAlert()
-            alert.alertStyle = .warning
-            alert.messageText = NSLocalizedString("Invalid page range or the page number is out of range. Please try again.", comment: "")
-            alert.runModal()
-            return
-        }
-        
-        guard let callback = confirmClick else {
-            return
-        }
-        
-        callback(self)
-    }
-    
-    func isValidPagesString(pagesString: String)-> Bool {
-        var valid = false
-        for ch in pagesString {
-            if ch != "0" && ch != "1" && ch != "2" && ch != "3" && ch != "4" && ch != "5" && ch != "6" && ch != "7" && ch != "8" && ch != "9" && ch != "," && ch != "-" {
-                valid = false
-                break
-            } else {
-                valid = true
-            }
-        }
-        
-        return valid
-    }
-    
-    func findSelectPage(pagesString: String) -> ([Int]) {
-        if !isValidPagesString(pagesString: pagesString) {
-            return []
-        }
-        
-        var result: [Int] = []
-        let array = pagesString.components(separatedBy: ",")
-        for string in array {
-            if string.isEmpty {
-                return []
-            } else {
-                let pages = string .components(separatedBy: "-")
-                if pages.count > 2 {
-                    return []
-                } else if pages.count == 1 {
-                    let page = pages[0]
-                    if page.isEmpty || Int(page)! > fileModel.document.pageCount || Int(page)! == 0 {
-                        return []
-                    } else {
-                        var hasSame: Bool = false
-                        for i in result {
-                            if i == Int(page)! {
-                                hasSame = true
-                                return []
-                            }
-                        }
-                        if !hasSame {
-                            result.append(Int(page)!)
-                        }
-                    }
-                } else if pages.count == 2 {
-                    let page1 = pages[0]
-                    let page2 = pages[1]
-                    if page1.isEmpty || page2.isEmpty || page1 >= page2 || Int(page2)! > fileModel.myDocument.pageCount || Int(page1)! == 0 {
-                        return []
-                    } else {
-                        var hasSame: Bool = false
-                        for i in Int(page1)! ... Int(page2)! {
-                            for j in result {
-                                if j == i {
-                                    hasSame = true
-                                    return []
-                                }
-                            }
-                        }
-                        if !hasSame {
-                            for i in Int(page1)! ... Int(page2)! {
-                                result.append(i)
-                            }
-                        }
-                     }
-                }
-            }
-        }
-        
-        return result
-    }
-}

+ 0 - 189
PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMPageRangePickerWindowController.xib

@@ -1,189 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22155" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
-    <dependencies>
-        <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22155"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMPageRangePickerWindowController" customModule="PDF_Master" customModuleProvider="target">
-            <connections>
-                <outlet property="allPageButton" destination="qje-y0-rbj" id="v7J-Tj-g4y"/>
-                <outlet property="cancelButton" destination="inN-JA-bR4" id="wcI-qA-l13"/>
-                <outlet property="confirmButton" destination="idU-nT-0nS" id="OJL-cM-So7"/>
-                <outlet property="customPagesButton" destination="Xds-aH-4vF" id="yA5-ku-Xz0"/>
-                <outlet property="customPagesTextField" destination="Hvt-O0-A7J" id="tRA-zI-I2p"/>
-                <outlet property="evenPagesButton" destination="o34-Sv-7xR" id="cve-xg-fPw"/>
-                <outlet property="oddPagesButton" destination="HsB-pg-xaa" id="JKq-UM-aaU"/>
-                <outlet property="titleLabel" destination="edV-G2-ltR" id="2FZ-CN-gyR"/>
-                <outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
-            </connections>
-        </customObject>
-        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
-        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
-        <window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
-            <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
-            <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
-            <rect key="contentRect" x="196" y="240" width="480" height="270"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/>
-            <value key="minSize" type="size" width="480" height="270"/>
-            <value key="maxSize" type="size" width="480" height="270"/>
-            <view key="contentView" id="se5-gp-TjO">
-                <rect key="frame" x="0.0" y="0.0" width="480" height="270"/>
-                <autoresizingMask key="autoresizingMask"/>
-                <subviews>
-                    <box boxType="custom" borderWidth="0.0" title="Box" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="Dgo-0Z-9mJ" userLabel="titleBarBox">
-                        <rect key="frame" x="0.0" y="226" width="480" height="44"/>
-                        <view key="contentView" id="hf2-ke-HNG">
-                            <rect key="frame" x="0.0" y="0.0" width="480" height="44"/>
-                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                            <subviews>
-                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="edV-G2-ltR">
-                                    <rect key="frame" x="12" y="18" width="37" height="16"/>
-                                    <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="SHj-zU-qps">
-                                        <font key="font" usesAppearanceFont="YES"/>
-                                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                    </textFieldCell>
-                                </textField>
-                            </subviews>
-                            <constraints>
-                                <constraint firstItem="edV-G2-ltR" firstAttribute="leading" secondItem="hf2-ke-HNG" secondAttribute="leading" constant="14" id="Xdb-MX-iM6"/>
-                                <constraint firstItem="edV-G2-ltR" firstAttribute="top" secondItem="hf2-ke-HNG" secondAttribute="top" constant="10" id="luS-56-mmq"/>
-                            </constraints>
-                        </view>
-                        <constraints>
-                            <constraint firstAttribute="height" constant="44" id="5kx-Po-Imt"/>
-                        </constraints>
-                    </box>
-                    <box boxType="custom" borderWidth="0.0" title="Box" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="uqH-w5-4bv" userLabel="contentBox">
-                        <rect key="frame" x="0.0" y="60" width="480" height="166"/>
-                        <view key="contentView" id="cch-eF-6dh">
-                            <rect key="frame" x="0.0" y="0.0" width="480" height="166"/>
-                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                            <subviews>
-                                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="qje-y0-rbj">
-                                    <rect key="frame" x="16" y="139" width="61" height="18"/>
-                                    <buttonCell key="cell" type="radio" title="Radio" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="SUS-3J-xMb">
-                                        <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
-                                        <font key="font" metaFont="system"/>
-                                    </buttonCell>
-                                </button>
-                                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="HsB-pg-xaa">
-                                    <rect key="frame" x="16" y="105" width="61" height="18"/>
-                                    <buttonCell key="cell" type="radio" title="Radio" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="Vvn-Os-ice">
-                                        <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
-                                        <font key="font" metaFont="system"/>
-                                    </buttonCell>
-                                </button>
-                                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="o34-Sv-7xR">
-                                    <rect key="frame" x="16" y="71" width="61" height="18"/>
-                                    <buttonCell key="cell" type="radio" title="Radio" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="Ffr-82-AaJ">
-                                        <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
-                                        <font key="font" metaFont="system"/>
-                                    </buttonCell>
-                                </button>
-                                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Xds-aH-4vF">
-                                    <rect key="frame" x="16" y="37" width="61" height="18"/>
-                                    <buttonCell key="cell" type="radio" title="Radio" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="zcY-yS-JFh">
-                                        <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
-                                        <font key="font" metaFont="system"/>
-                                    </buttonCell>
-                                </button>
-                                <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Hvt-O0-A7J">
-                                    <rect key="frame" x="107" y="36" width="355" height="21"/>
-                                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" id="C8h-xQ-MTh">
-                                        <font key="font" metaFont="system"/>
-                                        <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                    </textFieldCell>
-                                </textField>
-                            </subviews>
-                            <constraints>
-                                <constraint firstItem="Hvt-O0-A7J" firstAttribute="leading" secondItem="Xds-aH-4vF" secondAttribute="trailing" constant="30" id="6Mz-TU-BDL"/>
-                                <constraint firstItem="HsB-pg-xaa" firstAttribute="leading" secondItem="cch-eF-6dh" secondAttribute="leading" constant="18" id="Ax3-85-38r"/>
-                                <constraint firstItem="Hvt-O0-A7J" firstAttribute="centerY" secondItem="Xds-aH-4vF" secondAttribute="centerY" id="Jbh-z7-Cnm"/>
-                                <constraint firstItem="o34-Sv-7xR" firstAttribute="top" secondItem="HsB-pg-xaa" secondAttribute="bottom" constant="18" id="MJY-jI-nNj"/>
-                                <constraint firstItem="Xds-aH-4vF" firstAttribute="top" secondItem="o34-Sv-7xR" secondAttribute="bottom" constant="18" id="RU9-Yt-hzd"/>
-                                <constraint firstItem="o34-Sv-7xR" firstAttribute="leading" secondItem="cch-eF-6dh" secondAttribute="leading" constant="18" id="VnE-L2-NRF"/>
-                                <constraint firstAttribute="trailing" secondItem="Hvt-O0-A7J" secondAttribute="trailing" constant="18" id="chF-gS-ee0"/>
-                                <constraint firstItem="qje-y0-rbj" firstAttribute="top" secondItem="cch-eF-6dh" secondAttribute="top" constant="10" id="fij-tW-lOe"/>
-                                <constraint firstItem="HsB-pg-xaa" firstAttribute="top" secondItem="qje-y0-rbj" secondAttribute="bottom" constant="18" id="nNd-6a-vah"/>
-                                <constraint firstItem="Xds-aH-4vF" firstAttribute="leading" secondItem="cch-eF-6dh" secondAttribute="leading" constant="18" id="vdT-Bn-Dl9"/>
-                                <constraint firstItem="qje-y0-rbj" firstAttribute="leading" secondItem="cch-eF-6dh" secondAttribute="leading" constant="18" id="wED-MV-zAP"/>
-                            </constraints>
-                        </view>
-                    </box>
-                    <box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="KnD-V5-mnp">
-                        <rect key="frame" x="0.0" y="58" width="480" height="5"/>
-                    </box>
-                    <box boxType="custom" borderWidth="0.0" title="Box" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="lV0-z2-ZNx" userLabel="bottomBarBox">
-                        <rect key="frame" x="0.0" y="0.0" width="480" height="60"/>
-                        <view key="contentView" id="Ro2-kf-XkQ">
-                            <rect key="frame" x="0.0" y="0.0" width="480" height="60"/>
-                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                            <subviews>
-                                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="inN-JA-bR4">
-                                    <rect key="frame" x="285" y="8" width="94" height="42"/>
-                                    <buttonCell key="cell" type="push" title="Button" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="VBE-mV-Ixf">
-                                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                        <font key="font" metaFont="system"/>
-                                    </buttonCell>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="80" id="YiA-ze-CVj"/>
-                                        <constraint firstAttribute="height" constant="30" id="ylj-ep-4Sb"/>
-                                    </constraints>
-                                    <connections>
-                                        <action selector="cancelButtonAction:" target="-2" id="DbN-kG-ip9"/>
-                                    </connections>
-                                </button>
-                                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="idU-nT-0nS">
-                                    <rect key="frame" x="375" y="8" width="94" height="42"/>
-                                    <buttonCell key="cell" type="push" title="Button" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="tNG-MV-OID">
-                                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                        <font key="font" metaFont="system"/>
-                                        <string key="keyEquivalent" base64-UTF8="YES">
-DQ
-</string>
-                                    </buttonCell>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="80" id="Hzm-pI-TZz"/>
-                                        <constraint firstAttribute="height" constant="30" id="tlt-Oq-FlD"/>
-                                    </constraints>
-                                </button>
-                            </subviews>
-                            <constraints>
-                                <constraint firstItem="inN-JA-bR4" firstAttribute="centerY" secondItem="Ro2-kf-XkQ" secondAttribute="centerY" id="1J7-bW-WWg"/>
-                                <constraint firstItem="idU-nT-0nS" firstAttribute="leading" secondItem="inN-JA-bR4" secondAttribute="trailing" constant="10" id="DEc-TL-4B5"/>
-                                <constraint firstAttribute="trailing" secondItem="idU-nT-0nS" secondAttribute="trailing" constant="18" id="saf-3C-kVC"/>
-                                <constraint firstItem="idU-nT-0nS" firstAttribute="centerY" secondItem="Ro2-kf-XkQ" secondAttribute="centerY" id="sgB-vX-pOi"/>
-                            </constraints>
-                        </view>
-                        <constraints>
-                            <constraint firstAttribute="height" constant="60" id="3JX-36-42K"/>
-                        </constraints>
-                    </box>
-                </subviews>
-                <constraints>
-                    <constraint firstItem="lV0-z2-ZNx" firstAttribute="top" secondItem="uqH-w5-4bv" secondAttribute="bottom" id="2y1-Yb-aOr"/>
-                    <constraint firstAttribute="trailing" secondItem="uqH-w5-4bv" secondAttribute="trailing" id="DIv-bE-h1J"/>
-                    <constraint firstItem="Dgo-0Z-9mJ" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" id="FSY-Fg-V54"/>
-                    <constraint firstItem="uqH-w5-4bv" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="GR6-1p-zgJ"/>
-                    <constraint firstAttribute="trailing" secondItem="Dgo-0Z-9mJ" secondAttribute="trailing" id="Hxs-30-R5W"/>
-                    <constraint firstItem="lV0-z2-ZNx" firstAttribute="top" secondItem="KnD-V5-mnp" secondAttribute="bottom" id="LBt-uL-CDE"/>
-                    <constraint firstItem="uqH-w5-4bv" firstAttribute="top" secondItem="Dgo-0Z-9mJ" secondAttribute="bottom" id="XiX-HC-AED"/>
-                    <constraint firstAttribute="trailing" secondItem="lV0-z2-ZNx" secondAttribute="trailing" id="YnU-0J-uZZ"/>
-                    <constraint firstItem="KnD-V5-mnp" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="eNI-Af-A9m"/>
-                    <constraint firstAttribute="trailing" secondItem="KnD-V5-mnp" secondAttribute="trailing" id="h2k-Er-6bN"/>
-                    <constraint firstItem="Dgo-0Z-9mJ" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="n3c-Us-f58"/>
-                    <constraint firstItem="lV0-z2-ZNx" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="r5z-gK-yzg"/>
-                    <constraint firstAttribute="bottom" secondItem="lV0-z2-ZNx" secondAttribute="bottom" id="zLV-NN-NLV"/>
-                </constraints>
-            </view>
-            <connections>
-                <outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
-            </connections>
-            <point key="canvasLocation" x="27" y="-46"/>
-        </window>
-    </objects>
-</document>

+ 89 - 140
PDF Office/PDF Master/Class/PDFTools/Merge/MergeNew/KMMergeWindowController.swift

@@ -13,10 +13,10 @@ typealias KMMergeWindowControllerMergeAction = (_ controller: KMMergeWindowContr
 typealias KMMergeWindowControllerClearAction = (_ controller: KMMergeWindowController) -> Void
 
 class KMMergeWindowController: KMBaseWindowController {
-
+    
     @IBOutlet weak var mergeView: KMMergeView!
     
-//    var cancelAction: KMMergeWindowControllerCancelAction?
+    //    var cancelAction: KMMergeWindowControllerCancelAction?
     
     var oldPDFDocument: PDFDocument = PDFDocument()
     var password: String = ""
@@ -33,28 +33,7 @@ class KMMergeWindowController: KMBaseWindowController {
     var pageIndex: Int?
     
     var mergeAction: KMMergeWindowControllerMergeAction?
-//    - (id)initWithPDFDocument:(PDFDocument *)document password:(NSString *)password
-//    {
-//        if (self = [super initWithWindowNibName:@"KMPDFEditAppendWindow"]) {
-//
-//    //        self.PDFDocument = document;
-//            self.PDFDocument = [[PDFDocument alloc] init];
-//            self.editType = KMPDFPageEditAppend;
-//            _lockFilePathArr = [[NSMutableArray alloc] init];
-//            _files = [[NSMutableArray alloc] init];
-//
-//            KMFileAttribute *file = [[KMFileAttribute alloc] init];
-//            file.myPDFDocument = document;
-//            file.filePath = document.documentURL.path;
-//            file.oriFilePath = self.oriDucumentUrl.path;
-//            if (password && password.length > 0) {
-//                file.password = password;
-//                file.isLocked = YES;
-//            }
-//            [self.files addObject:file];
-//        }
-//        return self;
-//    }
+    
     convenience init(document: PDFDocument, password: String) {
         self.init(windowNibName: "KMMergeWindowController")
         self.password = password
@@ -63,7 +42,7 @@ class KMMergeWindowController: KMBaseWindowController {
     
     override func windowDidLoad() {
         super.windowDidLoad()
-
+        
         self.window!.title = NSLocalizedString("Merge PDF Files", comment: "");
         // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
         self.mergeView.type = self.type
@@ -110,9 +89,8 @@ extension KMMergeWindowController {
         }
         
         let openPanel = NSOpenPanel()
-//        openPanel.allowedFileTypes = ["pdf"]
         openPanel.allowedFileTypes = KMTools.imageExtensions + KMTools.pdfExtensions
-
+        
         if KMPurchaseManager.manager.state == .subscription {
             openPanel.allowsMultipleSelection = true
             openPanel.message = NSLocalizedString("Select files to merge. To select multiple files press cmd ⌘ button on keyboard and click on the target files one by one.", comment: "")
@@ -120,7 +98,7 @@ extension KMMergeWindowController {
             openPanel.allowsMultipleSelection = false
             openPanel.message = NSLocalizedString("Select files to merge, only one file can be selected at a time.", comment: "")
         }
-
+        
         openPanel.beginSheetModal(for: self.window!) { (result) in
             if result == NSApplication.ModalResponse.OK {
                 var array: [URL] = []
@@ -135,7 +113,6 @@ extension KMMergeWindowController {
                                 path = KMTools.getUniqueFilePath(filePath: path)
                                 let result = document.write(toFile: path)
                                 if result {
-//                                    array.append(URL(fileURLWithPath: path))
                                     let file = KMFileAttribute()
                                     file.filePath = path
                                     file.oriFilePath = fileURL.path
@@ -144,7 +121,7 @@ extension KMMergeWindowController {
                                     let attribe = try?FileManager.default.attributesOfItem(atPath: fileURL.path)
                                     let fileSize = attribe?[FileAttributeKey.size] as? CGFloat ?? 0
                                     size = fileSize + size
-
+                                    
                                     if !IAPProductsManager.default().isAvailableAllFunction() && (files.count >= 2 || size > 20 * 1024 * 1024) {
                                         KMPurchaseCompareWindowController.sharedInstance().showWindow(nil)
                                         return
@@ -166,7 +143,7 @@ extension KMMergeWindowController {
                 let attribe = try?FileManager.default.attributesOfItem(atPath: openPanel.urls.first!.path)
                 let fileSize = attribe?[FileAttributeKey.size] as? CGFloat ?? 0
                 size = fileSize + size
-
+                
                 if !IAPProductsManager.default().isAvailableAllFunction() && (files.count >= 2 || size > 20 * 1024 * 1024) {
                     KMPurchaseCompareWindowController.sharedInstance().showWindow(nil)
                     return
@@ -175,7 +152,7 @@ extension KMMergeWindowController {
                 self.mergeView.addFilePaths(urls: array)
             }
         }
-
+        
     }
     
     private func _saveImagePath() -> String {
@@ -217,10 +194,6 @@ extension KMMergeWindowController {
             return
         }
         
-//        _isSuccessfully = NO;
-//        [self.nCancelVC setEnabled:NO];
-//        self.canMerge = NO;
-//
         var rootPDFOutlineArray: [PDFOutline] = []
         var allPage = true //只有是全部才支持大纲的合并
         for file in files {
@@ -246,9 +219,7 @@ extension KMMergeWindowController {
             
             var outlineArray: [PDFOutline] = []
             
-//            if file.isLocked {
-                tDocument.unlock(withPassword: file.password)
-//            }
+            tDocument.unlock(withPassword: file.password)
             
             if tDocument.outlineRoot != nil {
                 rootPDFOutlineArray.append((tDocument.outlineRoot)!)
@@ -264,13 +235,8 @@ extension KMMergeWindowController {
             
             for number in file.fetchSelectPages() {
                 let page = tDocument.page(at: number - 1)
-//                if pageIndex != nil {
-//                    self.oldPDFDocument.insert(page!, at: pageIndex!)
-//                    pageIndex = pageIndex! + 1
-//                } else {
-                    self.oldPDFDocument.insert(page!, at: self.oldPDFDocument.pageCount)
-//                }
-//                self.insertIndexSet.addIndex:(self.pdfDocument.pageCount - 1)
+                
+                self.oldPDFDocument.insert(page!, at: self.oldPDFDocument.pageCount)
             }
         }
         
@@ -283,114 +249,97 @@ extension KMMergeWindowController {
             if self.oldPDFDocument.outlineRoot == nil {
                 self.oldPDFDocument.outlineRoot = PDFOutline.init()
             }
-//            if allPage {
-                var insertIndex = 0
-                for i in 0..<rootPDFOutlineArray.count {
-                    let rootOutline = rootPDFOutlineArray[i]
-                    for j in 0..<rootOutline.numberOfChildren {
-                        self.oldPDFDocument.outlineRoot?.insertChild(rootOutline.child(at: j)!, at: insertIndex)
-                        insertIndex = insertIndex + 1
-                    }
+            var insertIndex = 0
+            for i in 0..<rootPDFOutlineArray.count {
+                let rootOutline = rootPDFOutlineArray[i]
+                for j in 0..<rootOutline.numberOfChildren {
+                    self.oldPDFDocument.outlineRoot?.insertChild(rootOutline.child(at: j)!, at: insertIndex)
+                    insertIndex = insertIndex + 1
                 }
+            }
+            
+            self.handleReDraw()
+            
+            if self.oriDucumentUrl != nil {
                 
-                self.handleReDraw()
+                let newPath = self.oldPDFDocument.documentURL!.path
+                var options: [PDFDocumentWriteOption : Any] = [:]
+                var success = false
+                let password = self.password
+                let pdf = self.oldPDFDocument
                 
-                if self.oriDucumentUrl != nil {
-                    
-                    let newPath = self.oldPDFDocument.documentURL!.path
-                    var options: [PDFDocumentWriteOption : Any] = [:]
-                    var success = false
-                    let password = self.password
-                    let pdf = self.oldPDFDocument
-//                    if pdf.isEncrypted {
-//                        options.updateValue(password, forKey: .userPasswordOption)
-//                        options.updateValue(password, forKey: .ownerPasswordOption)
-//                        success = pdf.write(toFile: newPath, withOptions: options)
-//                    } else {
-//                        success = pdf.write(toFile: newPath)
-//                    }
-                    
-//                    var success = self.oldPDFDocument.write(toFile: self.oldPDFDocument.documentURL!.path)
-//                    if success {
-                        let savePanelAccessoryViewController = KMSavePanelAccessoryController.init()
-                        let savePanel = NSSavePanel()
-                        savePanel.nameFieldStringValue = fileName
-                        savePanel.allowedFileTypes = ["pdf"]
-                        savePanel.accessoryView = savePanelAccessoryViewController.view
-        //                self.savePanelAccessoryViewController = savePanelAccessoryViewController;
-                        savePanel.beginSheetModal(for: self.window!) { result in
-                            if result == .OK {
-                                self._clearImageData()
-                                self.cancelAction?()
-                                var outputSavePanel = savePanel.url?.path ?? ""
-                                DispatchQueue.main.async {
-                                    var success = false
-                                    if pdf.isEncrypted {
-                                        options.updateValue(password, forKey: .userPasswordOption)
-                                        options.updateValue(password, forKey: .ownerPasswordOption)
-                                        success = pdf.write(toFile: outputSavePanel, withOptions: options)
-                                    } else {
-                                        success = pdf.write(toFile: outputSavePanel)
-                                    }
-                                    
-                                    if success {
-                                        if savePanelAccessoryViewController.needOpen {
-                                            NSDocumentController.shared.openDocument(withContentsOf: savePanel.url!, display: true) { document, open, error in
-                                                
-                                            }
-                                        } else {
-                                            NSWorkspace.shared.activateFileViewerSelecting([NSURL(fileURLWithPath: outputSavePanel) as URL])
-                                        }
-                                    } else {
-                                        let alert = NSAlert.init()
-                                        alert.alertStyle = .critical
-                                        alert.messageText = "\(String(describing: files.first?.filePath.lastPathComponent)) + \(NSLocalizedString("Failed to merge!", comment: ""))"
-                                        alert.runModal()
+                let savePanelAccessoryViewController = KMSavePanelAccessoryController.init()
+                let savePanel = NSSavePanel()
+                savePanel.nameFieldStringValue = fileName
+                savePanel.allowedFileTypes = ["pdf"]
+                savePanel.accessoryView = savePanelAccessoryViewController.view
+                savePanel.beginSheetModal(for: self.window!) { result in
+                    if result == .OK {
+                        self._clearImageData()
+                        self.cancelAction?()
+                        var outputSavePanel = savePanel.url?.path ?? ""
+                        DispatchQueue.main.async {
+                            var success = false
+                            if pdf.isEncrypted {
+                                options.updateValue(password, forKey: .userPasswordOption)
+                                options.updateValue(password, forKey: .ownerPasswordOption)
+                                success = pdf.write(toFile: outputSavePanel, withOptions: options)
+                            } else {
+                                success = pdf.write(toFile: outputSavePanel)
+                            }
+                            
+                            if success {
+                                if savePanelAccessoryViewController.needOpen {
+                                    NSDocumentController.shared.openDocument(withContentsOf: savePanel.url!, display: true) { document, open, error in
+                                        
                                     }
+                                } else {
+                                    NSWorkspace.shared.activateFileViewerSelecting([NSURL(fileURLWithPath: outputSavePanel) as URL])
                                 }
+                            } else {
+                                let alert = NSAlert.init()
+                                alert.alertStyle = .critical
+                                alert.messageText = "\(String(describing: files.first?.filePath.lastPathComponent)) + \(NSLocalizedString("Failed to merge!", comment: ""))"
+                                alert.runModal()
                             }
                         }
-//                        self.mergeAction?(self, self.oldPDFDocument.documentURL!.path)
-//                    } else {
-//                        print("合并失败")
-//                    }
-                } else {
-                    let savePanelAccessoryViewController = KMSavePanelAccessoryController.init()
-                    let savePanel = NSSavePanel()
-                    savePanel.nameFieldStringValue = fileName
-                    savePanel.allowedFileTypes = ["pdf"]
-                    savePanel.accessoryView = savePanelAccessoryViewController.view
-    //                self.savePanelAccessoryViewController = savePanelAccessoryViewController;
-                    savePanel.beginSheetModal(for: self.window!) { result in
-                        if result == .OK {
-                            self._clearImageData()
-                            self.cancelAction?()
-                            var outputSavePanel = savePanel.url?.path
-                            DispatchQueue.main.async {
-                                var success = self.oldPDFDocument.write(toFile: outputSavePanel!)
-                                if !success {
-                                    success = ((try?self.oldPDFDocument.dataRepresentation()?.write(to: URL(string: outputSavePanel!)!)) != nil)
-                                }
-                                
-                                if success {
-                                    if savePanelAccessoryViewController.needOpen {
-                                        NSDocumentController.shared.openDocument(withContentsOf: savePanel.url!, display: true) { document, open, error in
-                                            
-                                        }
-                                    } else {
-                                        NSWorkspace.shared.activateFileViewerSelecting([NSURL(fileURLWithPath: outputSavePanel!) as URL])
+                    }
+                }
+            } else {
+                let savePanelAccessoryViewController = KMSavePanelAccessoryController.init()
+                let savePanel = NSSavePanel()
+                savePanel.nameFieldStringValue = fileName
+                savePanel.allowedFileTypes = ["pdf"]
+                savePanel.accessoryView = savePanelAccessoryViewController.view
+                savePanel.beginSheetModal(for: self.window!) { result in
+                    if result == .OK {
+                        self._clearImageData()
+                        self.cancelAction?()
+                        var outputSavePanel = savePanel.url?.path
+                        DispatchQueue.main.async {
+                            var success = self.oldPDFDocument.write(toFile: outputSavePanel!)
+                            if !success {
+                                success = ((try?self.oldPDFDocument.dataRepresentation()?.write(to: URL(string: outputSavePanel!)!)) != nil)
+                            }
+                            
+                            if success {
+                                if savePanelAccessoryViewController.needOpen {
+                                    NSDocumentController.shared.openDocument(withContentsOf: savePanel.url!, display: true) { document, open, error in
+                                        
                                     }
                                 } else {
-                                    let alert = NSAlert.init()
-                                    alert.alertStyle = .critical
-                                    alert.messageText = "\(String(describing: files.first?.filePath.lastPathComponent)) + \(NSLocalizedString("Failed to merge!", comment: ""))"
-                                    alert.runModal()
+                                    NSWorkspace.shared.activateFileViewerSelecting([NSURL(fileURLWithPath: outputSavePanel!) as URL])
                                 }
+                            } else {
+                                let alert = NSAlert.init()
+                                alert.alertStyle = .critical
+                                alert.messageText = "\(String(describing: files.first?.filePath.lastPathComponent)) + \(NSLocalizedString("Failed to merge!", comment: ""))"
+                                alert.runModal()
                             }
                         }
                     }
                 }
-//            }
+            }
         }
     }
     

+ 9 - 9
PDF Office/PDF Master/Class/PDFTools/Merge/MergeNew/KMMergeWindowController.xib

@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22155" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22155"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMMergeWindowController" customModule="PDF_Master" customModuleProvider="target">
+        <customObject id="-2" userLabel="File's Owner" customClass="KMMergeWindowController" customModule="PDF_Reader_Pro" customModuleProvider="target">
             <connections>
                 <outlet property="mergeView" destination="5SE-MD-aBm" id="L0K-1A-CZZ"/>
                 <outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
@@ -17,16 +17,16 @@
         <window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
             <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
             <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
-            <rect key="contentRect" x="196" y="240" width="947" height="618"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/>
+            <rect key="contentRect" x="196" y="240" width="457" height="554"/>
+            <rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/>
             <value key="minSize" type="size" width="947" height="618"/>
             <value key="maxSize" type="size" width="947" height="618"/>
             <view key="contentView" id="se5-gp-TjO">
-                <rect key="frame" x="0.0" y="0.0" width="947" height="618"/>
+                <rect key="frame" x="0.0" y="0.0" width="457" height="554"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
-                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="5SE-MD-aBm" customClass="KMMergeView" customModule="PDF_Master" customModuleProvider="target">
-                        <rect key="frame" x="0.0" y="0.0" width="947" height="618"/>
+                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="5SE-MD-aBm" customClass="KMMergeView" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                        <rect key="frame" x="0.0" y="0.0" width="457" height="554"/>
                     </customView>
                 </subviews>
                 <constraints>
@@ -39,7 +39,7 @@
             <connections>
                 <outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
             </connections>
-            <point key="canvasLocation" x="148" y="14"/>
+            <point key="canvasLocation" x="-97.5" y="-18"/>
         </window>
     </objects>
 </document>

+ 1 - 4
PDF Office/PDF Master/Class/PDFTools/Merge/MergeNew/View/KMMergeBlankView/KMMergeBlankView.swift

@@ -52,10 +52,7 @@ class KMMergeBlankView: BaseXibView {
                 iconImageView.image = NSImage(named: "KMImageNameEmptyListHov")
             }
         }
-        
-//        registerForDraggedTypes([.fileURL])
-        
-        
+         
         dragView.dragAction = { [unowned self] urls in
             self.dragAction?(urls)
         }

+ 4 - 32
PDF Office/PDF Master/Class/PDFTools/Merge/Model/KMFileAttribute.swift

@@ -38,11 +38,7 @@ import Cocoa
     var fileSize: CGFloat = 0
     var fileImage: NSImage = NSImage()
     var pageCnt: Int?
-    
-    /*
-     @property (nonatomic, assign) BOOL pageRangeError;
-     */
-    
+     
     func reloadData() {
         if filePath.count != 0 {
             let attribe = try?FileManager.default.attributesOfItem(atPath: filePath)
@@ -56,8 +52,7 @@ import Cocoa
             let page = document?.page(at: 0) ?? CPDFPage()
             let image = page.thumbnail(of: page.size)
             fileImage = image ?? NSImage()
-//            fileImage = NSImage.previewForFile(path: URL(fileURLWithPath: filePath), ofSize: CGSizeMake(136, 214), asIcon: true) ?? NSImage()
-        }
+         }
     }
     
     func fetchSelectPages() -> [Int] {
@@ -94,9 +89,7 @@ import Cocoa
             }
         } else {
             isInvalidString(pagesString)
-//            let pages = KMPageRangeTools.findSelectPage(pageRangeString: pagesString, pageCount: Int(pdfDocument.pageCount ))
-//            selectPages = pages
-            if !bAllPage {
+             if !bAllPage {
                 self.QuickSort(&selectPages, startIndex: 0, endIndex: selectPages.count-1)
             }
         }
@@ -230,26 +223,5 @@ import Cocoa
         
         self.QuickSort(&list, startIndex: startIndex, endIndex: tempIndex-1)
         self.QuickSort(&list, startIndex: tempIndex+1, endIndex: endIndex)
-    }
-    
-    /*
-
-     /* give our representation to the image browser */
-     - (id)imageRepresentation
-     {
-         return self.filePath;
-     }
-
-     /* use the absolute filepath as identifier */
-     - (NSString *)imageUID
-     {
-         return self.filePath;
-     }
-
-     - (NSString*)imageTitle
-     {
-         return [[self.filePath lastPathComponent] stringByDeletingPathExtension];
-     }
-
-     */
+    } 
 }

+ 0 - 45
PDF Office/PDF Master/Class/PDFTools/Merge/OCPart/KMPDFEditAppendWindow.h

@@ -1,45 +0,0 @@
-//
-//  KMPDFEditAppendWindow.h
-//  PDF Reader
-//
-//  Created by 丁林圭 on 2017/5/11.
-//  Copyright © 2017年 zhangjie. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-#import <Quartz/Quartz.h>
-#import <ComPDFKit/ComPDFKit.h>
-
-@interface KMPDFEditAppendTabelViewCell :NSTableCellView
-@end
-
-#define moniker(x) ((x) >= 1024 ? ((x) < 1048576 ? 'M':'G'):'K')
-#define truesize(x) ( (x) >= 1024 ?( (x) < 1048576 ? (x)/1024.0 : (x)/1048576.0) : (x))
-
-typedef NS_OPTIONS(NSUInteger, KMPDFPageEditType) {
-    KMPDFPageEditAppend  = 1 ,
-    KMPDFPageEditMerge ,
-    };
-
-@interface KMPDFEditAppendWindow : NSWindowController
-
-@property (nonatomic, strong) NSURL *oriDucumentUrl;
-
-@property (nonatomic,copy) void (^saveAsPDFFilePath) (NSString *filePath);
-
-- (id)initWithFilePaths:(NSArray *)files;
-- (id)initWithPDFDocument:(PDFDocument *)document password:(NSString *)password;
-
-- (void)beginSheetModalForWindow:(NSWindow *)window completionHandler:(void (^)(BOOL isSuccessfully ,NSIndexSet * selectedIndexSet))handler;
-
-@end
-
-@interface KMPDFEditAppendWindow(KMExtension)
-
-- (BOOL)mergeCountIsReach;
-
-- (void)recordMergeCount;
-- (void)clearMergeCount;
-- (NSInteger)getMergeCount;
-
-@end

File diff suppressed because it is too large
+ 0 - 1752
PDF Office/PDF Master/Class/PDFTools/Merge/OCPart/KMPDFEditAppendWindow.m


+ 0 - 661
PDF Office/PDF Master/Class/PDFTools/Merge/OCPart/KMPDFEditAppendWindow.xib

@@ -1,661 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22155" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
-    <dependencies>
-        <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22155"/>
-        <capability name="Named colors" minToolsVersion="9.0"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMPDFEditAppendWindow">
-            <connections>
-                <outlet property="A3SizeButton" destination="85P-Ad-bEf" id="cVi-aa-1vO"/>
-                <outlet property="A4SizeButton" destination="5nS-LC-t5H" id="XZw-Hu-dpV"/>
-                <outlet property="USLegalButton" destination="ZDa-uQ-GtJ" id="pE9-9W-lDH"/>
-                <outlet property="USLetterSizeButton" destination="PNC-MR-g6W" id="KaY-pP-WBZ"/>
-                <outlet property="addBox" destination="HqV-Cr-IvX" id="3T9-9J-WkF"/>
-                <outlet property="appendButton" destination="K0f-tn-KEz" id="X92-Hc-F6l"/>
-                <outlet property="blankImage" destination="IqC-f7-Lnl" id="qLC-78-jO9"/>
-                <outlet property="blankLabel" destination="1dO-kv-PuF" id="R9f-G4-kJu"/>
-                <outlet property="blankView" destination="EEC-VI-dAb" id="gV3-A9-nB3"/>
-                <outlet property="box" destination="SNg-B0-ys5" id="KA3-jP-eHb"/>
-                <outlet property="boxLabel" destination="ypq-Dp-66v" id="Ny3-TT-kKu"/>
-                <outlet property="cancelButton" destination="y69-3G-4ES" id="bEZ-Jh-Y64"/>
-                <outlet property="clearBox" destination="kXZ-gh-CUA" id="INH-zz-Maw"/>
-                <outlet property="customSizeButton" destination="QI0-GW-5Ii" id="yJe-Zx-UXW"/>
-                <outlet property="fileNameLabel" destination="MiB-cx-nmS" id="Phd-ss-lv2"/>
-                <outlet property="limitLable" destination="0bJ-0I-xhY" id="KBK-fD-3Rg"/>
-                <outlet property="limitTipIv" destination="Sp2-fV-Wrc" id="5Sc-i9-DwJ"/>
-                <outlet property="myBlankView" destination="Bxz-CR-NgQ" id="fja-0n-Ywh"/>
-                <outlet property="nCancelBox" destination="HUw-YH-0kd" id="Df5-e3-Fca"/>
-                <outlet property="nMergeBox" destination="Gzx-57-4ok" id="Qrg-e1-sK9"/>
-                <outlet property="originalSizeButton" destination="cQk-Jd-o6w" id="Zoc-lI-Qum"/>
-                <outlet property="originalSizeRadio" destination="cQk-Jd-o6w" id="XMI-wo-P08"/>
-                <outlet property="pageRangeLabel" destination="P5F-ew-xgE" id="RbU-qD-3Pj"/>
-                <outlet property="pageSizeHeightTextField" destination="1M5-tW-MRF" id="bNO-kG-Ire"/>
-                <outlet property="pageSizeUnitLabel" destination="m7b-I1-lQz" id="d0K-s6-gTj"/>
-                <outlet property="pageSizeWidthHeightConnectorTextField" destination="buB-SK-8mO" id="DsJ-yT-ms4"/>
-                <outlet property="pageSizeWidthTextField" destination="h32-rZ-jac" id="sSv-Me-CsH"/>
-                <outlet property="progress" destination="Uex-2T-CgC" id="GaY-Fo-8ie"/>
-                <outlet property="sizeLabel" destination="4NV-bt-MWP" id="r44-AN-1mM"/>
-                <outlet property="tableHeaderBottomLine" destination="eiO-1W-3yk" id="8dz-3v-aeC"/>
-                <outlet property="tableHeaderBox" destination="7Ci-3J-z10" id="6Ma-y7-W2N"/>
-                <outlet property="tableView" destination="hj6-Zp-r0z" id="spR-sp-6TP"/>
-                <outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
-            </connections>
-        </customObject>
-        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
-        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
-        <window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="F0z-JX-Cv5">
-            <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
-            <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
-            <rect key="contentRect" x="196" y="240" width="818" height="600"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/>
-            <value key="minSize" type="size" width="818" height="600"/>
-            <value key="maxSize" type="size" width="818" height="600"/>
-            <view key="contentView" wantsLayer="YES" misplaced="YES" id="se5-gp-TjO">
-                <rect key="frame" x="0.0" y="0.0" width="818" height="600"/>
-                <autoresizingMask key="autoresizingMask"/>
-                <subviews>
-                    <scrollView borderType="none" autohidesScrollers="YES" horizontalLineScroll="122" horizontalPageScroll="10" verticalLineScroll="122" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ggk-eO-LzC">
-                        <rect key="frame" x="0.0" y="60" width="802" height="492"/>
-                        <clipView key="contentView" drawsBackground="NO" id="Mfh-Ax-kRE">
-                            <rect key="frame" x="0.0" y="0.0" width="802" height="492"/>
-                            <autoresizingMask key="autoresizingMask"/>
-                            <subviews>
-                                <tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" tableStyle="plain" columnSelection="YES" multipleSelection="NO" autosaveColumns="NO" rowHeight="120" rowSizeStyle="automatic" viewBased="YES" id="hj6-Zp-r0z">
-                                    <rect key="frame" x="0.0" y="0.0" width="802" height="492"/>
-                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                                    <size key="intercellSpacing" width="3" height="2"/>
-                                    <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                    <color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
-                                    <tableColumns>
-                                        <tableColumn width="437" minWidth="40" maxWidth="1000" id="pjX-oF-3Od">
-                                            <tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
-                                                <color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
-                                                <color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
-                                            </tableHeaderCell>
-                                            <textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="HJ8-Y9-a13">
-                                                <font key="font" metaFont="system"/>
-                                                <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                                <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                            </textFieldCell>
-                                            <tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
-                                            <prototypeCellViews>
-                                                <tableCellView identifier="KMPDFEditAppendTableViewCell" id="kJM-8r-UtU" customClass="KMPDFEditAppendTabelViewCell">
-                                                    <rect key="frame" x="1" y="1" width="437" height="120"/>
-                                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                                                    <subviews>
-                                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="PgT-U2-qfU">
-                                                            <rect key="frame" x="18" y="52" width="24" height="16"/>
-                                                            <constraints>
-                                                                <constraint firstAttribute="width" constant="20" id="Hwf-fT-ly0"/>
-                                                            </constraints>
-                                                            <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="1" id="Pa0-Jp-rrY">
-                                                                <font key="font" metaFont="system"/>
-                                                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                                                <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
-                                                            </textFieldCell>
-                                                        </textField>
-                                                        <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="tPy-ai-Cdt">
-                                                            <rect key="frame" x="50" y="10" width="80" height="90"/>
-                                                            <constraints>
-                                                                <constraint firstAttribute="width" constant="80" id="akZ-3c-hXT"/>
-                                                            </constraints>
-                                                            <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="NSAdvanced" id="Sd3-jX-Ogs"/>
-                                                        </imageView>
-                                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="eNU-Sm-LND">
-                                                            <rect key="frame" x="138" y="84" width="85" height="16"/>
-                                                            <textFieldCell key="cell" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="FileName.pdf" id="Ylr-ds-9Tk">
-                                                                <font key="font" metaFont="system"/>
-                                                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                                                <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
-                                                            </textFieldCell>
-                                                        </textField>
-                                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="398-sK-K5V">
-                                                            <rect key="frame" x="138" y="64" width="39" height="16"/>
-                                                            <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="center" title="2.0M" id="oVW-8o-Cnt">
-                                                                <font key="font" metaFont="system"/>
-                                                                <color key="textColor" name="systemGrayColor" catalog="System" colorSpace="catalog"/>
-                                                                <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
-                                                            </textFieldCell>
-                                                        </textField>
-                                                        <comboBox focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8V9-7o-ppF">
-                                                            <rect key="frame" x="139" y="11" width="281" height="23"/>
-                                                            <comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" completes="NO" numberOfVisibleItems="5" id="7AZ-7i-5XC">
-                                                                <font key="font" metaFont="system"/>
-                                                                <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                                                <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                                                <objectValues>
-                                                                    <string>Item 1</string>
-                                                                    <string>Item 2</string>
-                                                                    <string>Item 3</string>
-                                                                </objectValues>
-                                                            </comboBoxCell>
-                                                        </comboBox>
-                                                        <box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="RnQ-bh-CRD">
-                                                            <rect key="frame" x="0.0" y="-2" width="437" height="5"/>
-                                                        </box>
-                                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Xwh-TX-M2m">
-                                                            <rect key="frame" x="203" y="64" width="61" height="16"/>
-                                                            <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="23 Pages" id="5dj-sT-DqB">
-                                                                <font key="font" metaFont="system"/>
-                                                                <color key="textColor" name="systemGrayColor" catalog="System" colorSpace="catalog"/>
-                                                                <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
-                                                            </textFieldCell>
-                                                        </textField>
-                                                        <button translatesAutoresizingMaskIntoConstraints="NO" id="uvu-07-lWB">
-                                                            <rect key="frame" x="409" y="84" width="16" height="16"/>
-                                                            <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="KMImageNameUXIconBtnCloseNor" imagePosition="only" alignment="center" imageScaling="proportionallyUpOrDown" inset="2" id="NIS-J9-zD9">
-                                                                <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                                                <font key="font" metaFont="system"/>
-                                                            </buttonCell>
-                                                            <constraints>
-                                                                <constraint firstAttribute="width" constant="16" id="5d9-Mx-d6v"/>
-                                                                <constraint firstAttribute="height" constant="16" id="7hC-bG-sOG"/>
-                                                            </constraints>
-                                                            <connections>
-                                                                <action selector="buttonClicked_Remove:" target="kJM-8r-UtU" id="baP-ig-Qb8"/>
-                                                            </connections>
-                                                        </button>
-                                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="u5l-4V-ll2">
-                                                            <rect key="frame" x="138" y="38" width="77" height="16"/>
-                                                            <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Page Range" id="3Io-PJ-v5k">
-                                                                <font key="font" metaFont="system"/>
-                                                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                                                <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
-                                                            </textFieldCell>
-                                                        </textField>
-                                                    </subviews>
-                                                    <constraints>
-                                                        <constraint firstItem="8V9-7o-ppF" firstAttribute="top" secondItem="u5l-4V-ll2" secondAttribute="bottom" constant="5" id="0xy-X1-DzD"/>
-                                                        <constraint firstItem="u5l-4V-ll2" firstAttribute="leading" secondItem="eNU-Sm-LND" secondAttribute="leading" id="3ot-Gg-1bN"/>
-                                                        <constraint firstItem="Xwh-TX-M2m" firstAttribute="centerY" secondItem="398-sK-K5V" secondAttribute="centerY" id="5pu-hm-FH4"/>
-                                                        <constraint firstItem="eNU-Sm-LND" firstAttribute="leading" secondItem="tPy-ai-Cdt" secondAttribute="trailing" constant="10" id="9wn-tY-jx1"/>
-                                                        <constraint firstItem="tPy-ai-Cdt" firstAttribute="top" secondItem="kJM-8r-UtU" secondAttribute="top" constant="20" id="BcY-tn-OGJ"/>
-                                                        <constraint firstAttribute="trailing" secondItem="uvu-07-lWB" secondAttribute="trailing" constant="12" id="Cd6-ND-V0v"/>
-                                                        <constraint firstAttribute="trailing" secondItem="8V9-7o-ppF" secondAttribute="trailing" constant="20" id="CeS-8N-Qeh"/>
-                                                        <constraint firstItem="RnQ-bh-CRD" firstAttribute="leading" secondItem="kJM-8r-UtU" secondAttribute="leading" id="HWw-5d-7fB"/>
-                                                        <constraint firstItem="Xwh-TX-M2m" firstAttribute="leading" secondItem="398-sK-K5V" secondAttribute="trailing" constant="30" id="Jdw-wf-Ajy"/>
-                                                        <constraint firstItem="eNU-Sm-LND" firstAttribute="top" secondItem="tPy-ai-Cdt" secondAttribute="top" id="Lg6-Pj-uGv"/>
-                                                        <constraint firstItem="8V9-7o-ppF" firstAttribute="leading" secondItem="u5l-4V-ll2" secondAttribute="leading" id="Lj2-dw-F6S"/>
-                                                        <constraint firstItem="uvu-07-lWB" firstAttribute="centerY" secondItem="eNU-Sm-LND" secondAttribute="centerY" id="Nbm-qA-G62"/>
-                                                        <constraint firstItem="tPy-ai-Cdt" firstAttribute="leading" secondItem="PgT-U2-qfU" secondAttribute="trailing" constant="10" id="Q7x-lw-PLk"/>
-                                                        <constraint firstItem="398-sK-K5V" firstAttribute="top" secondItem="eNU-Sm-LND" secondAttribute="bottom" constant="4" id="UpJ-Bz-5kl"/>
-                                                        <constraint firstItem="uvu-07-lWB" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="eNU-Sm-LND" secondAttribute="trailing" priority="999" id="dtj-HK-6Bf"/>
-                                                        <constraint firstAttribute="trailing" secondItem="RnQ-bh-CRD" secondAttribute="trailing" id="fTz-Mj-im0"/>
-                                                        <constraint firstAttribute="bottom" secondItem="tPy-ai-Cdt" secondAttribute="bottom" constant="10" id="h7e-aA-8S8"/>
-                                                        <constraint firstItem="u5l-4V-ll2" firstAttribute="leading" secondItem="398-sK-K5V" secondAttribute="leading" id="iN2-Rp-FL0"/>
-                                                        <constraint firstAttribute="bottom" secondItem="RnQ-bh-CRD" secondAttribute="bottom" id="jjs-ci-KgJ"/>
-                                                        <constraint firstItem="u5l-4V-ll2" firstAttribute="top" secondItem="398-sK-K5V" secondAttribute="bottom" constant="10" id="pmJ-LN-yTJ"/>
-                                                        <constraint firstItem="PgT-U2-qfU" firstAttribute="centerY" secondItem="kJM-8r-UtU" secondAttribute="centerY" id="pqi-5f-Kaq"/>
-                                                        <constraint firstItem="PgT-U2-qfU" firstAttribute="leading" secondItem="kJM-8r-UtU" secondAttribute="leading" constant="20" id="vnY-oc-fF3"/>
-                                                    </constraints>
-                                                    <connections>
-                                                        <outlet property="fileImage" destination="tPy-ai-Cdt" id="v8V-YY-7w4"/>
-                                                        <outlet property="fileNameLabel" destination="eNU-Sm-LND" id="kO4-XE-9cc"/>
-                                                        <outlet property="indexLabel" destination="PgT-U2-qfU" id="VRx-5w-GWu"/>
-                                                        <outlet property="pageCountLabel" destination="Xwh-TX-M2m" id="HZY-Rn-dnq"/>
-                                                        <outlet property="pageRangeBox" destination="8V9-7o-ppF" id="eLB-0c-0Oj"/>
-                                                        <outlet property="pageRangeLabel" destination="u5l-4V-ll2" id="ESe-r2-bDz"/>
-                                                        <outlet property="sizeLabel" destination="398-sK-K5V" id="NP9-LD-Dbc"/>
-                                                    </connections>
-                                                </tableCellView>
-                                            </prototypeCellViews>
-                                        </tableColumn>
-                                    </tableColumns>
-                                </tableView>
-                            </subviews>
-                            <nil key="backgroundColor"/>
-                        </clipView>
-                        <constraints>
-                            <constraint firstAttribute="height" constant="492" id="09E-fS-UGH"/>
-                            <constraint firstAttribute="width" constant="802" id="yWQ-fV-ium"/>
-                        </constraints>
-                        <scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="uXJ-M9-xFS">
-                            <rect key="frame" x="1" y="428" width="478" height="16"/>
-                            <autoresizingMask key="autoresizingMask"/>
-                        </scroller>
-                        <scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="NO" id="TlK-eh-6A5">
-                            <rect key="frame" x="224" y="17" width="15" height="102"/>
-                            <autoresizingMask key="autoresizingMask"/>
-                        </scroller>
-                    </scrollView>
-                    <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="7Ci-3J-z10">
-                        <rect key="frame" x="0.0" y="560" width="803" height="32"/>
-                        <view key="contentView" id="Vig-qK-Oc8">
-                            <rect key="frame" x="0.0" y="0.0" width="803" height="32"/>
-                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                            <subviews>
-                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="MiB-cx-nmS">
-                                    <rect key="frame" x="48" y="8" width="414" height="16"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="410" id="xE4-A5-LKS"/>
-                                    </constraints>
-                                    <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="FRD-3G-VyU">
-                                        <font key="font" usesAppearanceFont="YES"/>
-                                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                    </textFieldCell>
-                                </textField>
-                                <box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="eiO-1W-3yk">
-                                    <rect key="frame" x="0.0" y="-2" width="803" height="5"/>
-                                </box>
-                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="P5F-ew-xgE">
-                                    <rect key="frame" x="474" y="8" width="164" height="16"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="160" id="o5v-Uf-L60"/>
-                                    </constraints>
-                                    <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="Ozg-S8-e03">
-                                        <font key="font" metaFont="system"/>
-                                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                    </textFieldCell>
-                                </textField>
-                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="4NV-bt-MWP">
-                                    <rect key="frame" x="650" y="8" width="101" height="16"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="97" id="G5d-Mn-ipQ"/>
-                                    </constraints>
-                                    <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="hu4-wm-nYF">
-                                        <font key="font" metaFont="system"/>
-                                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                    </textFieldCell>
-                                </textField>
-                            </subviews>
-                            <constraints>
-                                <constraint firstItem="4NV-bt-MWP" firstAttribute="centerY" secondItem="Vig-qK-Oc8" secondAttribute="centerY" id="5tU-q9-eXJ"/>
-                                <constraint firstItem="eiO-1W-3yk" firstAttribute="leading" secondItem="Vig-qK-Oc8" secondAttribute="leading" id="7tl-q6-P4H"/>
-                                <constraint firstItem="P5F-ew-xgE" firstAttribute="centerY" secondItem="Vig-qK-Oc8" secondAttribute="centerY" id="9s3-Jg-For"/>
-                                <constraint firstItem="MiB-cx-nmS" firstAttribute="leading" secondItem="Vig-qK-Oc8" secondAttribute="leading" constant="50" id="NYw-3A-hap"/>
-                                <constraint firstAttribute="trailing" secondItem="eiO-1W-3yk" secondAttribute="trailing" id="NkZ-PV-f1l"/>
-                                <constraint firstItem="4NV-bt-MWP" firstAttribute="leading" secondItem="P5F-ew-xgE" secondAttribute="trailing" constant="16" id="dBa-be-VDs"/>
-                                <constraint firstItem="P5F-ew-xgE" firstAttribute="leading" secondItem="MiB-cx-nmS" secondAttribute="trailing" constant="16" id="k9Y-3p-ZJJ"/>
-                                <constraint firstAttribute="bottom" secondItem="eiO-1W-3yk" secondAttribute="bottom" id="tHj-st-06H"/>
-                                <constraint firstItem="MiB-cx-nmS" firstAttribute="centerY" secondItem="Vig-qK-Oc8" secondAttribute="centerY" id="tto-kF-6Zo"/>
-                            </constraints>
-                        </view>
-                        <constraints>
-                            <constraint firstAttribute="height" constant="32" id="fCF-4q-hhl"/>
-                        </constraints>
-                    </box>
-                    <progressIndicator wantsLayer="YES" horizontalHuggingPriority="750" verticalHuggingPriority="750" maxValue="100" bezeled="NO" indeterminate="YES" controlSize="small" style="spinning" translatesAutoresizingMaskIntoConstraints="NO" id="Uex-2T-CgC">
-                        <rect key="frame" x="394" y="292" width="16" height="16"/>
-                    </progressIndicator>
-                    <box title="Box" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="SNg-B0-ys5">
-                        <rect key="frame" x="800" y="-4" width="7" height="606"/>
-                        <view key="contentView" id="0Wa-d4-jxC">
-                            <rect key="frame" x="3.5" y="5" width="0.0" height="598"/>
-                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                            <subviews>
-                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ypq-Dp-66v">
-                                    <rect key="frame" x="14" y="569" width="37" height="16"/>
-                                    <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="peH-6j-hGv">
-                                        <font key="font" metaFont="system"/>
-                                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                    </textFieldCell>
-                                </textField>
-                                <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="h32-rZ-jac">
-                                    <rect key="frame" x="28" y="352" width="64" height="24"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="64" id="Hww-Pm-Z4F"/>
-                                        <constraint firstAttribute="height" constant="24" id="lXW-K7-g2y"/>
-                                    </constraints>
-                                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="center" drawsBackground="YES" id="5le-fL-zJ4">
-                                        <font key="font" metaFont="system"/>
-                                        <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                    </textFieldCell>
-                                </textField>
-                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="buB-SK-8mO">
-                                    <rect key="frame" x="98" y="356" width="11" height="16"/>
-                                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="x" id="4gU-Us-N60">
-                                        <font key="font" metaFont="system"/>
-                                        <color key="textColor" name="KM_242424_Color40"/>
-                                        <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
-                                    </textFieldCell>
-                                </textField>
-                                <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1M5-tW-MRF">
-                                    <rect key="frame" x="115" y="352" width="64" height="24"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="64" id="NNi-a8-ugp"/>
-                                        <constraint firstAttribute="height" constant="24" id="UIu-wF-ft6"/>
-                                    </constraints>
-                                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="center" drawsBackground="YES" id="hth-64-6pz">
-                                        <font key="font" metaFont="system"/>
-                                        <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                    </textFieldCell>
-                                </textField>
-                                <customView translatesAutoresizingMaskIntoConstraints="NO" id="cQk-Jd-o6w">
-                                    <rect key="frame" x="16" y="534" width="45" height="22"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="22" id="5bY-aF-fW3"/>
-                                    </constraints>
-                                </customView>
-                                <customView translatesAutoresizingMaskIntoConstraints="NO" id="5nS-LC-t5H" customClass="KMImageTitleButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
-                                    <rect key="frame" x="16" y="504" width="45" height="22"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="22" id="iSV-P3-W8x"/>
-                                    </constraints>
-                                </customView>
-                                <customView translatesAutoresizingMaskIntoConstraints="NO" id="85P-Ad-bEf" customClass="KMImageTitleButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
-                                    <rect key="frame" x="16" y="474" width="45" height="22"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="22" id="Ubd-is-gcz"/>
-                                    </constraints>
-                                </customView>
-                                <customView translatesAutoresizingMaskIntoConstraints="NO" id="PNC-MR-g6W" customClass="KMImageTitleButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
-                                    <rect key="frame" x="16" y="444" width="45" height="22"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="22" id="cMH-MX-phe"/>
-                                    </constraints>
-                                </customView>
-                                <customView translatesAutoresizingMaskIntoConstraints="NO" id="ZDa-uQ-GtJ" customClass="KMImageTitleButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
-                                    <rect key="frame" x="16" y="414" width="45" height="22"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="22" id="o0Q-lr-IX5"/>
-                                    </constraints>
-                                </customView>
-                                <customView translatesAutoresizingMaskIntoConstraints="NO" id="QI0-GW-5Ii" customClass="KMImageTitleButton">
-                                    <rect key="frame" x="16" y="384" width="45" height="22"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="22" id="dL3-LB-For"/>
-                                    </constraints>
-                                </customView>
-                                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="K0f-tn-KEz">
-                                    <rect key="frame" x="16" y="58" width="45" height="32"/>
-                                    <buttonCell key="cell" type="bevel" title="Button" bezelStyle="rounded" alignment="center" imageScaling="proportionallyDown" inset="2" id="Add-ub-2Ib">
-                                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                        <font key="font" metaFont="system"/>
-                                    </buttonCell>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="32" id="V6d-tr-cK9"/>
-                                    </constraints>
-                                    <connections>
-                                        <action selector="buttonItemClicked_Append:" target="-2" id="cyh-kP-B0a"/>
-                                    </connections>
-                                </button>
-                                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="y69-3G-4ES">
-                                    <rect key="frame" x="16" y="16" width="45" height="32"/>
-                                    <buttonCell key="cell" type="bevel" title="Button" bezelStyle="rounded" alignment="center" imageScaling="proportionallyDown" inset="2" id="Z1A-FV-RXN">
-                                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                        <font key="font" metaFont="system"/>
-                                    </buttonCell>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="32" id="q50-vx-VcS"/>
-                                    </constraints>
-                                    <connections>
-                                        <action selector="buttonItemClicked_Cancel:" target="-2" id="KQ9-E2-dFz"/>
-                                    </connections>
-                                </button>
-                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="m7b-I1-lQz">
-                                    <rect key="frame" x="185" y="356" width="27" height="16"/>
-                                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="mm" id="xDF-xV-HvN">
-                                        <font key="font" metaFont="system"/>
-                                        <color key="textColor" name="KM_242424_Color40"/>
-                                        <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
-                                    </textFieldCell>
-                                </textField>
-                            </subviews>
-                            <constraints>
-                                <constraint firstItem="ypq-Dp-66v" firstAttribute="top" secondItem="0Wa-d4-jxC" secondAttribute="top" constant="13" id="4ZS-vq-GX3"/>
-                                <constraint firstAttribute="trailing" secondItem="cQk-Jd-o6w" secondAttribute="trailing" constant="16" id="CGa-ih-86n"/>
-                                <constraint firstItem="1M5-tW-MRF" firstAttribute="leading" secondItem="buB-SK-8mO" secondAttribute="trailing" constant="8" id="F4H-Pc-HKp"/>
-                                <constraint firstItem="1M5-tW-MRF" firstAttribute="centerY" secondItem="buB-SK-8mO" secondAttribute="centerY" id="GyN-zV-WNl"/>
-                                <constraint firstAttribute="trailing" secondItem="QI0-GW-5Ii" secondAttribute="trailing" constant="16" id="HTp-f7-cF1"/>
-                                <constraint firstItem="ypq-Dp-66v" firstAttribute="leading" secondItem="0Wa-d4-jxC" secondAttribute="leading" constant="16" id="M6y-8D-c6F"/>
-                                <constraint firstItem="cQk-Jd-o6w" firstAttribute="leading" secondItem="0Wa-d4-jxC" secondAttribute="leading" constant="16" id="O6m-kt-H5S"/>
-                                <constraint firstItem="5nS-LC-t5H" firstAttribute="leading" secondItem="0Wa-d4-jxC" secondAttribute="leading" constant="16" id="P2g-Rb-gfm"/>
-                                <constraint firstItem="K0f-tn-KEz" firstAttribute="leading" secondItem="0Wa-d4-jxC" secondAttribute="leading" constant="16" id="SUr-7k-3w6"/>
-                                <constraint firstItem="buB-SK-8mO" firstAttribute="centerY" secondItem="h32-rZ-jac" secondAttribute="centerY" id="SmF-Y1-BTK"/>
-                                <constraint firstItem="PNC-MR-g6W" firstAttribute="leading" secondItem="0Wa-d4-jxC" secondAttribute="leading" constant="16" id="UWB-wv-Hd7"/>
-                                <constraint firstItem="85P-Ad-bEf" firstAttribute="top" secondItem="5nS-LC-t5H" secondAttribute="bottom" constant="8" id="VTT-jT-ynb"/>
-                                <constraint firstItem="QI0-GW-5Ii" firstAttribute="top" secondItem="ZDa-uQ-GtJ" secondAttribute="bottom" constant="8" id="XEz-hj-D6x"/>
-                                <constraint firstItem="ZDa-uQ-GtJ" firstAttribute="leading" secondItem="0Wa-d4-jxC" secondAttribute="leading" constant="16" id="Y0K-Ei-2dS"/>
-                                <constraint firstAttribute="bottom" secondItem="y69-3G-4ES" secondAttribute="bottom" constant="16" id="YLr-X0-jb3"/>
-                                <constraint firstAttribute="trailing" secondItem="y69-3G-4ES" secondAttribute="trailing" constant="16" id="ZpF-vz-LT2"/>
-                                <constraint firstItem="PNC-MR-g6W" firstAttribute="top" secondItem="85P-Ad-bEf" secondAttribute="bottom" constant="8" id="a59-QB-te7"/>
-                                <constraint firstItem="ZDa-uQ-GtJ" firstAttribute="top" secondItem="PNC-MR-g6W" secondAttribute="bottom" constant="8" id="aFL-0B-6UM"/>
-                                <constraint firstItem="h32-rZ-jac" firstAttribute="leading" secondItem="0Wa-d4-jxC" secondAttribute="leading" constant="28" id="aQC-6z-XyI"/>
-                                <constraint firstItem="QI0-GW-5Ii" firstAttribute="leading" secondItem="0Wa-d4-jxC" secondAttribute="leading" constant="16" id="bFL-5A-acq"/>
-                                <constraint firstItem="y69-3G-4ES" firstAttribute="top" secondItem="K0f-tn-KEz" secondAttribute="bottom" constant="10" id="cyk-8l-ADr"/>
-                                <constraint firstAttribute="trailing" secondItem="K0f-tn-KEz" secondAttribute="trailing" constant="16" id="dnd-sb-O6w"/>
-                                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="m7b-I1-lQz" secondAttribute="trailing" id="fEv-Af-YtF"/>
-                                <constraint firstItem="buB-SK-8mO" firstAttribute="leading" secondItem="h32-rZ-jac" secondAttribute="trailing" constant="8" id="kNU-Lu-J7M"/>
-                                <constraint firstItem="h32-rZ-jac" firstAttribute="top" secondItem="QI0-GW-5Ii" secondAttribute="bottom" constant="8" id="lLj-2k-zIc"/>
-                                <constraint firstItem="85P-Ad-bEf" firstAttribute="leading" secondItem="0Wa-d4-jxC" secondAttribute="leading" constant="16" id="q4I-gf-SEa"/>
-                                <constraint firstAttribute="trailing" secondItem="85P-Ad-bEf" secondAttribute="trailing" constant="16" id="stK-HQ-jg4"/>
-                                <constraint firstAttribute="trailing" secondItem="ZDa-uQ-GtJ" secondAttribute="trailing" constant="16" id="su5-fF-lnn"/>
-                                <constraint firstAttribute="trailing" secondItem="PNC-MR-g6W" secondAttribute="trailing" constant="16" id="tuT-CS-q7o"/>
-                                <constraint firstItem="y69-3G-4ES" firstAttribute="leading" secondItem="0Wa-d4-jxC" secondAttribute="leading" constant="16" id="u66-Cj-WDd"/>
-                                <constraint firstAttribute="trailing" secondItem="5nS-LC-t5H" secondAttribute="trailing" constant="16" id="ueP-jd-4tx"/>
-                                <constraint firstItem="cQk-Jd-o6w" firstAttribute="top" secondItem="ypq-Dp-66v" secondAttribute="bottom" constant="13" id="v1Y-nm-MoK"/>
-                                <constraint firstItem="m7b-I1-lQz" firstAttribute="leading" secondItem="1M5-tW-MRF" secondAttribute="trailing" constant="8" id="wM8-8k-RHL"/>
-                                <constraint firstItem="m7b-I1-lQz" firstAttribute="centerY" secondItem="1M5-tW-MRF" secondAttribute="centerY" id="wlA-ln-yZn"/>
-                                <constraint firstItem="5nS-LC-t5H" firstAttribute="top" secondItem="cQk-Jd-o6w" secondAttribute="bottom" constant="8" id="yL0-wf-5Vu"/>
-                            </constraints>
-                        </view>
-                        <constraints>
-                            <constraint firstAttribute="width" constant="1" id="zKr-Fm-uSY"/>
-                        </constraints>
-                    </box>
-                    <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="HqV-Cr-IvX">
-                        <rect key="frame" x="16" y="16" width="117" height="32"/>
-                        <view key="contentView" id="6sq-oD-H8F">
-                            <rect key="frame" x="0.0" y="0.0" width="117" height="32"/>
-                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        </view>
-                        <constraints>
-                            <constraint firstAttribute="height" constant="32" id="evP-8S-7ws"/>
-                            <constraint firstAttribute="width" constant="117" id="rfq-6X-EAH"/>
-                        </constraints>
-                    </box>
-                    <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="Gzx-57-4ok">
-                        <rect key="frame" x="670" y="16" width="118" height="32"/>
-                        <view key="contentView" id="OM9-9X-Qg3">
-                            <rect key="frame" x="0.0" y="0.0" width="118" height="32"/>
-                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        </view>
-                        <constraints>
-                            <constraint firstAttribute="width" constant="118" id="fs1-v0-uKK"/>
-                            <constraint firstAttribute="height" constant="32" id="zLS-fq-w9l"/>
-                        </constraints>
-                        <color key="fillColor" red="0.92156862750000001" green="0.92156862750000001" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                    </box>
-                    <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="HUw-YH-0kd">
-                        <rect key="frame" x="536" y="16" width="118" height="32"/>
-                        <view key="contentView" id="Br6-3x-aJe">
-                            <rect key="frame" x="0.0" y="0.0" width="118" height="32"/>
-                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        </view>
-                        <constraints>
-                            <constraint firstAttribute="height" constant="32" id="Xxv-iJ-Yz8"/>
-                            <constraint firstAttribute="width" constant="118" id="he0-ii-uPr"/>
-                        </constraints>
-                        <color key="fillColor" red="0.92156862750000001" green="0.92156862750000001" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                    </box>
-                    <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="kXZ-gh-CUA">
-                        <rect key="frame" x="149" y="16" width="32" height="32"/>
-                        <view key="contentView" id="UA4-8E-ANK">
-                            <rect key="frame" x="0.0" y="0.0" width="32" height="32"/>
-                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        </view>
-                        <constraints>
-                            <constraint firstAttribute="width" constant="32" id="5QG-Qe-XCO"/>
-                            <constraint firstAttribute="height" constant="32" id="bxu-mm-jx6"/>
-                        </constraints>
-                        <color key="fillColor" red="0.92156862750000001" green="0.92156862750000001" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                    </box>
-                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="ZHD-fQ-Kbu">
-                        <rect key="frame" x="197" y="2" width="331" height="60"/>
-                        <subviews>
-                            <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Sp2-fV-Wrc">
-                                <rect key="frame" x="0.0" y="22" width="16" height="16"/>
-                                <constraints>
-                                    <constraint firstAttribute="width" constant="16" id="4hN-xK-3Ny"/>
-                                    <constraint firstAttribute="height" constant="16" id="RFX-lT-OaW"/>
-                                </constraints>
-                                <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="KMImageNameTipNormal" id="nPY-oN-wLt"/>
-                            </imageView>
-                            <textField hidden="YES" focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0bJ-0I-xhY">
-                                <rect key="frame" x="18" y="22" width="135" height="16"/>
-                                <textFieldCell key="cell" alignment="left" title="Merge 2 files for free." id="MSL-nN-D7Q">
-                                    <font key="font" usesAppearanceFont="YES"/>
-                                    <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                    <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                </textFieldCell>
-                            </textField>
-                        </subviews>
-                        <constraints>
-                            <constraint firstItem="Sp2-fV-Wrc" firstAttribute="centerY" secondItem="ZHD-fQ-Kbu" secondAttribute="centerY" id="1ZQ-Co-nIt"/>
-                            <constraint firstAttribute="height" constant="60" id="2OM-5d-FcX"/>
-                            <constraint firstItem="0bJ-0I-xhY" firstAttribute="leading" secondItem="Sp2-fV-Wrc" secondAttribute="trailing" constant="4" id="8g5-bR-EWs"/>
-                            <constraint firstItem="0bJ-0I-xhY" firstAttribute="centerY" secondItem="ZHD-fQ-Kbu" secondAttribute="centerY" id="EG9-4R-lRH"/>
-                            <constraint firstItem="Sp2-fV-Wrc" firstAttribute="leading" secondItem="ZHD-fQ-Kbu" secondAttribute="leading" id="j0b-bp-y7B"/>
-                        </constraints>
-                    </customView>
-                </subviews>
-                <constraints>
-                    <constraint firstAttribute="trailing" secondItem="Gzx-57-4ok" secondAttribute="trailing" constant="16" id="1Ny-f2-6fJ"/>
-                    <constraint firstAttribute="bottom" secondItem="HqV-Cr-IvX" secondAttribute="bottom" constant="16" id="3xl-pe-oik"/>
-                    <constraint firstItem="SNg-B0-ys5" firstAttribute="leading" secondItem="7Ci-3J-z10" secondAttribute="trailing" id="72G-rH-m08"/>
-                    <constraint firstItem="SNg-B0-ys5" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" id="EIV-N9-5mk"/>
-                    <constraint firstAttribute="bottom" secondItem="Gzx-57-4ok" secondAttribute="bottom" constant="16" id="EaO-WC-Vov"/>
-                    <constraint firstAttribute="bottom" secondItem="Ggk-eO-LzC" secondAttribute="bottom" constant="60" id="FmD-vC-lz3"/>
-                    <constraint firstAttribute="bottom" secondItem="HUw-YH-0kd" secondAttribute="bottom" constant="16" id="GbC-8A-lSi"/>
-                    <constraint firstItem="SNg-B0-ys5" firstAttribute="bottom" secondItem="se5-gp-TjO" secondAttribute="bottom" id="GbZ-tV-MXY"/>
-                    <constraint firstItem="Ggk-eO-LzC" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="LEN-lk-9rV"/>
-                    <constraint firstItem="HqV-Cr-IvX" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="16" id="Lia-zA-HV0"/>
-                    <constraint firstItem="ZHD-fQ-Kbu" firstAttribute="leading" secondItem="kXZ-gh-CUA" secondAttribute="trailing" constant="16" id="WmT-JK-Agc"/>
-                    <constraint firstItem="Gzx-57-4ok" firstAttribute="leading" secondItem="HUw-YH-0kd" secondAttribute="trailing" constant="16" id="Z1N-QN-kcx"/>
-                    <constraint firstItem="ZHD-fQ-Kbu" firstAttribute="centerY" secondItem="UA4-8E-ANK" secondAttribute="centerY" id="ZD6-MI-gN1"/>
-                    <constraint firstAttribute="trailing" secondItem="SNg-B0-ys5" secondAttribute="trailing" id="d0q-Hn-baS"/>
-                    <constraint firstItem="SNg-B0-ys5" firstAttribute="leading" secondItem="Ggk-eO-LzC" secondAttribute="trailing" constant="1" id="gNP-Dq-gpr"/>
-                    <constraint firstItem="HUw-YH-0kd" firstAttribute="leading" secondItem="ZHD-fQ-Kbu" secondAttribute="trailing" constant="8" id="miE-8B-I95"/>
-                    <constraint firstItem="Uex-2T-CgC" firstAttribute="centerX" secondItem="se5-gp-TjO" secondAttribute="centerX" id="oIl-2n-ghc"/>
-                    <constraint firstItem="7Ci-3J-z10" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="sgd-dw-rOw"/>
-                    <constraint firstItem="Uex-2T-CgC" firstAttribute="centerY" secondItem="se5-gp-TjO" secondAttribute="centerY" id="t3J-uR-7G2"/>
-                    <constraint firstItem="kXZ-gh-CUA" firstAttribute="leading" secondItem="HqV-Cr-IvX" secondAttribute="trailing" constant="16" id="uOh-rj-HpD"/>
-                    <constraint firstAttribute="bottom" secondItem="kXZ-gh-CUA" secondAttribute="bottom" constant="16" id="xLp-bb-re4"/>
-                    <constraint firstItem="7Ci-3J-z10" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" constant="8" id="zCm-dk-fmd"/>
-                </constraints>
-            </view>
-            <connections>
-                <outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
-            </connections>
-            <point key="canvasLocation" x="481" y="246"/>
-        </window>
-        <customView id="EEC-VI-dAb">
-            <rect key="frame" x="0.0" y="0.0" width="300" height="151"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="IqC-f7-Lnl">
-                    <rect key="frame" x="85" y="21" width="130" height="130"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="130" id="XFM-Ht-WVP"/>
-                        <constraint firstAttribute="width" constant="130" id="yRj-eN-lTo"/>
-                    </constraints>
-                    <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="KMImageNameEmptyFile" id="pVm-Ye-CAM"/>
-                </imageView>
-                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1dO-kv-PuF">
-                    <rect key="frame" x="-2" y="0.0" width="304" height="16"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="300" id="DGQ-Lx-g1U"/>
-                    </constraints>
-                    <textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="center" title="No file added. Click &quot;Add&quot; to continue." id="yYu-jg-Dfs">
-                        <font key="font" metaFont="system"/>
-                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                        <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
-                    </textFieldCell>
-                </textField>
-            </subviews>
-            <constraints>
-                <constraint firstItem="IqC-f7-Lnl" firstAttribute="centerX" secondItem="EEC-VI-dAb" secondAttribute="centerX" id="9fR-st-jS0"/>
-                <constraint firstItem="IqC-f7-Lnl" firstAttribute="top" secondItem="EEC-VI-dAb" secondAttribute="top" id="DwE-sG-73z"/>
-                <constraint firstItem="1dO-kv-PuF" firstAttribute="leading" secondItem="EEC-VI-dAb" secondAttribute="leading" id="JXC-IZ-QdN"/>
-                <constraint firstAttribute="trailing" secondItem="1dO-kv-PuF" secondAttribute="trailing" id="QwC-pm-aSq"/>
-                <constraint firstAttribute="bottom" secondItem="1dO-kv-PuF" secondAttribute="bottom" id="flM-aT-lzx"/>
-                <constraint firstItem="1dO-kv-PuF" firstAttribute="top" secondItem="IqC-f7-Lnl" secondAttribute="bottom" constant="5" id="tRO-pf-Sm1"/>
-            </constraints>
-            <point key="canvasLocation" x="87" y="-266"/>
-        </customView>
-        <customView id="Bxz-CR-NgQ" customClass="KMBlankView" customModule="PDF_Reader_Pro" customModuleProvider="target">
-            <rect key="frame" x="0.0" y="0.0" width="770" height="419"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="h67-mo-mZ1">
-                    <rect key="frame" x="176" y="146" width="418" height="188"/>
-                    <subviews>
-                        <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="t1l-8E-kYD">
-                            <rect key="frame" x="139" y="48" width="140" height="140"/>
-                            <constraints>
-                                <constraint firstAttribute="width" constant="140" id="ohT-2c-1nR"/>
-                                <constraint firstAttribute="height" constant="140" id="zC5-ij-Qwj"/>
-                            </constraints>
-                            <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="KMImageNameEmptyListNor" id="EWq-IE-D3x"/>
-                        </imageView>
-                        <textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="YH7-eM-Mb2">
-                            <rect key="frame" x="163" y="32" width="92" height="16"/>
-                            <textFieldCell key="cell" title="Multiline Label" id="KRo-Gz-2n3">
-                                <font key="font" metaFont="system"/>
-                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                            </textFieldCell>
-                        </textField>
-                        <textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="loI-T9-Pz8">
-                            <rect key="frame" x="161" y="8" width="96" height="16"/>
-                            <textFieldCell key="cell" alignment="center" title="Multiline Label" id="PzF-HN-Jsi">
-                                <font key="font" metaFont="system"/>
-                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                            </textFieldCell>
-                        </textField>
-                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="yde-fB-mTL" customClass="KMPDFEditAppendCustomView" customModule="PDF_Reader_Pro" customModuleProvider="target">
-                            <rect key="frame" x="0.0" y="0.0" width="418" height="188"/>
-                        </customView>
-                    </subviews>
-                    <constraints>
-                        <constraint firstItem="t1l-8E-kYD" firstAttribute="centerX" secondItem="h67-mo-mZ1" secondAttribute="centerX" id="4iH-n5-pFE"/>
-                        <constraint firstItem="t1l-8E-kYD" firstAttribute="top" secondItem="h67-mo-mZ1" secondAttribute="top" id="CP1-ys-0NX"/>
-                        <constraint firstItem="YH7-eM-Mb2" firstAttribute="centerX" secondItem="h67-mo-mZ1" secondAttribute="centerX" id="Gxz-2u-WTF"/>
-                        <constraint firstAttribute="bottom" secondItem="yde-fB-mTL" secondAttribute="bottom" id="HER-UR-l1m"/>
-                        <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="loI-T9-Pz8" secondAttribute="trailing" id="Jaz-ML-ErA"/>
-                        <constraint firstAttribute="trailing" secondItem="yde-fB-mTL" secondAttribute="trailing" id="PXy-Zk-Odl"/>
-                        <constraint firstItem="loI-T9-Pz8" firstAttribute="centerX" secondItem="h67-mo-mZ1" secondAttribute="centerX" id="Q6Z-sZ-aV5"/>
-                        <constraint firstItem="yde-fB-mTL" firstAttribute="top" secondItem="h67-mo-mZ1" secondAttribute="top" id="Zw8-rC-Vir"/>
-                        <constraint firstItem="YH7-eM-Mb2" firstAttribute="top" secondItem="t1l-8E-kYD" secondAttribute="bottom" id="ggr-Dl-gbb"/>
-                        <constraint firstItem="loI-T9-Pz8" firstAttribute="top" secondItem="YH7-eM-Mb2" secondAttribute="bottom" constant="8" id="kBC-ma-7G2"/>
-                        <constraint firstAttribute="bottom" secondItem="loI-T9-Pz8" secondAttribute="bottom" constant="8" id="kVL-N3-yfm"/>
-                        <constraint firstAttribute="width" constant="418" id="nKK-U8-7fX"/>
-                        <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="YH7-eM-Mb2" secondAttribute="trailing" id="x3g-rc-dzz"/>
-                        <constraint firstItem="yde-fB-mTL" firstAttribute="leading" secondItem="h67-mo-mZ1" secondAttribute="leading" id="zGa-U9-Ahz"/>
-                    </constraints>
-                </customView>
-            </subviews>
-            <constraints>
-                <constraint firstItem="h67-mo-mZ1" firstAttribute="centerX" secondItem="Bxz-CR-NgQ" secondAttribute="centerX" id="QIV-Ne-18k"/>
-                <constraint firstItem="h67-mo-mZ1" firstAttribute="centerY" secondItem="Bxz-CR-NgQ" secondAttribute="centerY" constant="-30" id="p7U-T9-Ar7"/>
-            </constraints>
-            <connections>
-                <outlet property="customView" destination="yde-fB-mTL" id="UIb-V0-7ai"/>
-                <outlet property="imageView" destination="t1l-8E-kYD" id="dtz-Tg-gUG"/>
-                <outlet property="secondTitleLabel" destination="loI-T9-Pz8" id="XSV-VX-aVh"/>
-                <outlet property="titleLabel" destination="YH7-eM-Mb2" id="7Cf-Yu-NGQ"/>
-            </connections>
-            <point key="canvasLocation" x="-156" y="835"/>
-        </customView>
-    </objects>
-    <resources>
-        <image name="KMImageNameEmptyFile" width="130" height="130"/>
-        <image name="KMImageNameEmptyListNor" width="200" height="200"/>
-        <image name="KMImageNameTipNormal" width="16" height="16"/>
-        <image name="KMImageNameUXIconBtnCloseNor" width="16" height="16"/>
-        <image name="NSAdvanced" width="32" height="32"/>
-        <namedColor name="KM_242424_Color40">
-            <color red="0.14100000262260437" green="0.14100000262260437" blue="0.14100000262260437" alpha="0.40000000596046448" colorSpace="custom" customColorSpace="sRGB"/>
-        </namedColor>
-    </resources>
-</document>

+ 3 - 3
PDF Office/PDF Master/Class/PDFTools/Merge/OCPart/KMSavePanelAccessoryController.xib

@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22154" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22154"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMSavePanelAccessoryController" customModule="PDF_Master" customModuleProvider="target">
+        <customObject id="-2" userLabel="File's Owner" customClass="KMSavePanelAccessoryController" customModule="PDF_Reader_Pro" customModuleProvider="target">
             <connections>
                 <outlet property="openAutomaticButton" destination="NPu-wD-FJY" id="sB2-tM-cdd"/>
                 <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>

+ 0 - 164
PDF Office/PDF Master/Class/PDFTools/Merge/View/KMMergeCollectionPageViewItem.swift

@@ -1,164 +0,0 @@
-//
-//  KMMergeCollectionPageViewItem.swift
-//  PDF Reader Pro
-//
-//  Created by tangchao on 2022/11/25.
-//
-
-import Cocoa
-import PDFKit
-
-typealias KMMergeCollectionPageViewItemFoldClick = (_ viewItem: AnyObject)->()
-typealias KMMergeCollectionPageViewItemSelectedClick = (_ viewItem: AnyObject)->()
-class KMMergeCollectionPageViewItem: NSCollectionViewItem {
-
-    lazy var iconImageView = NSImageView()
-    lazy var backgroundView = NSView()
-    lazy var pageView = KMPDFThumbnialPageView()
-    
-    lazy var nameLabel = NSTextField(labelWithString: "")
-    
-    var flodClick: KMMergeCollectionPageViewItemFoldClick!
-    var selectedClick: KMMergeCollectionPageViewItemSelectedClick!
-    
-    private var flodButton = NSButton()
-    private var selectCheckBox = NSButton(checkboxWithTitle: "", target: nil, action: nil)
-    
-    private var myModel: KMMergePageModel!
-    var model: KMMergePageModel {
-        get {
-            myModel
-        }
-        set {
-            myModel = newValue
-            pageView.page = newValue.page;
-            if newValue.pageID == 0 {
-                flodButton.isHidden = false
-            } else {
-                flodButton.isHidden = true
-            }
-            
-            
-            if model.pageID == 0 {
-                nameLabel.stringValue = fileModel.documentURL.lastPathComponent.components(separatedBy: ".").first!
-            } else {
-                nameLabel.stringValue = String(model.pageID+1)
-            }
-            
-            if model.selected {
-                selectCheckBox.state = NSControl.StateValue.on
-            } else {
-                selectCheckBox.state = NSControl.StateValue.off
-            }
-        }
-    }
-    
-    private var myFileModel: KMMergeFileModel!
-    var fileModel: KMMergeFileModel {
-        get {
-            myFileModel
-        }
-        set {
-            myFileModel = newValue
-        }
-    }
-    
-    override func viewDidLoad() {
-        super.viewDidLoad()
-        
-        view.addSubview(backgroundView)
-        view.addSubview(pageView)
-        view.addSubview(flodButton)
-        view.addSubview(selectCheckBox)
-        view.addSubview(nameLabel)
-        
-        nameLabel.alignment = .center
-        nameLabel.lineBreakMode = .byTruncatingTail
-        
-        flodButton.wantsLayer = true
-        flodButton.isBordered = false;
-        flodButton.title = NSLocalizedString("折叠", comment: "")
-        flodButton.layer?.backgroundColor = NSColor.white.cgColor;
-        flodButton.target = self
-        flodButton.action = #selector(flodButtonAction)
-        
-//        let clickGestureRecongnizer = NSClickGestureRecognizer()
-//        clickGestureRecongnizer.numberOfClicksRequired = 2
-//        view.addGestureRecognizer(clickGestureRecongnizer)
-//        clickGestureRecongnizer.target = self
-//        clickGestureRecongnizer.action = #selector(clickGestureRecongnizerAction)
-    }
-    
-    override func viewDidLayout() {
-        super.viewDidLayout()
-        
-        let width = NSWidth(view.bounds)
-        let height = NSHeight(view.bounds)
-        
-        iconImageView.frame = view.bounds
-        backgroundView.frame = view.bounds
-        
-        let selectCheckBoxSize: CGFloat = 18
-        selectCheckBox.frame = NSMakeRect(width-selectCheckBoxSize-5, height-selectCheckBoxSize-5, selectCheckBoxSize, selectCheckBoxSize)
-        
-        let flodSize: CGFloat = 28
-        flodButton.frame = NSMakeRect(width-flodSize-10, height-flodSize-30, flodSize, flodSize)
-        
-        nameLabel.frame = NSMakeRect(0, 0, width, 20)
-        
-        let border: CGFloat = 10
-        var bounds: NSRect = NSZeroRect
-        if (myModel != nil) {
-            bounds = myModel.page.bounds
-        }
-        
-        if (bounds.size.width == 0) {
-            return
-        }
-        
-        if (bounds.size.height == 0) {
-            return
-        }
-        
-        let pageSelectionSize = CGSize(width: self.view.frame.size.width-30, height: self.view.frame.size.height-40)
-        var size = NSMakeSize(pageSelectionSize.width - 2 * border, pageSelectionSize.height - 2 * border)
-        let minScale = min(size.width/bounds.size.width, size.height/bounds.size.height)
-        size.width = bounds.size.width * minScale
-        size.height = bounds.size.height * minScale
-        
-        let pageViewX = (pageSelectionSize.width-size.width) * 0.5 + 15
-        let pageViewY = (pageSelectionSize.height-size.height) * 0.5 + 10
-        pageView.frame = NSMakeRect(pageViewX, pageViewY, size.width, size.height)
-    }
-    
-    override var isSelected: Bool {
-        get {
-            super.isSelected
-        }
-        set {
-            super.isSelected = newValue
-            
-            backgroundView.wantsLayer = true
-            if newValue {
-                backgroundView.layer?.backgroundColor = NSColor.blue.cgColor
-            } else {
-                backgroundView.layer?.backgroundColor = NSColor.clear.cgColor
-            }
-        }
-    }
-    
-    override func mouseUp(with event: NSEvent) {
-        guard let callback = selectedClick else {
-            return
-        }
-        callback(self)
-    }
-    
-    @objc func flodButtonAction() {
-        guard let callback = flodClick else {
-            return
-        }
-        callback(self)
-    }
-}
-

+ 0 - 22
PDF Office/PDF Master/Class/PDFTools/Merge/View/KMMergeCollectionPageViewItem.xib

@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22155" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
-    <dependencies>
-        <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22155"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMMergeCollectionPageViewItem" customModule="PDF_Master" customModuleProvider="target">
-            <connections>
-                <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
-            </connections>
-        </customObject>
-        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
-        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
-        <customView id="Hz6-mo-xeY">
-            <rect key="frame" x="0.0" y="0.0" width="480" height="272"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <point key="canvasLocation" x="132" y="-72"/>
-        </customView>
-    </objects>
-</document>

+ 0 - 174
PDF Office/PDF Master/Class/PDFTools/Merge/View/KMMergeCollectionViewItem.swift

@@ -1,174 +0,0 @@
-//
-//  KMMergeCollectionViewItem.swift
-//  PDF Reader Pro
-//
-//  Created by tangchao on 2022/11/23.
-//
-
-import Cocoa
-import PDFKit
-
-typealias KMMergeCollectionViewItemDoubleClick = (_ viewItem: AnyObject)->()
-typealias KMMergeCollectionViewItemPageRangeClick = (_ viewItem: AnyObject)->()
-class KMMergeCollectionViewItem: NSCollectionViewItem {
-
-    lazy var iconImageView = NSImageView()
-    lazy var backgroundView = NSView()
-    lazy var selectedView = NSView()
-    lazy var pageView = KMPDFThumbnialPageView()
-    
-    private var expandButton = NSButton()
-    private var pageRangeButton = NSButton()
-    
-    lazy var nameLabel = NSTextField(labelWithString: "")
-    
-    var doubleClick: KMMergeCollectionViewItemDoubleClick!
-    var pageRangeClick: KMMergeCollectionViewItemPageRangeClick!
-    
-    private var myModel: KMMergeFileModel!
-    var model: KMMergeFileModel {
-        get {
-            myModel
-        }
-        set {
-            myModel = newValue
-            
-            pageView.page = newValue.page;
-            nameLabel.stringValue = model.documentURL.lastPathComponent.components(separatedBy: ".").first!
-            if newValue.pageRange == .custom {
-                pageRangeButton.title = model.pageRangeString
-            } else {
-                pageRangeButton.title = (newValue.pageRange).rawValue
-            }
-        }
-    }
-    
-    override func viewDidLoad() {
-        super.viewDidLoad()
-        
-        view.addSubview(backgroundView)
-        view.addSubview(selectedView)
-        view.addSubview(pageView)
-        view.addSubview(expandButton)
-        view.addSubview(pageRangeButton)
-        view.addSubview(nameLabel)
-        
-        selectedView.wantsLayer = true
-        selectedView.layer?.backgroundColor = NSColor.white.cgColor
-        selectedView.layer?.borderWidth = 1
-        selectedView.layer?.borderColor = NSColor.white.cgColor
-        selectedView.layer?.cornerRadius = 8
-        nameLabel.alignment = .center
-        nameLabel.lineBreakMode = .byTruncatingTail
-        
-        expandButton.wantsLayer = true
-        expandButton.isBordered = false
-        expandButton.title = NSLocalizedString("Expand", comment: "")
-        expandButton.layer?.backgroundColor = NSColor.white.cgColor;
-        expandButton.target = self
-        expandButton.action = #selector(expandButtonAction)
-        
-        pageRangeButton.wantsLayer = true
-        pageRangeButton.isBordered = false
-        pageRangeButton.layer?.backgroundColor = NSColor.lightGray.cgColor
-        pageRangeButton.target = self
-        pageRangeButton.action = #selector(pageRangeButtonAction)
-        
-        let clickGestureRecongnizer = NSClickGestureRecognizer()
-        clickGestureRecongnizer.numberOfClicksRequired = 2
-//        view.addGestureRecognizer(clickGestureRecongnizer)
-        clickGestureRecongnizer.target = self
-        clickGestureRecongnizer.action = #selector(clickGestureRecongnizerAction)
-    }
-    
-    override func viewDidLayout() {
-        super.viewDidLayout()
-        
-        let width = NSWidth(view.bounds)
-        let height = NSHeight(view.bounds)
-        
-        iconImageView.frame = view.bounds
-        backgroundView.frame = view.bounds
-        
-        let flodSize: CGFloat = 28
-        expandButton.frame = NSMakeRect(width-flodSize-10, height-flodSize-10, flodSize, flodSize)
-        
-        pageRangeButton.frame = NSMakeRect(15, 10+20+10, width-30, 28)
-        
-        selectedView.frame = NSMakeRect(15, 20, width-30, height-20)
-        
-        nameLabel.frame = NSMakeRect(0, 0, width, 20)
-        
-        let border: CGFloat = 10
-        var bounds: NSRect = NSZeroRect
-        if (myModel != nil) {
-            bounds = myModel.page.bounds
-        }
-        
-        if (bounds.size.width == 0) {
-            return
-        }
-        
-        if (bounds.size.height == 0) {
-            return
-        }
-        
-        var pageSelectionSize = CGSize(width: self.view.frame.size.width-30, height: self.view.frame.size.height-40)
-//        pageSelectionSize.height -= 40
-        var size = NSMakeSize(pageSelectionSize.width - 2 * border, pageSelectionSize.height - 2 * border)
-        let minScale = min(size.width/bounds.size.width, size.height/bounds.size.height)
-        size.width = bounds.size.width * minScale
-        size.height = bounds.size.height * minScale
-        
-        let pageViewX = (pageSelectionSize.width-size.width) * 0.5 + 15
-        let pageViewY = (pageSelectionSize.height-size.height) * 0.5 + 20
-        pageView.frame = NSMakeRect(pageViewX, pageViewY, size.width, size.height)
-    }
-    
-    override var isSelected: Bool {
-        get {
-            super.isSelected
-        }
-        set {
-            super.isSelected = newValue
-            
-            backgroundView.wantsLayer = true
-            if newValue {
-//                backgroundView.layer?.backgroundColor = NSColor.blue.cgColor
-                selectedView.layer?.borderColor = NSColor.blue.cgColor
-            } else {
-//                backgroundView.layer?.backgroundColor = NSColor.clear.cgColor
-                selectedView.layer?.borderColor = NSColor.white.cgColor
-            }
-        }
-    }
-    
-    override func mouseDown(with event: NSEvent) {
-        if event.clickCount == 2 {
-            guard let callback = doubleClick else {
-                return
-            }
-            callback(self)
-        } else {
-            super.mouseDown(with: event)
-        }
-    }
-    
-    @objc func clickGestureRecongnizerAction() {
-        
-    }
-    
-    @objc func expandButtonAction() {
-        guard let callback = doubleClick else {
-            return
-        }
-        callback(self)
-    }
-    
-    @objc func pageRangeButtonAction() {
-        guard let callback = pageRangeClick else {
-            return
-        }
-        callback(self)
-    }
-}

+ 0 - 22
PDF Office/PDF Master/Class/PDFTools/Merge/View/KMMergeCollectionViewItem.xib

@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22155" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
-    <dependencies>
-        <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22155"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMMergeCollectionViewItem" customModule="PDF_Master" customModuleProvider="target">
-            <connections>
-                <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
-            </connections>
-        </customObject>
-        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
-        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
-        <customView id="Hz6-mo-xeY">
-            <rect key="frame" x="0.0" y="0.0" width="480" height="272"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <point key="canvasLocation" x="132" y="-72"/>
-        </customView>
-    </objects>
-</document>

+ 0 - 66
PDF Office/PDF Master/Class/PDFTools/Merge/View/KMMergeSelect.swift

@@ -1,66 +0,0 @@
-//
-//  KMMergeSelect.swift
-//  PDF Reader Pro
-//
-//  Created by tangchao on 2023/3/24.
-//
-
-import Cocoa
-
-class KMMergeSelect: KMDesignSelect {
-    
-    private var button: NSButton?
-    private var rightButton: NSButton?
-
-    override func viewDidLoad() {
-        super.viewDidLoad()
-        
-        let button = NSButton()
-        button.frame = self.view.bounds
-        self.view.addSubview(button)
-        button.autoresizingMask = [.width, .height]
-        
-        button.target = self
-        button.action = #selector(buttonAction)
-        button.wantsLayer = true
-        button.isBordered = false
-        button.layer?.backgroundColor = NSColor.clear.cgColor
-        button.title = ""
-        self.button = button
-        
-        let rightButton = NSButton()
-        rightButton.frame = NSMakeRect(NSWidth(self.view.frame)-40, 0, 40, NSHeight(self.view.frame))
-        self.view.addSubview(rightButton)
-        rightButton.autoresizingMask = [.minXMargin, .height]
-        
-        rightButton.target = self
-        rightButton.action = #selector(buttonAction)
-        rightButton.wantsLayer = true
-        rightButton.isBordered = false
-        rightButton.layer?.backgroundColor = NSColor.clear.cgColor
-        rightButton.title = ""
-        self.rightButton = rightButton
-    }
-    
-    override var editable: Bool {
-        get {
-            return super.editable
-        }
-        set {
-            super.editable = newValue
-            
-            if (self.button != nil) {
-                DispatchQueue.main.async {
-                    self.button?.isHidden = newValue
-                }
-            }
-        }
-    }
-    
-    @objc private func buttonAction() {
-        guard let callback = self.mainBox.downCallback else {
-            return
-        }
-        callback(true, self.mainBox, NSEvent())
-    }
-}

+ 0 - 386
PDF Office/PDF Master/Class/PDFTools/Merge/View/KMMergeTitleBar.swift

@@ -1,386 +0,0 @@
-//
-//  KMMergeTitleBar.swift
-//  PDF Reader Pro
-//
-//  Created by tangchao on 2022/11/23.
-//
-
-import Cocoa
-
-enum KMMergeTitleBarButtonID: Int {
-    case add = 0
-    case delete = 1
-    case zoomOut = 2
-    case zoomIn = 3
-    case merge = 4
-    case cancel = 5
-}
-
-typealias KMMergeTitleBarItemViewClick = (Int)->()
-class KMMergeTitleBarItem: NSView {
-    lazy var leftButton = NSButton()
-    lazy var rightButton = NSButton()
-    
-    var itemClick: KMMergeTitleBarItemViewClick!
-    
-    override init(frame frameRect: NSRect) {
-        super.init(frame: frameRect)
-        
-        addSubview(leftButton)
-        addSubview(rightButton)
-        
-        leftButton.isBordered = false
-        rightButton.isBordered = false
-        
-        leftButton.title = ""
-        leftButton.target = self
-        leftButton.action = #selector(leftButtonAction)
-        rightButton.target = self
-        rightButton.action = #selector(rightButtonAction)
-    }
-    
-    required init?(coder: NSCoder) {
-        fatalError("init(coder:) has not been implemented")
-    }
-    
-    override func layout() {
-        super.layout()
-        
-        let width = NSWidth(self.bounds)
-        let height = NSHeight(self.bounds)
-        
-        let leftSize: CGFloat = 18
-        leftButton.frame = NSMakeRect(0, (height-leftSize)*0.5, leftSize, leftSize)
-        rightButton.frame = NSMakeRect(leftSize, 0, width-leftSize, height)
-    }
-    
-    @objc func leftButtonAction() {
-        guard let callback = itemClick else {
-            return
-        }
-        callback(1)
-    }
-    
-    @objc func rightButtonAction() {
-        guard let callback = itemClick else {
-            return
-        }
-        callback(2)
-    }
-}
-
-protocol KMMergeTitleBarDelegate : NSObjectProtocol {
-    func titleBar(titleBar: KMMergeTitleBar, itemDidClick: KMMergeTitleBarButtonID)
-}
-
-typealias KMMergeTitleBarItemClick = (KMMergeTitleBarButtonID)->()
-typealias KMMergeTitleBarPageRangeClick = (_ index: Int, _ pageString: String)->()
-class KMMergeTitleBar: NSView {
-
-    lazy var addItem = KMMergeTitleBarItem()
-    private lazy var deleteItem = KMMergeTitleBarItem()
-    private lazy var vLine = NSView()
-    private lazy var zoomOutButton = NSButton()
-    private lazy var zoomInButton = NSButton()
-    
-    private lazy var pagePageComboBox = NSComboBox()
-    
-    private lazy var mergeButton = NSButton()
-    private lazy var cancelButton = NSButton()
-    private lazy var bottomLine = NSView()
-    
-    weak open var delegate: KMMergeTitleBarDelegate?
-    var itemClick: KMMergeTitleBarItemClick!
-    var pageRangeClick: KMMergeTitleBarPageRangeClick!
-    
-    private var myModel: KMMergeFileModel!
-    var model: KMMergeFileModel {
-        get {
-            myModel
-        }
-        set {
-            myModel = newValue
-            
-            if newValue.pageRange == .custom {
-                if !newValue.pageRangeString.isEmpty {
-                    pagePageComboBox.stringValue = newValue.pageRangeString
-                }
-                
-                pagePageComboBox.isEditable = true
-            } else if newValue.pageRange == .all {
-                pagePageComboBox.stringValue = NSLocalizedString("全部页面", comment: "")
-            } else if newValue.pageRange == .oddPages {
-                pagePageComboBox.stringValue = NSLocalizedString("奇数页面", comment: "")
-            } else if newValue.pageRange == .evenPages {
-                pagePageComboBox.stringValue = NSLocalizedString("偶数页面", comment: "")
-            }
-        }
-    }
-    
-    deinit {
-        /// 释放
-    }
-    
-    override init(frame frameRect: NSRect) {
-        super.init(frame: frameRect)
-        
-        initDefaultValue()
-        initSubViews()
-    }
-    
-    required init?(coder: NSCoder) {
-        fatalError("init(coder:) has not been implemented")
-    }
-    
-    override var isFlipped: Bool {
-        return true
-    }
-    
-    func initDefaultValue() {
-        addItem.wantsLayer = true
-        addItem.rightButton.title = NSLocalizedString("新增文件", comment: "")
-        
-        addItem.itemClick = {
-            [weak weakSelf = self] (index: Int) -> () in
-            guard let itemClickAction = weakSelf?.itemClick else {
-                return
-            }
-            
-            itemClickAction(KMMergeTitleBarButtonID.add)
-        }
-        
-        deleteItem.wantsLayer = true
-        deleteItem.rightButton.title = NSLocalizedString("删除", comment: "")
-        deleteItem.itemClick = {
-            [weak weakSelf = self] (index: Int) -> () in
-            guard let itemClickAction = weakSelf?.itemClick else {
-                return
-            }
-            
-            itemClickAction(KMMergeTitleBarButtonID.delete)
-        }
-        
-        vLine.wantsLayer = true
-        vLine.layer?.backgroundColor = NSColor.lightGray.cgColor
-        
-        zoomOutButton.wantsLayer = true
-        zoomOutButton.isBordered = false
-        zoomOutButton.title = "+"
-        zoomOutButton.layer?.borderWidth = 1;
-        zoomOutButton.layer?.borderColor = NSColor.gray.cgColor;
-        zoomOutButton.layer?.cornerRadius = 12
-        zoomOutButton.target = self
-        zoomOutButton.action = #selector(zoomOutButtonAction)
-        
-        zoomInButton.wantsLayer = true
-        zoomInButton.isBordered = false
-        zoomInButton.title = "-"
-        zoomInButton.layer?.borderWidth = 1;
-        zoomInButton.layer?.borderColor = NSColor.gray.cgColor;
-        zoomInButton.layer?.cornerRadius = 12
-        zoomInButton.target = self
-        zoomInButton.action = #selector(zoomInButtonAction)
-        
-        pagePageComboBox.stringValue = "全部页面"
-        pagePageComboBox.placeholderString = NSLocalizedString("如1,3-5,10", comment: "")
-        pagePageComboBox.delegate = self
-        pagePageComboBox.isEditable = false
-        pagePageComboBox.addItems(withObjectValues: [NSLocalizedString("全部页面", comment: ""),
-                                                     NSLocalizedString("奇数页面", comment: ""),
-                                                     NSLocalizedString("偶数页面", comment: ""),
-                                                     NSLocalizedString("自定义", comment: "")])
-        
-        mergeButton.wantsLayer = true
-        mergeButton.isBordered = false
-        mergeButton.title = NSLocalizedString("合并", comment: "")
-        mergeButton.attributedTitle = NSMutableAttributedString(string: mergeButton.title, attributes: [NSAttributedString.Key.foregroundColor : NSColor.white])
-        mergeButton.layer?.backgroundColor = NSColor.black.cgColor
-        mergeButton.layer?.cornerRadius = 5
-        mergeButton.target = self
-        mergeButton.action = #selector(mergeButtonAction)
-        
-        cancelButton.wantsLayer = true
-        cancelButton.isBordered = false
-        cancelButton.title = NSLocalizedString("关闭", comment: "")
-        cancelButton.layer?.backgroundColor = NSColor.white.cgColor
-        cancelButton.layer?.cornerRadius = 5
-        cancelButton.layer?.borderWidth = 1
-        cancelButton.layer?.borderColor = NSColor.black.cgColor
-        cancelButton.target = self
-        cancelButton.action = #selector(cancelButtonAction)
-        
-        bottomLine.wantsLayer = true
-        bottomLine.layer?.backgroundColor = NSColor.lightGray.cgColor
-    }
-    
-    func initSubViews() {
-        addSubview(addItem)
-        addSubview(deleteItem)
-        addSubview(vLine)
-        addSubview(zoomOutButton)
-        addSubview(zoomInButton)
-        addSubview(pagePageComboBox)
-        
-        addSubview(mergeButton)
-        addSubview(cancelButton)
-        addSubview(bottomLine)
-    }
-    
-    override func layout() {
-        super.layout()
-        
-        let width = NSWidth(self.bounds)
-        let height = NSHeight(self.bounds)
-        let space: CGFloat = 12
-        
-        let centerX: CGFloat = width * 0.5
-        let lineH: CGFloat = 18
-        vLine.frame = NSMakeRect(centerX, (height-lineH)*0.5, 1, lineH);
-        
-        let itemH: CGFloat = 28
-        let itemY: CGFloat = (height-itemH) * 0.5
-        let deleteItemWidth: CGFloat = 60
-        let deleteItemX = centerX-deleteItemWidth-space
-        deleteItem.frame = NSMakeRect(deleteItemX, itemY, deleteItemWidth, itemH)
-        
-        let addItemWidth: CGFloat = 80
-        let addItemX = deleteItemX-addItemWidth-space
-        addItem.frame = NSMakeRect(addItemX, itemY, addItemWidth, itemH)
-        
-        let zoomButtonSize: CGFloat = 24
-        let zoomOutButtonX = centerX + space
-        let zoomButtonY = (height-zoomButtonSize) * 0.5
-        zoomOutButton.frame = NSMakeRect(zoomOutButtonX, zoomButtonY, zoomButtonSize, zoomButtonSize)
-        
-        zoomInButton.frame = NSMakeRect(zoomOutButtonX+zoomButtonSize+space, zoomButtonY, zoomButtonSize, zoomButtonSize)
-        
-        let pagePageH: CGFloat = 24
-        let pagePageX: CGFloat = zoomInButton.frame.maxX + 30
-        pagePageComboBox.frame = NSMakeRect(pagePageX, (height-pagePageH) * 0.5, 160, pagePageH)
-        
-        let rightButtonH: CGFloat = 30
-        let rightButtonW: CGFloat = 60
-        let rightButtonY: CGFloat = (height-rightButtonH)*0.5
-        let rightMargin: CGFloat = 28
-        let cancelButtonX = width-rightMargin-rightButtonW
-        cancelButton.frame = NSMakeRect(cancelButtonX, rightButtonY, rightButtonW, rightButtonH)
-        mergeButton.frame = NSMakeRect(cancelButtonX-rightButtonW-12, rightButtonY, rightButtonW, rightButtonH)
-        
-        bottomLine.frame = NSMakeRect(0, height-1, width, 1)
-    }
-    
-    /**
-     * MARK:  - User Action
-     */
-    
-    @objc func addItemAction() {
-        guard let itemClickAction = itemClick else {
-            return
-        }
-        
-        itemClickAction(KMMergeTitleBarButtonID.add)
-    }
-    
-    @objc func deleteItemAction() {
-        guard let itemClickAction = itemClick else {
-            return
-        }
-        
-        itemClickAction(KMMergeTitleBarButtonID.delete)
-    }
-    
-    @objc func zoomOutButtonAction() {
-        guard let itemClickAction = itemClick else {
-            return
-        }
-        
-        itemClickAction(KMMergeTitleBarButtonID.zoomOut)
-    }
-    
-    @objc func zoomInButtonAction() {
-        guard let itemClickAction = itemClick else {
-            return
-        }
-        
-        itemClickAction(KMMergeTitleBarButtonID.zoomIn)
-    }
-    
-    @objc func mergeButtonAction() {
-        guard let itemClickAction = itemClick else {
-            return
-        }
-        
-        itemClickAction(KMMergeTitleBarButtonID.merge)
-    }
-    
-    @objc func cancelButtonAction() {
-        guard let itemClickAction = itemClick else {
-            return
-        }
-        
-        itemClickAction(KMMergeTitleBarButtonID.cancel)
-    }
-    
-    func setDeleteItemEnable(enable: Bool) {
-        deleteItem.leftButton.isEnabled = enable
-        deleteItem.rightButton.isEnabled = enable
-    }
-    
-    func setZoomItemEnable(zoomIn: Bool, enable: Bool) {
-        if zoomIn {
-            zoomInButton.isEnabled = enable
-        } else {
-            zoomOutButton.isEnabled = enable
-        }
-    }
-    
-    func setPageRangeComboBoxHidden(isHidden: Bool) {
-        pagePageComboBox.isHidden = isHidden
-    }
-    
-    func setPagePageComboBoxString(string: String) {
-        pagePageComboBox.stringValue = string
-    }
-}
-
-extension KMMergeTitleBar: NSComboBoxDelegate {
-    func comboBoxSelectionDidChange(_ notification: Notification) {
-        if notification.object as! NSComboBox != pagePageComboBox {
-            return
-        }
-        
-        let box: NSComboBox = notification.object as! NSComboBox
-        let index = box.indexOfSelectedItem
-        if index < 0 {
-            return
-        }
-        
-        if index == 3 {
-            pagePageComboBox.isEditable = true
-            pagePageComboBox.stringValue = "如1,3-5,10"
-            self.window?.makeFirstResponder(pagePageComboBox)
-        } else {
-            pagePageComboBox.isEditable = false
-            guard let callback = pageRangeClick else {
-                return
-            }
-            
-            callback(index, "")
-        }
-    }
-    
-    func controlTextDidEndEditing(_ obj: Notification) {
-        if obj.object as! NSComboBox != pagePageComboBox {
-            return
-        }
-        
-        let box: NSComboBox = obj.object as! NSComboBox
-        
-        pagePageComboBox.isEditable = false
-        guard let callback = pageRangeClick else {
-            return
-        }
-        
-        callback(3, pagePageComboBox.stringValue)
-    }
-}

+ 0 - 76
PDF Office/PDF Master/Class/PDFTools/Merge/View/KMPDFMergeFileNameTabelViewCell.swift

@@ -1,76 +0,0 @@
-//
-//  KMPDFMergeFileNameTabelViewCell.swift
-//  PDF Reader Pro
-//
-//  Created by tangchao on 2023/10/11.
-//
-
-import Cocoa
-
-@objcMembers class KMPDFMergeFileNameTabelViewCell: NSTableCellView {
-    var numberLabel: NSTextField?
-    var iconImageView: NSImageView?
-    var fileNameLabel: NSTextField?
-    var pageNumberLabel: NSTextField?
-    
-    override init(frame frameRect: NSRect) {
-        super.init(frame: frameRect)
-        
-        self.initSubviews()
-    }
-    
-    required init?(coder: NSCoder) {
-        super.init(coder: coder)
-        
-        self.initSubviews()
-    }
-    
-    override var isFlipped: Bool {
-        return true
-    }
-    
-    func initSubviews() {
-        let numberLabel = NSTextField(labelWithString: "")
-        numberLabel.textColor = NSColor(red: 37.0/255.0, green: 38.0/255.0, blue: 41.0/255.0, alpha: 1.0)
-        numberLabel.font = .SFProTextRegularFont(14)
-        numberLabel.alignment = .center
-        numberLabel.lineBreakMode = .byTruncatingTail
-        self.addSubview(numberLabel)
-        self.numberLabel = numberLabel
-        
-        let iconImageView = NSImageView()
-        self.addSubview(iconImageView)
-        self.iconImageView = iconImageView
-        
-        let fileNameLabel = NSTextField(labelWithString: "")
-        fileNameLabel.textColor = NSColor(red: 37.0/255.0, green: 38.0/255.0, blue: 41.0/255.0, alpha: 1.0)
-        fileNameLabel.font = .SFProTextRegularFont(14)
-        fileNameLabel.lineBreakMode = .byTruncatingTail
-        self.addSubview(fileNameLabel)
-        self.fileNameLabel = fileNameLabel
-        
-        let pageNumberLabel = NSTextField(labelWithString: "")
-        pageNumberLabel.textColor = NSColor(red: 148.0/255.0, green: 152.0/255.0, blue: 156.0/255.0, alpha: 1.0)
-        pageNumberLabel.font = .SFProTextRegularFont(14)
-        self.addSubview(pageNumberLabel)
-        self.pageNumberLabel = pageNumberLabel
-    }
-    
-    override func layout() {
-        super.layout()
-        
-        let width = NSWidth(self.bounds)
-        let height = NSHeight(self.bounds)
-        
-        let labelH = 22.0
-        self.numberLabel?.frame = NSMakeRect(16, (height-labelH)*0.5, 30+16, labelH)
-        
-        let iconSize = 60.0
-        self.iconImageView?.frame = NSMakeRect(NSMaxX(self.numberLabel?.frame ?? NSZeroRect)+6, (height-iconSize)*0.5, iconSize, iconSize)
-        
-        let fileNameX = NSMaxX(self.iconImageView?.frame ?? NSZeroRect)+8
-        self.fileNameLabel?.frame = NSMakeRect(fileNameX, 13, width-fileNameX, labelH)
-        
-        self.pageNumberLabel?.frame = NSMakeRect(fileNameX, NSMaxY(self.fileNameLabel?.frame ?? NSZeroRect)+8, width-fileNameX, labelH)
-    }
-}

+ 0 - 155
PDF Office/PDF Master/Class/PDFTools/Merge/View/KMPDFMergePageRangeTabelViewCell.swift

@@ -1,155 +0,0 @@
-//
-//  KMPDFMergePageRangeTabelViewCell.swift
-//  PDF Reader Pro
-//
-//  Created by tangchao on 2023/10/11.
-//
-
-import Cocoa
-
-@objcMembers class KMPDFMergePageRangeTabelViewCell: NSTableCellView {
-    var pageCount: Int = 0
-    var callback: ((Int) -> Void)?
-    var textDidChange: ((String) -> Void)?
-    var textDidEndEdit: ((String, KMPDFMergePageRangeTabelViewCell) -> Void)?
-    
-    var comboBox: KMMergeSelect?
-    
-    override init(frame frameRect: NSRect) {
-        super.init(frame: frameRect)
-        self.initSubviews()
-    }
-    
-    required init?(coder: NSCoder) {
-        super.init(coder: coder)
-        self.initSubviews()
-    }
-    
-    override var isFlipped: Bool {
-        return true
-    }
-    
-    func initSubviews() {
-        let comboBox = KMMergeSelect(withType: .Combox)
-        self.addSubview(comboBox.view)
-        self.comboBox = comboBox
-        
-        self.comboBox?.removeAllItems()
-        self.comboBox?.addItems(withObjectValues: [KMLocalizedString("All Pages"),KMLocalizedString("Odd Pages"),KMLocalizedString("Even Pages"),KMLocalizedString("Customized")])
-        
-        self.comboBox?.stringValue = KMLocalizedString("All Pages")
-        self.comboBox?.editable = false
-        self.comboBox?.delete = self
-        self.comboBox?.placeholderString = KMLocalizedString("eg .1,3-5,10")
-        
-
-    }
-    
-    override func layout() {
-        super.layout()
-        
-        let width = NSWidth(self.bounds)
-        let height = NSHeight(self.bounds)
-        
-        let comboBoxH = 26.0
-        self.comboBox?.view.frame = NSMakeRect(10, (height-comboBoxH)*0.5, width-10, comboBoxH)
-        
-    }
-    
-    func updatePageRange(_ pageRange: KMPageRange, pageStrings: String, isFirstResponser: Bool = true) {
-        if (pageRange == .all) {
-            self.comboBox?.stringValue = KMLocalizedString("All Pages")
-            self.comboBox?.editable = false
-            self.comboBox?.alert = false
-        } else if (pageRange == .odd) {
-            self.comboBox?.stringValue = KMLocalizedString("Odd Pages")
-            self.comboBox?.editable = false
-            self.comboBox?.alert = false
-        } else if (pageRange == .even) {
-            self.comboBox?.stringValue = KMLocalizedString("Even Pages")
-            self.comboBox?.editable = false
-            self.comboBox?.alert = false
-        } else {
-            self.comboBox?.stringValue = pageStrings
-            self.comboBox?.editable = true
-            if (pageStrings.isEmpty) {
-                self.comboBox?.alert = true
-            } else {
-                self.comboBox?.alert = false
-            }
-            if (isFirstResponser || pageStrings.isEmpty) {
-                if let data = self.window?.firstResponder, data.isEqual(to: self.comboBox?.textField) == false {
-                    if (Thread.isMainThread) {
-                        self.window?.makeFirstResponder(self.comboBox?.textField)
-                    } else {
-                        DispatchQueue.main.async {
-                            self.window?.makeFirstResponder(self.comboBox?.textField)
-                        }
-                    }
-                }
-            }
-        }
-    }
-    
-    
-    
-/*
- - (void)updateRageRangeState:(NSInteger)state {
-     if (state == 9) {
-         self.comboBox.state = KMDesignTokenStateError_def;
-     } else if (state == 10) {
-         self.comboBox.state = KMDesignTokenStateError_focus;
-     }
- }
- */
-    
-}
-
-extension KMPDFMergePageRangeTabelViewCell: KMSelectPopButtonDelegate {
-    func km_comboBoxSelectionDidChange(_ obj: KMDesignSelect) {
-        guard let data = self.callback else {
-            return
-        }
-        var index = obj.indexOfSelectedItem
-        if (index < 0) {
-           index = 0
-        }
-        
-        if (index == obj.numberOfItems-1) {
-            self.comboBox?.editable = true
-            DispatchQueue.main.async {
-                self.comboBox?.stringValue = ""
-            }
-            self.window?.makeFirstResponder(obj.textField)
-        } else {
-            self.comboBox?.editable = false
-            self.comboBox?.alert = false
-        }
-        
-        data(index)
-    }
-    
-    func km_controlTextDidChange(_ obj: KMDesignSelect) {
-        guard let data = self.textDidChange else {
-            return
-        }
-        data(obj.stringValue)
-    }
-    
-    func km_controlTextDidEndEditing(_ obj: KMDesignSelect) {
-        guard let data = self.textDidEndEdit else {
-            return
-        }
-        data(obj.stringValue, self)
-    }
-    
-    func km_SelectPopoverWillShow(_ obj: KMDesignSelect) {
-        if (obj.isEqual(to: self.comboBox)) {
-            var disableItems: [String] = []
-            if (self.pageCount <= 1) {
-                disableItems.append(KMLocalizedString("Even Pages"))
-            }
-            self.comboBox?.disItems = disableItems
-        }
-    }
-}

+ 0 - 63
PDF Office/PDF Master/Class/PDFTools/Merge/View/KMPDFMergeSizeTabelViewCell.swift

@@ -1,63 +0,0 @@
-//
-//  KMPDFMergeSizeTabelViewCell.swift
-//  PDF Reader Pro
-//
-//  Created by tangchao on 2023/10/12.
-//
-
-import Cocoa
-
-@objcMembers class KMPDFMergeSizeTabelViewCell: NSTableCellView {
-    var label: NSTextField?
-    var button: NSButton?
-    
-    var callback: KMEmptyBlock?
-    
-    override init(frame frameRect: NSRect) {
-        super.init(frame: frameRect)
-        self.initSubviews()
-    }
-    
-    required init?(coder: NSCoder) {
-        super.init(coder: coder)
-        self.initSubviews()
-    }
-    
-    override var isFlipped: Bool {
-        return true
-    }
-    
-    func initSubviews() {
-        var label = NSTextField(labelWithString: "")
-        label.textColor = NSColor(red: 148.0/255.0, green: 152.0/255.0, blue: 156.0/255.0, alpha: 1.0)
-        label.font = .SFProTextRegularFont(14)
-        self.addSubview(label)
-        self.label = label
-        
-        var button = NSButton()
-        button.isBordered = false
-        button.image = NSImage(named: "KMImageNameSecureClearIcon")
-        self.addSubview(button)
-        self.button = button
-        self.button?.target = self
-        self.button?.action = #selector(buttonAction)
-    }
-    
-    override func layout() {
-        super.layout()
-        
-        let height = NSHeight(self.bounds)
-        
-        let labelH = 22.0
-        self.label?.frame = NSMakeRect(16, (height-labelH)*0.5, 70, labelH)
-        let buttonSize = 20.0
-        self.button?.frame = NSMakeRect(NSMaxX(self.label?.frame ?? NSZeroRect)+5, (height-buttonSize)*0.5, buttonSize, buttonSize)
-    }
-    
-    @objc func buttonAction() {
-        guard let data = self.callback else {
-            return
-        }
-        data()
-    }
-}

+ 4 - 9
PDF Office/PDF Master/Class/PDFTools/TTS/WindowController/KMTTSWindowController.swift

@@ -63,13 +63,10 @@ class KMTTSWindowController: NSWindowController, KMTTSManagerDelegate, NSWindowD
         self.speedSlider.maxValue = Double(maxSpeed);
         
         self.nextButton.toolTip = KMLocalizedString("Next Page")
-//        self.nextButton.isShowCustomToolTip = true
         self.forwardButton.toolTip = KMLocalizedString("Previous Page")
-//        self.forwardButton.isShowCustomToolTip = true
         self.speedSlider.isEnabled = true
         self.speedStepper.isEnabled = true
         self.playButton.toolTip = KMLocalizedString("Play")
-//        self.playButton.isShowCustomToolTip = true
         self.sppendCountLabel.stringValue = KMLocalizedString("SpeedX")
         let str = String(format: "%.1f", KMTTSManager.defalutManager.rate/Float(standardSpeed))
         self.speedStepper.stringValue = str
@@ -133,11 +130,11 @@ class KMTTSWindowController: NSWindowController, KMTTSManagerDelegate, NSWindowD
             self.sontinuouButton.state = .off
         }
         DistributedNotificationCenter.default().addObserver(self, selector: #selector(themeChanged(notification:)), name: NSNotification.Name("AppleInterfaceThemeChangedNotification"), object: nil)
-       
+        
         NotificationCenter.default.addObserver(self, selector: #selector(handlePageChangedNotification), name: NSNotification.Name.CPDFViewPageChanged, object: self.pdfView)
     }
     
-    func updateViewColor() { 
+    func updateViewColor() {
         var viewBackcolor = NSColor(red: 255.0/255.0, green: 255.0/255.0, blue: 255.0/255.0, alpha: 1.0)
         var textColor = NSColor(red: 51.0/255.0, green: 51.0/255.0, blue: 51.0/255.0, alpha: 1.0)
         var contentColor = NSColor(red: 102.0/255.0, green: 102.0/255.0, blue: 102.0/255.0, alpha: 1.0)
@@ -329,7 +326,7 @@ class KMTTSWindowController: NSWindowController, KMTTSManagerDelegate, NSWindowD
             self.isChangePage = true
             self.playButton.image = NSImage(named: "KMImageNameTTSStop")
             self.playButton.toolTip = KMLocalizedString("Play")
-
+            
             self.speedSlider.isEnabled = true
             self.speedStepper.isEnabled = true
             self.pdfView.setHighlightedSelection(nil, animated: false)
@@ -387,9 +384,7 @@ class KMTTSWindowController: NSWindowController, KMTTSManagerDelegate, NSWindowD
     }
     //MARK: KMTTSManagerDelegate
     func ttsMananger(_ tts: KMTTSManager, willSpeak selection: CPDFSelection) {
-//        if (selection != nil) {
-            self.pdfView?.setHighlightedSelection(selection, animated: false)
-//        }
+        self.pdfView?.setHighlightedSelection(selection, animated: false)
     }
     func ttsManangerDidFinishSpeech(_ tts: KMTTSManager) -> Bool {
         var isFinish = true

+ 3 - 164
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift

@@ -361,7 +361,7 @@ extension KMMainViewController {
     }
     
     func setTTSStype() -> NSMenuItem {
-        let stypItem = NSMenuItem(title: NSLocalizedString("TTS", comment: ""), action: #selector(showTTSView), target: self)
+        let stypItem = NSMenuItem(title: NSLocalizedString("TTS", comment: ""), action: nil , target: self)
         
         return stypItem
     }
@@ -2091,137 +2091,7 @@ extension KMMainViewController {
         self.km_beginSheet(windowC: com)
     }
     
-    //MARK: 导出图片
-    func extractImageAction(num: Int) {
-        if !IAPProductsManager.default().isAvailableAllFunction(){
-            let winC = KMPurchaseCompareWindowController.sharedInstance()
-            winC?.kEventName = "Reading_ExtractImage_BuyNow"
-            winC?.showWindow(nil)
-            return
-        }
-        
-        if !(self.listView.document.allowsPrinting || self.listView.document.allowsCopying) {
-            let alert = NSAlert()
-            alert.alertStyle = .critical
-            alert.messageText = NSLocalizedString("This is a secured document. Editing is not permitted.", comment: "")
-            alert.runModal()
-            return
-        }
-        
-        let document = self.listView.document
-        var fileURL = document?.documentURL
-        
-        if num == 1 {
-            let pageCount = document?.pageCount ?? 0
-            let indeSet = NSMutableIndexSet()
-            
-            indeSet.add(in: NSRange(location: 0, length: Int(pageCount)))
-            if indeSet.count == 0 {
-                return
-            }
-            let lastPathName = fileURL?.deletingPathExtension().lastPathComponent ?? ""
-            let tFileName = (String(format: "%@_Extract Images", lastPathName))
-            let outputSavePanel = NSSavePanel()
-            outputSavePanel.title = NSLocalizedString("Save as PDF", comment: "")
-            outputSavePanel.allowsOtherFileTypes = true
-            outputSavePanel.isExtensionHidden = true
-            outputSavePanel.canCreateDirectories = true
-            outputSavePanel.nameFieldStringValue = tFileName
-            outputSavePanel.beginSheetModal(for: self.view.window!, completionHandler: { (result) in
-                if result == NSApplication.ModalResponse.OK {
-                    DispatchQueue.main.async {
-                        self.beginProgressSheet(withMessage: NSLocalizedString("Extracting all pictures...", comment: "") + "...", maxValue: 0)
-                        let tDestFile = outputSavePanel.url!.path
-                        let uniquePath = KMExtractImageWindowController.createDestFolder(path: tDestFile, isUnique: false)
-                        let pdfconverter = PDFConvertObject()
-                        pdfconverter.extractResourcesFromPDF(at: fileURL?.path ?? "", pdfPassword: document?.password, selectIndexSet: indeSet as IndexSet, destDocPath: uniquePath, moreOptions: nil)
-                        self.dismissProgressSheet()
-                        let fileManager = FileManager.default
-                        if fileManager.fileExists(atPath: tDestFile) {
-                            let workspace = NSWorkspace.shared
-                            let url = URL(fileURLWithPath: tDestFile)
-                            workspace.activateFileViewerSelecting([url])
-                        }
-                    }
-                }
-            })
-            return
-        }
-        
-        if fileURL != nil {
-            self.myDocument?.save(nil)
-        } else {
-            let myDocument = self.myDocument
-            let str = String(format: "%@.pdf", myDocument?.displayName ?? "")
-            let writeSuccess = document!.write(to: URL(fileURLWithPath: (kTempSavePath?.stringByAppendingPathComponent(str))!))
-            if writeSuccess {
-                var documentTemp = CPDFDocument(url: URL(fileURLWithPath: (kTempSavePath?.stringByAppendingPathComponent(str))!))
-                fileURL = document?.documentURL
-            } else {
-                NSSound.beep()
-                return
-            }
-        }
-        extract = KMExtractImageWindowController(windowNibName: "KMExtractImageWindowController")
-        extract?.docPath = fileURL?.path ?? ""
-        extract?.password = document?.password ?? ""
-        extract?.currentPage = self.listView.currentPageIndex
-        self.km_beginSheet(windowC: extract!)
-        extract?.selectCurrentPageBtn()
-    }
-    
-    func beginProgressSheet(withMessage message: String, maxValue: UInt) {
-        
-        let progress = SKProgressController()
-        progress.window?.backgroundColor = NSColor.km_init(hex: "#36383B")
-        progress.window?.contentView?.wantsLayer = true
-        progress.window?.contentView?.layer?.backgroundColor = NSColor.km_init(hex: "#36383B").cgColor
-        progress.progressField.textColor = NSColor.white
-        progress.message = NSLocalizedString("Converting...", comment: "")
-        progressC = progress
-        progressC?.message = message
-        if maxValue > 0 {
-            progressC?.indeterminate = false
-            progressC?.maxValue = Double(maxValue)
-            progressC?.progressBar.doubleValue = 0.3
-        } else {
-            progressC?.indeterminate = true
-        }
-        self.view.km_beginSheet(windowC: progressC!)
-    }
-    
-    func dismissProgressSheet() {
-        progressC?.stopAnimation()
-        self.view.km_endSheet()
-        progressC = nil
-    }
-    
-    func converFilesToPath(files: Array<KMBatchOperateFile>) -> [String] {
-        let newArr = NSMutableArray()
-        for item in files {
-            newArr.add(item.filePath)
-        }
-        return newArr as! [String]
-    }
-    
-    internal func showPrintWindow(pageRange: KMPrintPageRange = KMPrintPageRange(type: .allPage, selectPages: [])) {
-        self.saveDocument()
-        if (self.listView.document != nil && !self.listView.document.allowsPrinting) { // 有打印限制
-            KMPasswordInputWindow.openWindow(window: self.view.window!, type: .owner,  url: self.listView.document.documentURL) { [weak self] result ,password in
-                if (result == .cancel) {
-                    return
-                }
-                // 解除权限
-                self?.listView.document.unlock(withPassword: password)
-                // 隐藏提示
-                self?.hiddenSecureLimitTip()
-                // 去打印
-                KMPrintWindowController.openDocument(inputDocument: self?.listView.document, inputPageRange: pageRange)
-            }
-            return
-        }
-        KMPrintWindowController.openDocument(inputDocument: self.listView.document, inputPageRange: pageRange)
-    }
+   
     
     // MARK: - 图片注释
     
@@ -3123,38 +2993,7 @@ extension KMMainViewController {
         self.browserWindowController?.browser?.selectTabContents(at: 0, userGesture: true)
      }
     
-    func showTTSWindow() {
-        var lastPDFView: CPDFView?
-        let ttsView = KMTTSWindowController.share
-        if (ttsView.window?.isVisible ?? false) {
-            lastPDFView = ttsView.pdfView
-            if lastPDFView?.document?.documentURL?.path == self.listView.document?.documentURL?.path {
-                lastPDFView = nil
-                ttsView.window?.orderOut(nil)
-            } else {
-                ttsView.pdfView = self.listView
-                ttsView.showWindow(nil)
-            }
-        } else {
-            ttsView.pdfView = self.listView
-            ttsView.showWindow(nil)
-        }
-        ttsView.closeWindowCallback = { (isCloseWindow: Bool) in
-            if isCloseWindow {
-                
-            }
-        }
-        
-        if let currentSelection = self.listView.currentSelection {
-            if let data = currentSelection.selectionsByLine, data.isEmpty == false {
-                ttsView.startSpeakingPDFSelection(currentSelection)
-            }
-        }
-        if let lastPDFView = lastPDFView {
-            lastPDFView.setHighlightedSelections([])
-            ttsView.stopSpeaking()
-        }
-    }
+    
      
     
     func convertToImg(index: Int) {

+ 1 - 25
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+UI.swift

@@ -10,21 +10,7 @@ import Foundation
 extension KMMainViewController {
     // MARK: - 退出全屏
     
-    @IBAction func startSpeaking(_ sender: Any) {
-        self.showTTSWindow()
-        let ttsView = KMTTSWindowController.share
-        ttsView.buttonItemClick_Play(ttsView.playButton)
-    }
     
-    @IBAction func stopSpeaking(_ sender: Any) {
-        let ttsWindowC = KMTTSWindowController.share
-        if ttsWindowC.pdfView?.document?.documentURL.path == self.listView.document?.documentURL.path {
-            if let data = ttsWindowC.window?.isVisible, data {
-                ttsWindowC.stopSpeaking()
-                ttsWindowC.close()
-            }
-        }
-    }
 }
 
 extension KMMainViewController {
@@ -409,17 +395,7 @@ extension KMMainViewController {
             _ = self.listView.addOutlineForRoot(label: label, dest:dest, at: idx)
         }
     }
-    
-    @objc func showTTSView() {
-        FMTrackEventManager.defaultManager.trackEvent(event: "RightClickBar", withProperties: ["RightClickBar_Btn": "Btn_RightClickBar_TTS"])
-        
-        self.showTTSWindow()
-    }
-    
-    @objc func showShareAction() {
-       
-    }
-    
+     
     @objc func lookUpAction() {
         let label = self.listView.currentSelection?.string() ?? ""
  

+ 218 - 28
PDF Office/PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift

@@ -1261,7 +1261,34 @@ struct KMNMWCFlags {
             listView.setNeedsDisplayAnnotationViewFor(widget.page)
         }
     }
-
+    
+    // MARK: - 显示合并窗口
+    public func showMergeWindow(url: URL? = nil, _ password: String?) {
+        DispatchQueue.main.async {
+            var documentURL = url
+            if documentURL == nil {
+                documentURL = self.listView.document?.documentURL
+            }
+            
+            guard let _url = documentURL else { return }
+            guard let document = PDFDocument(url: _url) else { return }
+            
+            self.mergeWindowController = KMMergeWindowController(document: document, password: password ?? "")
+            self.mergeWindowController!.oriDucumentUrl = self.listView.document?.documentURL
+            self.mergeWindowController!.pageIndex = self.listView.currentPageIndex
+            
+            self.mergeWindowController!.cancelAction = { [unowned self] controller in
+                self.view.window?.endSheet(mergeWindowController!.window!)
+            }
+            
+            self.mergeWindowController!.mergeAction = { [unowned self] controller, filePath in
+                self.view.window?.endSheet(mergeWindowController!.window!)
+            }
+            
+            self.view.window?.beginSheet(self.mergeWindowController!.window!)
+        }
+    }
+    
     //MARK: - Crop裁剪
     func showCropController() {
         if cropController == nil {
@@ -1905,7 +1932,187 @@ struct KMNMWCFlags {
         
     }
     
+    //MARK: - TTS
+    @IBAction func startSpeaking(_ sender: Any) {
+        self.showTTSWindow()
+        let ttsView = KMTTSWindowController.share
+        ttsView.buttonItemClick_Play(ttsView.playButton)
+    }
+    
+    @IBAction func stopSpeaking(_ sender: Any) {
+        let ttsWindowC = KMTTSWindowController.share
+        if ttsWindowC.pdfView?.document?.documentURL.path == self.listView.document?.documentURL.path {
+            if let data = ttsWindowC.window?.isVisible, data {
+                ttsWindowC.stopSpeaking()
+                ttsWindowC.close()
+            }
+        }
+    }
+    
+    func showTTSWindow() {
+        var lastPDFView: CPDFView?
+        let ttsView = KMTTSWindowController.share
+        if (ttsView.window?.isVisible ?? false) {
+            lastPDFView = ttsView.pdfView
+            if lastPDFView?.document?.documentURL?.path == self.listView.document?.documentURL?.path {
+                lastPDFView = nil
+                ttsView.window?.orderOut(nil)
+            } else {
+                ttsView.pdfView = self.listView
+                ttsView.showWindow(nil)
+            }
+        } else {
+            ttsView.pdfView = self.listView
+            ttsView.showWindow(nil)
+        }
+        ttsView.closeWindowCallback = { (isCloseWindow: Bool) in
+            if isCloseWindow {
+                
+            }
+        }
+        
+        if let currentSelection = self.listView.currentSelection {
+            if let data = currentSelection.selectionsByLine, data.isEmpty == false {
+                ttsView.startSpeakingPDFSelection(currentSelection)
+            }
+        }
+        if let lastPDFView = lastPDFView {
+            lastPDFView.setHighlightedSelections([])
+            ttsView.stopSpeaking()
+        }
+    }
     
+    //MARK: 导出图片
+    func extractImageAction(num: Int) {
+        if !IAPProductsManager.default().isAvailableAllFunction(){
+            let winC = KMPurchaseCompareWindowController.sharedInstance()
+            winC?.kEventName = "Reading_ExtractImage_BuyNow"
+            winC?.showWindow(nil)
+            return
+        }
+        
+        if !(self.listView.document.allowsPrinting || self.listView.document.allowsCopying) {
+            let alert = NSAlert()
+            alert.alertStyle = .critical
+            alert.messageText = NSLocalizedString("This is a secured document. Editing is not permitted.", comment: "")
+            alert.runModal()
+            return
+        }
+        
+        let document = self.listView.document
+        var fileURL = document?.documentURL
+        
+        if num == 1 {
+            let pageCount = document?.pageCount ?? 0
+            let indeSet = NSMutableIndexSet()
+            
+            indeSet.add(in: NSRange(location: 0, length: Int(pageCount)))
+            if indeSet.count == 0 {
+                return
+            }
+            let lastPathName = fileURL?.deletingPathExtension().lastPathComponent ?? ""
+            let tFileName = (String(format: "%@_Extract Images", lastPathName))
+            let outputSavePanel = NSSavePanel()
+            outputSavePanel.title = NSLocalizedString("Save as PDF", comment: "")
+            outputSavePanel.allowsOtherFileTypes = true
+            outputSavePanel.isExtensionHidden = true
+            outputSavePanel.canCreateDirectories = true
+            outputSavePanel.nameFieldStringValue = tFileName
+            outputSavePanel.beginSheetModal(for: self.view.window!, completionHandler: { (result) in
+                if result == NSApplication.ModalResponse.OK {
+                    DispatchQueue.main.async {
+                        self.beginProgressSheet(withMessage: NSLocalizedString("Extracting all pictures...", comment: "") + "...", maxValue: 0)
+                        let tDestFile = outputSavePanel.url!.path
+                        let uniquePath = KMExtractImageWindowController.createDestFolder(path: tDestFile, isUnique: false)
+                        let pdfconverter = PDFConvertObject()
+                        pdfconverter.extractResourcesFromPDF(at: fileURL?.path ?? "", pdfPassword: document?.password, selectIndexSet: indeSet as IndexSet, destDocPath: uniquePath, moreOptions: nil)
+                        self.dismissProgressSheet()
+                        let fileManager = FileManager.default
+                        if fileManager.fileExists(atPath: tDestFile) {
+                            let workspace = NSWorkspace.shared
+                            let url = URL(fileURLWithPath: tDestFile)
+                            workspace.activateFileViewerSelecting([url])
+                        }
+                    }
+                }
+            })
+            return
+        }
+        
+        if fileURL != nil {
+            self.myDocument?.save(nil)
+        } else {
+            let myDocument = self.myDocument
+            let str = String(format: "%@.pdf", myDocument?.displayName ?? "")
+            let writeSuccess = document!.write(to: URL(fileURLWithPath: (kTempSavePath?.stringByAppendingPathComponent(str))!))
+            if writeSuccess {
+                var documentTemp = CPDFDocument(url: URL(fileURLWithPath: (kTempSavePath?.stringByAppendingPathComponent(str))!))
+                fileURL = document?.documentURL
+            } else {
+                NSSound.beep()
+                return
+            }
+        }
+        extract = KMExtractImageWindowController(windowNibName: "KMExtractImageWindowController")
+        extract?.docPath = fileURL?.path ?? ""
+        extract?.password = document?.password ?? ""
+        extract?.currentPage = self.listView.currentPageIndex
+        self.km_beginSheet(windowC: extract!)
+        extract?.selectCurrentPageBtn()
+    }
+    
+    func beginProgressSheet(withMessage message: String, maxValue: UInt) {
+        
+        let progress = SKProgressController()
+        progress.window?.backgroundColor = NSColor.km_init(hex: "#36383B")
+        progress.window?.contentView?.wantsLayer = true
+        progress.window?.contentView?.layer?.backgroundColor = NSColor.km_init(hex: "#36383B").cgColor
+        progress.progressField.textColor = NSColor.white
+        progress.message = NSLocalizedString("Converting...", comment: "")
+        progressC = progress
+        progressC?.message = message
+        if maxValue > 0 {
+            progressC?.indeterminate = false
+            progressC?.maxValue = Double(maxValue)
+            progressC?.progressBar.doubleValue = 0.3
+        } else {
+            progressC?.indeterminate = true
+        }
+        self.view.km_beginSheet(windowC: progressC!)
+    }
+    
+    func dismissProgressSheet() {
+        progressC?.stopAnimation()
+        self.view.km_endSheet()
+        progressC = nil
+    }
+    
+    func converFilesToPath(files: Array<KMBatchOperateFile>) -> [String] {
+        let newArr = NSMutableArray()
+        for item in files {
+            newArr.add(item.filePath)
+        }
+        return newArr as! [String]
+    }
+    
+    internal func showPrintWindow(pageRange: KMPrintPageRange = KMPrintPageRange(type: .allPage, selectPages: [])) {
+        self.saveDocument()
+        if (self.listView.document != nil && !self.listView.document.allowsPrinting) { // 有打印限制
+            KMPasswordInputWindow.openWindow(window: self.view.window!, type: .owner,  url: self.listView.document.documentURL) { [weak self] result ,password in
+                if (result == .cancel) {
+                    return
+                }
+                // 解除权限
+                self?.listView.document.unlock(withPassword: password)
+                // 隐藏提示
+                self?.hiddenSecureLimitTip()
+                // 去打印
+                KMPrintWindowController.openDocument(inputDocument: self?.listView.document, inputPageRange: pageRange)
+            }
+            return
+        }
+        KMPrintWindowController.openDocument(inputDocument: self.listView.document, inputPageRange: pageRange)
+    }
     //MARK: - Share Action
     @objc private func shareDocument(sender: NSView) {
         let document = self.listView.document ?? CPDFDocument()
@@ -2521,6 +2728,16 @@ extension KMMainViewController: KMPDFToolbarControllerDelegate {
                 self.showBatchCompressController([self.listView.document.documentURL])
             } else if itemIdentifier == KMPDFToolbar_tools_OCR_Identifier {
                 viewManager.showRightSide = !viewManager.showRightSide
+            } else if itemIdentifier == KMPDFToolbar_tools_merge_Identifier {
+                self.showMergeWindow(self.listView.document.password)
+            } else if itemIdentifier == KMPDFToolbar_tools_TTS_Identifier {
+                self.showTTSWindow()
+            } else if itemIdentifier == KMPDFToolbar_tools_AITools_Identifier {
+                self.viewManager.pdfSideBarType = .aiTools
+                self.sideBarController?.reloadData()
+                if let sideVC = self.sideBarController {
+                    self.kmPDFSideBarControllerDidSidebarTypeUpdated(sideVC)
+                }
             }
         } else if itemIdentifier == KMPDFToolbar_ViewDisplay_Identifier {
             //MARK: -Display
@@ -5066,33 +5283,6 @@ extension KMMainViewController {
         }
     }
     
-    // MARK: - 显示合并窗口
-    
-    public func showMergeWindow(url: URL? = nil, _ password: String?) {
-        DispatchQueue.main.async {
-            var documentURL = url
-            if documentURL == nil {
-                documentURL = self.listView.document?.documentURL
-            }
-            
-            guard let _url = documentURL else { return }
-            guard let document = PDFDocument(url: _url) else { return }
-            
-            self.mergeWindowController = KMMergeWindowController(document: document, password: password ?? "")
-            self.mergeWindowController!.oriDucumentUrl = self.listView.document?.documentURL
-            self.mergeWindowController!.pageIndex = self.listView.currentPageIndex
-            
-            self.mergeWindowController!.cancelAction = { [unowned self] controller in
-                self.view.window?.endSheet(mergeWindowController!.window!)
-            }
-            
-            self.mergeWindowController!.mergeAction = { [unowned self] controller, filePath in
-                self.view.window?.endSheet(mergeWindowController!.window!)
-            }
-            
-            self.view.window?.beginSheet(self.mergeWindowController!.window!)
-        }
-    }
     
     // MARK: - 显示加密弹窗
     

+ 2 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/Toolbar/KMPDFSecToolbarController.swift

@@ -466,6 +466,8 @@ class KMPDFSecToolbarController: NSViewController {
             } else {
                 viewManager?.subToolMode = subToolMode
             }
+        } else {
+            viewManager?.subToolMode = .None
         }
         
         refreshToolbarModeInfo()

+ 0 - 1
PDF Office/PDF Master/PDF_Reader_Pro DMG-Bridging-Header.h

@@ -24,7 +24,6 @@
 #import "CPDFListView+Tool.h"
 #import "NSBitmapImageRep_SKExtensions.h"
 #import <Masonry/Masonry.h>
-#import "KMPDFEditAppendWindow.h"
 
 #import "KMPrintAccessoryController_OC.h"
 

+ 0 - 1
PDF Office/PDF Master/PDF_Reader_Pro Edition-Bridging-Header.h

@@ -25,7 +25,6 @@
 #import "CPDFListView+Tool.h"
 #import "NSBitmapImageRep_SKExtensions.h"
 #import <Masonry/Masonry.h>
-#import "KMPDFEditAppendWindow.h"
 
 #import "KMPrintAccessoryController_OC.h"
 

+ 1 - 2
PDF Office/PDF Master/PDF_Reader_Pro-Bridging-Header.h

@@ -25,12 +25,11 @@
 #import "CPDFListView+Tool.h"
 #import "NSBitmapImageRep_SKExtensions.h"
 #import <Masonry/Masonry.h>
-#import "KMPDFEditAppendWindow.h"
 
 #import "KMCloudServer.h"
 #import <ObjectiveDropboxOfficial/ObjectiveDropboxOfficial.h>
 #import "KMCloudOperation.h"
-//
+
 #import "KMPrintAccessoryController_OC.h"
 
 #import "CStringConstants.h"

+ 0 - 138
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -2436,9 +2436,6 @@
 		BB10FAF62AFE2C2900F18D65 /* KMNumberArrayFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB10FAF52AFE2C2900F18D65 /* KMNumberArrayFormatter.swift */; };
 		BB10FAF72AFE2C2900F18D65 /* KMNumberArrayFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB10FAF52AFE2C2900F18D65 /* KMNumberArrayFormatter.swift */; };
 		BB10FAF82AFE2C2900F18D65 /* KMNumberArrayFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB10FAF52AFE2C2900F18D65 /* KMNumberArrayFormatter.swift */; };
-		BB13314E2AD78DC0008F6791 /* KMPDFMergeSizeTabelViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB13314D2AD78DC0008F6791 /* KMPDFMergeSizeTabelViewCell.swift */; };
-		BB13314F2AD78DC0008F6791 /* KMPDFMergeSizeTabelViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB13314D2AD78DC0008F6791 /* KMPDFMergeSizeTabelViewCell.swift */; };
-		BB1331502AD78DC0008F6791 /* KMPDFMergeSizeTabelViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB13314D2AD78DC0008F6791 /* KMPDFMergeSizeTabelViewCell.swift */; };
 		BB1331542AD7A6A1008F6791 /* KMFileAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB1331532AD7A6A1008F6791 /* KMFileAttribute.swift */; };
 		BB1331552AD7A6A1008F6791 /* KMFileAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB1331532AD7A6A1008F6791 /* KMFileAttribute.swift */; };
 		BB1331562AD7A6A1008F6791 /* KMFileAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB1331532AD7A6A1008F6791 /* KMFileAttribute.swift */; };
@@ -3724,21 +3721,6 @@
 		BB986AEB2AD53AE800ADF172 /* KMInfoWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB986AEA2AD53AE800ADF172 /* KMInfoWindowController.swift */; };
 		BB986AEC2AD53AE800ADF172 /* KMInfoWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB986AEA2AD53AE800ADF172 /* KMInfoWindowController.swift */; };
 		BB986AED2AD53AE800ADF172 /* KMInfoWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB986AEA2AD53AE800ADF172 /* KMInfoWindowController.swift */; };
-		BB99ACC2292DE22E0048AFD9 /* KMMergeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB99ACC0292DE22E0048AFD9 /* KMMergeViewController.swift */; };
-		BB99ACC3292DE22E0048AFD9 /* KMMergeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB99ACC0292DE22E0048AFD9 /* KMMergeViewController.swift */; };
-		BB99ACC4292DE22E0048AFD9 /* KMMergeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB99ACC0292DE22E0048AFD9 /* KMMergeViewController.swift */; };
-		BB99ACC5292DE22E0048AFD9 /* KMMergeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB99ACC1292DE22E0048AFD9 /* KMMergeViewController.xib */; };
-		BB99ACC6292DE22E0048AFD9 /* KMMergeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB99ACC1292DE22E0048AFD9 /* KMMergeViewController.xib */; };
-		BB99ACC7292DE22E0048AFD9 /* KMMergeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB99ACC1292DE22E0048AFD9 /* KMMergeViewController.xib */; };
-		BB99ACCA292DEE6E0048AFD9 /* KMMergeTitleBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB99ACC9292DEE6E0048AFD9 /* KMMergeTitleBar.swift */; };
-		BB99ACCB292DEE6E0048AFD9 /* KMMergeTitleBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB99ACC9292DEE6E0048AFD9 /* KMMergeTitleBar.swift */; };
-		BB99ACCC292DEE6E0048AFD9 /* KMMergeTitleBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB99ACC9292DEE6E0048AFD9 /* KMMergeTitleBar.swift */; };
-		BB99ACCF292E2AEF0048AFD9 /* KMMergeCollectionViewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB99ACCD292E2AEF0048AFD9 /* KMMergeCollectionViewItem.swift */; };
-		BB99ACD0292E2AEF0048AFD9 /* KMMergeCollectionViewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB99ACCD292E2AEF0048AFD9 /* KMMergeCollectionViewItem.swift */; };
-		BB99ACD1292E2AEF0048AFD9 /* KMMergeCollectionViewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB99ACCD292E2AEF0048AFD9 /* KMMergeCollectionViewItem.swift */; };
-		BB99ACD2292E2AEF0048AFD9 /* KMMergeCollectionViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB99ACCE292E2AEF0048AFD9 /* KMMergeCollectionViewItem.xib */; };
-		BB99ACD3292E2AEF0048AFD9 /* KMMergeCollectionViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB99ACCE292E2AEF0048AFD9 /* KMMergeCollectionViewItem.xib */; };
-		BB99ACD4292E2AEF0048AFD9 /* KMMergeCollectionViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB99ACCE292E2AEF0048AFD9 /* KMMergeCollectionViewItem.xib */; };
 		BB9AEB252D0FC988004BF8D2 /* FormsTextFieldController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB9AEB232D0FC988004BF8D2 /* FormsTextFieldController.swift */; };
 		BB9AEB262D0FC988004BF8D2 /* FormsTextFieldController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB9AEB232D0FC988004BF8D2 /* FormsTextFieldController.swift */; };
 		BB9AEB272D0FC988004BF8D2 /* FormsTextFieldController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB9AEB232D0FC988004BF8D2 /* FormsTextFieldController.swift */; };
@@ -3866,18 +3848,9 @@
 		BBAC26AC2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBAC26AB2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib */; };
 		BBAC26AD2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBAC26AB2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib */; };
 		BBAC26AE2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBAC26AB2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib */; };
-		BBAFC83C2985194800D0648E /* KMPDFEditAppendWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = BBAFC8392985194800D0648E /* KMPDFEditAppendWindow.m */; };
-		BBAFC83D2985194800D0648E /* KMPDFEditAppendWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = BBAFC8392985194800D0648E /* KMPDFEditAppendWindow.m */; };
-		BBAFC83E2985194800D0648E /* KMPDFEditAppendWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = BBAFC8392985194800D0648E /* KMPDFEditAppendWindow.m */; };
-		BBAFC83F2985194800D0648E /* KMPDFEditAppendWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBAFC83B2985194800D0648E /* KMPDFEditAppendWindow.xib */; };
-		BBAFC8402985194800D0648E /* KMPDFEditAppendWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBAFC83B2985194800D0648E /* KMPDFEditAppendWindow.xib */; };
-		BBAFC8412985194800D0648E /* KMPDFEditAppendWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBAFC83B2985194800D0648E /* KMPDFEditAppendWindow.xib */; };
 		BBAFC84D298519F700D0648E /* KMSavePanelAccessoryController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBAFC849298519F600D0648E /* KMSavePanelAccessoryController.xib */; };
 		BBAFC84E298519F700D0648E /* KMSavePanelAccessoryController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBAFC849298519F600D0648E /* KMSavePanelAccessoryController.xib */; };
 		BBAFC84F298519F700D0648E /* KMSavePanelAccessoryController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBAFC849298519F600D0648E /* KMSavePanelAccessoryController.xib */; };
-		BBAFFB1B29CDD19C00C56112 /* KMMergeSelect.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBAFFB1A29CDD19C00C56112 /* KMMergeSelect.swift */; };
-		BBAFFB1C29CDD19C00C56112 /* KMMergeSelect.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBAFFB1A29CDD19C00C56112 /* KMMergeSelect.swift */; };
-		BBAFFB1D29CDD19C00C56112 /* KMMergeSelect.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBAFFB1A29CDD19C00C56112 /* KMMergeSelect.swift */; };
 		BBB14A532978DD5400936EDB /* KMRedactTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBB14A522978DD5400936EDB /* KMRedactTools.swift */; };
 		BBB14A542978DD5400936EDB /* KMRedactTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBB14A522978DD5400936EDB /* KMRedactTools.swift */; };
 		BBB14A552978DD5400936EDB /* KMRedactTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBB14A522978DD5400936EDB /* KMRedactTools.swift */; };
@@ -4452,12 +4425,6 @@
 		BBEB0DE32CE36B47004C67BF /* KMRightSideController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBEB0DDF2CE36B47004C67BF /* KMRightSideController.xib */; };
 		BBEB0DE42CE36B47004C67BF /* KMRightSideController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBEB0DDF2CE36B47004C67BF /* KMRightSideController.xib */; };
 		BBEB0DE52CE36B47004C67BF /* KMRightSideController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBEB0DDF2CE36B47004C67BF /* KMRightSideController.xib */; };
-		BBEB93EB2AD6C2AE00739573 /* KMPDFMergeFileNameTabelViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBEB93EA2AD6C2AE00739573 /* KMPDFMergeFileNameTabelViewCell.swift */; };
-		BBEB93EC2AD6C2AE00739573 /* KMPDFMergeFileNameTabelViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBEB93EA2AD6C2AE00739573 /* KMPDFMergeFileNameTabelViewCell.swift */; };
-		BBEB93ED2AD6C2AE00739573 /* KMPDFMergeFileNameTabelViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBEB93EA2AD6C2AE00739573 /* KMPDFMergeFileNameTabelViewCell.swift */; };
-		BBEB93EF2AD6C72C00739573 /* KMPDFMergePageRangeTabelViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBEB93EE2AD6C72C00739573 /* KMPDFMergePageRangeTabelViewCell.swift */; };
-		BBEB93F02AD6C72C00739573 /* KMPDFMergePageRangeTabelViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBEB93EE2AD6C72C00739573 /* KMPDFMergePageRangeTabelViewCell.swift */; };
-		BBEB93F12AD6C72C00739573 /* KMPDFMergePageRangeTabelViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBEB93EE2AD6C72C00739573 /* KMPDFMergePageRangeTabelViewCell.swift */; };
 		BBEC00C7295C319400A26C98 /* KMBatesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBEC00C6295C319400A26C98 /* KMBatesManager.swift */; };
 		BBEC00C8295C319400A26C98 /* KMBatesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBEC00C6295C319400A26C98 /* KMBatesManager.swift */; };
 		BBEC00C9295C319400A26C98 /* KMBatesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBEC00C6295C319400A26C98 /* KMBatesManager.swift */; };
@@ -4612,24 +4579,6 @@
 		BBFE6E582930724B00142C01 /* KMMergePageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E572930724B00142C01 /* KMMergePageModel.swift */; };
 		BBFE6E592930724B00142C01 /* KMMergePageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E572930724B00142C01 /* KMMergePageModel.swift */; };
 		BBFE6E5A2930724B00142C01 /* KMMergePageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E572930724B00142C01 /* KMMergePageModel.swift */; };
-		BBFE6E5D2930809A00142C01 /* KMMergeCollectionPageViewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E5B2930809A00142C01 /* KMMergeCollectionPageViewItem.swift */; };
-		BBFE6E5E2930809A00142C01 /* KMMergeCollectionPageViewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E5B2930809A00142C01 /* KMMergeCollectionPageViewItem.swift */; };
-		BBFE6E5F2930809A00142C01 /* KMMergeCollectionPageViewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E5B2930809A00142C01 /* KMMergeCollectionPageViewItem.swift */; };
-		BBFE6E602930809A00142C01 /* KMMergeCollectionPageViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBFE6E5C2930809A00142C01 /* KMMergeCollectionPageViewItem.xib */; };
-		BBFE6E612930809A00142C01 /* KMMergeCollectionPageViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBFE6E5C2930809A00142C01 /* KMMergeCollectionPageViewItem.xib */; };
-		BBFE6E622930809A00142C01 /* KMMergeCollectionPageViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBFE6E5C2930809A00142C01 /* KMMergeCollectionPageViewItem.xib */; };
-		BBFE6E65293097A600142C01 /* KMPageRangePickerWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E63293097A600142C01 /* KMPageRangePickerWindowController.swift */; };
-		BBFE6E66293097A600142C01 /* KMPageRangePickerWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E63293097A600142C01 /* KMPageRangePickerWindowController.swift */; };
-		BBFE6E67293097A600142C01 /* KMPageRangePickerWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E63293097A600142C01 /* KMPageRangePickerWindowController.swift */; };
-		BBFE6E68293097A600142C01 /* KMPageRangePickerWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBFE6E64293097A600142C01 /* KMPageRangePickerWindowController.xib */; };
-		BBFE6E69293097A600142C01 /* KMPageRangePickerWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBFE6E64293097A600142C01 /* KMPageRangePickerWindowController.xib */; };
-		BBFE6E6A293097A600142C01 /* KMPageRangePickerWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBFE6E64293097A600142C01 /* KMPageRangePickerWindowController.xib */; };
-		BBFE6E6D2930D9C600142C01 /* KMMergeSettingWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E6B2930D9C600142C01 /* KMMergeSettingWindowController.swift */; };
-		BBFE6E6E2930D9C600142C01 /* KMMergeSettingWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E6B2930D9C600142C01 /* KMMergeSettingWindowController.swift */; };
-		BBFE6E6F2930D9C600142C01 /* KMMergeSettingWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E6B2930D9C600142C01 /* KMMergeSettingWindowController.swift */; };
-		BBFE6E702930D9C600142C01 /* KMMergeSettingWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBFE6E6C2930D9C600142C01 /* KMMergeSettingWindowController.xib */; };
-		BBFE6E712930D9C600142C01 /* KMMergeSettingWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBFE6E6C2930D9C600142C01 /* KMMergeSettingWindowController.xib */; };
-		BBFE6E722930D9C600142C01 /* KMMergeSettingWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBFE6E6C2930D9C600142C01 /* KMMergeSettingWindowController.xib */; };
 		BBFE6E752930E53000142C01 /* KMMergePopoverViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E732930E53000142C01 /* KMMergePopoverViewController.swift */; };
 		BBFE6E762930E53000142C01 /* KMMergePopoverViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E732930E53000142C01 /* KMMergePopoverViewController.swift */; };
 		BBFE6E772930E53000142C01 /* KMMergePopoverViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E732930E53000142C01 /* KMMergePopoverViewController.swift */; };
@@ -5982,7 +5931,6 @@
 		BB10FAED2AFE233C00F18D65 /* KMLineInspector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMLineInspector.swift; sourceTree = "<group>"; };
 		BB10FAF12AFE23BE00F18D65 /* LineInspector.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LineInspector.xib; sourceTree = "<group>"; };
 		BB10FAF52AFE2C2900F18D65 /* KMNumberArrayFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNumberArrayFormatter.swift; sourceTree = "<group>"; };
-		BB13314D2AD78DC0008F6791 /* KMPDFMergeSizeTabelViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPDFMergeSizeTabelViewCell.swift; sourceTree = "<group>"; };
 		BB1331532AD7A6A1008F6791 /* KMFileAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMFileAttribute.swift; sourceTree = "<group>"; };
 		BB135C2929B6CD9A00FD5965 /* KMTools.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMTools.swift; sourceTree = "<group>"; };
 		BB1413672C69E6CA00BB8E35 /* KMURLConfigManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMURLConfigManager.swift; sourceTree = "<group>"; };
@@ -6497,11 +6445,6 @@
 		BB981E502AD4F637001988CA /* KMCoverButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMCoverButton.swift; sourceTree = "<group>"; };
 		BB981E512AD4F638001988CA /* KMPageIndicator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMPageIndicator.swift; sourceTree = "<group>"; };
 		BB986AEA2AD53AE800ADF172 /* KMInfoWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMInfoWindowController.swift; sourceTree = "<group>"; };
-		BB99ACC0292DE22E0048AFD9 /* KMMergeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMMergeViewController.swift; sourceTree = "<group>"; };
-		BB99ACC1292DE22E0048AFD9 /* KMMergeViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMMergeViewController.xib; sourceTree = "<group>"; };
-		BB99ACC9292DEE6E0048AFD9 /* KMMergeTitleBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMMergeTitleBar.swift; sourceTree = "<group>"; };
-		BB99ACCD292E2AEF0048AFD9 /* KMMergeCollectionViewItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMMergeCollectionViewItem.swift; sourceTree = "<group>"; };
-		BB99ACCE292E2AEF0048AFD9 /* KMMergeCollectionViewItem.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMMergeCollectionViewItem.xib; sourceTree = "<group>"; };
 		BB9AEB232D0FC988004BF8D2 /* FormsTextFieldController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormsTextFieldController.swift; sourceTree = "<group>"; };
 		BB9AEB242D0FC988004BF8D2 /* FormsTextFieldController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = FormsTextFieldController.xib; sourceTree = "<group>"; };
 		BB9AEB2B2D0FC9A0004BF8D2 /* FormsCheckBoxController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormsCheckBoxController.swift; sourceTree = "<group>"; };
@@ -6549,11 +6492,7 @@
 		BBAC26A32AFE134300563A08 /* KMToolbarItemPopViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMToolbarItemPopViewController.swift; sourceTree = "<group>"; };
 		BBAC26A72AFE138700563A08 /* KMToolbarItemPopViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMToolbarItemPopViewController.xib; sourceTree = "<group>"; };
 		BBAC26AB2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMBatchOperateAddPasswordViewController.xib; sourceTree = "<group>"; };
-		BBAFC8392985194800D0648E /* KMPDFEditAppendWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KMPDFEditAppendWindow.m; sourceTree = "<group>"; };
-		BBAFC83A2985194800D0648E /* KMPDFEditAppendWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMPDFEditAppendWindow.h; sourceTree = "<group>"; };
-		BBAFC83B2985194800D0648E /* KMPDFEditAppendWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMPDFEditAppendWindow.xib; sourceTree = "<group>"; };
 		BBAFC849298519F600D0648E /* KMSavePanelAccessoryController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMSavePanelAccessoryController.xib; sourceTree = "<group>"; };
-		BBAFFB1A29CDD19C00C56112 /* KMMergeSelect.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMMergeSelect.swift; sourceTree = "<group>"; };
 		BBB14A522978DD5400936EDB /* KMRedactTools.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMRedactTools.swift; sourceTree = "<group>"; };
 		BBB14A562978E75D00936EDB /* KMRedactMutilPageFlagWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMRedactMutilPageFlagWindowController.swift; sourceTree = "<group>"; };
 		BBB14A5A2978EBBE00936EDB /* KMRedactMutilPageFlagContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMRedactMutilPageFlagContentView.swift; sourceTree = "<group>"; };
@@ -6780,8 +6719,6 @@
 		BBE9D09E2AF0D10F002E83CE /* KMSlider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSlider.swift; sourceTree = "<group>"; };
 		BBEB0DDE2CE36B47004C67BF /* KMRightSideController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMRightSideController.swift; sourceTree = "<group>"; };
 		BBEB0DDF2CE36B47004C67BF /* KMRightSideController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMRightSideController.xib; sourceTree = "<group>"; };
-		BBEB93EA2AD6C2AE00739573 /* KMPDFMergeFileNameTabelViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPDFMergeFileNameTabelViewCell.swift; sourceTree = "<group>"; };
-		BBEB93EE2AD6C72C00739573 /* KMPDFMergePageRangeTabelViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPDFMergePageRangeTabelViewCell.swift; sourceTree = "<group>"; };
 		BBEC00C6295C319400A26C98 /* KMBatesManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBatesManager.swift; sourceTree = "<group>"; };
 		BBEC00CB295C31F900A26C98 /* KMBatesModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBatesModel.swift; sourceTree = "<group>"; };
 		BBED0C2B2BBD569300511FAE /* KMAnnotationModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMAnnotationModel.swift; sourceTree = "<group>"; };
@@ -6860,12 +6797,6 @@
 		BBFE14CD2BFD7FC300176992 /* KMCouponDueWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMCouponDueWindowController.swift; sourceTree = "<group>"; };
 		BBFE14CE2BFD7FC300176992 /* KMCouponDueWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMCouponDueWindowController.xib; sourceTree = "<group>"; };
 		BBFE6E572930724B00142C01 /* KMMergePageModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMMergePageModel.swift; sourceTree = "<group>"; };
-		BBFE6E5B2930809A00142C01 /* KMMergeCollectionPageViewItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMMergeCollectionPageViewItem.swift; sourceTree = "<group>"; };
-		BBFE6E5C2930809A00142C01 /* KMMergeCollectionPageViewItem.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMMergeCollectionPageViewItem.xib; sourceTree = "<group>"; };
-		BBFE6E63293097A600142C01 /* KMPageRangePickerWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPageRangePickerWindowController.swift; sourceTree = "<group>"; };
-		BBFE6E64293097A600142C01 /* KMPageRangePickerWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMPageRangePickerWindowController.xib; sourceTree = "<group>"; };
-		BBFE6E6B2930D9C600142C01 /* KMMergeSettingWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMMergeSettingWindowController.swift; sourceTree = "<group>"; };
-		BBFE6E6C2930D9C600142C01 /* KMMergeSettingWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMMergeSettingWindowController.xib; sourceTree = "<group>"; };
 		BBFE6E732930E53000142C01 /* KMMergePopoverViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMMergePopoverViewController.swift; sourceTree = "<group>"; };
 		BBFE6E742930E53000142C01 /* KMMergePopoverViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMMergePopoverViewController.xib; sourceTree = "<group>"; };
 		BBFEF7122B3A766C00C28AC0 /* KMSystemMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMSystemMenu.swift; sourceTree = "<group>"; };
@@ -12093,12 +12024,6 @@
 		BB99ACBB292DE04F0048AFD9 /* Controller */ = {
 			isa = PBXGroup;
 			children = (
-				BB99ACC0292DE22E0048AFD9 /* KMMergeViewController.swift */,
-				BB99ACC1292DE22E0048AFD9 /* KMMergeViewController.xib */,
-				BBFE6E63293097A600142C01 /* KMPageRangePickerWindowController.swift */,
-				BBFE6E64293097A600142C01 /* KMPageRangePickerWindowController.xib */,
-				BBFE6E6B2930D9C600142C01 /* KMMergeSettingWindowController.swift */,
-				BBFE6E6C2930D9C600142C01 /* KMMergeSettingWindowController.xib */,
 				BBFE6E732930E53000142C01 /* KMMergePopoverViewController.swift */,
 				BBFE6E742930E53000142C01 /* KMMergePopoverViewController.xib */,
 			);
@@ -12108,16 +12033,7 @@
 		BB99ACC8292DEE450048AFD9 /* View */ = {
 			isa = PBXGroup;
 			children = (
-				BB99ACC9292DEE6E0048AFD9 /* KMMergeTitleBar.swift */,
 				BB6B4C0B292F62B20071CA06 /* KMPDFThumbnialPageView.swift */,
-				BB99ACCD292E2AEF0048AFD9 /* KMMergeCollectionViewItem.swift */,
-				BB99ACCE292E2AEF0048AFD9 /* KMMergeCollectionViewItem.xib */,
-				BBFE6E5B2930809A00142C01 /* KMMergeCollectionPageViewItem.swift */,
-				BBFE6E5C2930809A00142C01 /* KMMergeCollectionPageViewItem.xib */,
-				BBAFFB1A29CDD19C00C56112 /* KMMergeSelect.swift */,
-				BBEB93EA2AD6C2AE00739573 /* KMPDFMergeFileNameTabelViewCell.swift */,
-				BBEB93EE2AD6C72C00739573 /* KMPDFMergePageRangeTabelViewCell.swift */,
-				BB13314D2AD78DC0008F6791 /* KMPDFMergeSizeTabelViewCell.swift */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -12304,9 +12220,6 @@
 				9FCFECA32AD237B500EAD2CB /* KMBatchTableRowView.swift */,
 				9FCFECA72AD243C800EAD2CB /* KMBlankView.swift */,
 				9FD0D2A22AD4ECA800DA3FF8 /* KMPDFEditAppendCustomView.swift */,
-				BBAFC83A2985194800D0648E /* KMPDFEditAppendWindow.h */,
-				BBAFC8392985194800D0648E /* KMPDFEditAppendWindow.m */,
-				BBAFC83B2985194800D0648E /* KMPDFEditAppendWindow.xib */,
 				9FD0D2A62AD4EFB000DA3FF8 /* KMSavePanelAccessoryController.swift */,
 				BBAFC849298519F600D0648E /* KMSavePanelAccessoryController.xib */,
 				9FD0D2AA2AD5143D00DA3FF8 /* KMTableRowView.swift */,
@@ -13673,7 +13586,6 @@
 				9F0ACC072C883464009574D5 /* KMEmbeddedPaymentPopWC.xib in Resources */,
 				ADD1B6F02946C06C00C3FFF7 /* KMPrintChoosePageSizeSizeView.xib in Resources */,
 				AD07BC912D02CBA90075054B /* KMBatchOperateCompressViewController.xib in Resources */,
-				BBFE6E602930809A00142C01 /* KMMergeCollectionPageViewItem.xib in Resources */,
 				BBFBE6C228DD7B98008B2335 /* Assets.xcassets in Resources */,
 				AD1D483E2AFB81F4007AC1F0 /* KMMergeBlankView.xib in Resources */,
 				9F1FE4DE29406E4700E952CA /* .gclient in Resources */,
@@ -13750,7 +13662,6 @@
 				89D9896F28FD50EF003A3E87 /* KMAnnotationCollectionViewItem.xib in Resources */,
 				AD199DF32B23121D00D56FEE /* KMPrintPamphletView.xib in Resources */,
 				BBE788D22CBD2463008086E2 /* NotiVC.xib in Resources */,
-				BBFE6E68293097A600142C01 /* KMPageRangePickerWindowController.xib in Resources */,
 				ADDF83742B391A5D00A81A4E /* CDSignatureDrawViewController.xib in Resources */,
 				653647B02CDCA5DE00CDB13E /* KMBatchOperateLeftViewController.xib in Resources */,
 				AD3AAD792B0DCEB600DE5FE7 /* KMCompareSaveView.xib in Resources */,
@@ -13835,7 +13746,6 @@
 				BB031B782C47BB090099F7AD /* KMUserListItemView.xib in Resources */,
 				F3EF179F2CD5FF8D0007D364 /* KMNThumnailHeaderViewController.xib in Resources */,
 				653647D02CDCA6CC00CDB13E /* KMBatchOperateBaseViewController.xib in Resources */,
-				BBAFC83F2985194800D0648E /* KMPDFEditAppendWindow.xib in Resources */,
 				F3DB86112CCA693C00D0AFDE /* KMNSplitPDFWindowController.xib in Resources */,
 				9FE0BBE72B0EFBA300CD1CAC /* KMAnnotationFontWindowController.xib in Resources */,
 				BB4F7E852B0C4E820077EC8C /* KMNoteFilterCollevtionViewItem.xib in Resources */,
@@ -13865,7 +13775,6 @@
 				AD3AAD302B0B700500DE5FE7 /* KMCompareCoveringView.xib in Resources */,
 				BB716D5B2CDDB6F9009787ED /* KMHeaderTemplateItem.xib in Resources */,
 				ADFCEB672B4FBFC50001EBAF /* ad_cancel_button00.png in Resources */,
-				BB99ACD2292E2AEF0048AFD9 /* KMMergeCollectionViewItem.xib in Resources */,
 				9FF94F1429A7476000B1EF69 /* KMDesignPropertySelector.xib in Resources */,
 				BB8810882B4F7C2200AFA63E /* KMVerificationAlertViewController.xib in Resources */,
 				F33B304A2D0B22410073DD1B /* KMNPopOperationWindowController.xib in Resources */,
@@ -13900,7 +13809,6 @@
 				BB716D6B2CDDB727009787ED /* KMHeaderPropertyController.xib in Resources */,
 				F3A465752D0290950032F5DB /* KMNPopDetailsViewController.xib in Resources */,
 				AD055E902B88304E0035F824 /* BookmarksWindow.xib in Resources */,
-				BB99ACC5292DE22E0048AFD9 /* KMMergeViewController.xib in Resources */,
 				BB043F4E2D018487000244A2 /* KMStampListItem.xib in Resources */,
 				BB79E71C2CE617CB0052CAD5 /* KMEditImageController.xib in Resources */,
 				BB6347B82AF224E200F5438E /* KMConvertCollectionViewHeader.xib in Resources */,
@@ -14104,7 +14012,6 @@
 				BBFA1CD12B609EC50053AD4A /* KMScreenShotMaskWindowController.xib in Resources */,
 				9FDD0FA22952FF4D000C4DAD /* $themes.json in Resources */,
 				BB69C95C299116FD0001A9B1 /* five_line_score.pdf in Resources */,
-				BBFE6E702930D9C600142C01 /* KMMergeSettingWindowController.xib in Resources */,
 				AD055E8D2B88304E0035F824 /* BookmarkSheet.xib in Resources */,
 				BBA922152B4E783F0061057A /* KMPurchaseCompareDMGWindowController.xib in Resources */,
 				BB1B0AFE2B4FC6E900889528 /* KMOpenFileFunctionView.xib in Resources */,
@@ -14190,7 +14097,6 @@
 				F337CC202CC6456D00D46AF4 /* KMNThumbnailBaseViewController.xib in Resources */,
 				BBA8B7A72935CD740097D183 /* KMRemovePasswordAlertWindowController.xib in Resources */,
 				ADAFDA4D2AEA7F2700F084BC /* KMAdvertisementShowView.xib in Resources */,
-				BB99ACC6292DE22E0048AFD9 /* KMMergeViewController.xib in Resources */,
 				AD1D48262AFB6BCB007AC1F0 /* KMMergeView.xib in Resources */,
 				BB9AEB292D0FC988004BF8D2 /* FormsTextFieldController.xib in Resources */,
 				BB1B0AD52B4FC6E900889528 /* KMFunctionGuideSingleController.xib in Resources */,
@@ -14304,7 +14210,6 @@
 				BB031B792C47BB090099F7AD /* KMUserListItemView.xib in Resources */,
 				F3A9DC82294309D80074E5D2 /* CPDFListEditAnnotationViewController.xib in Resources */,
 				8942F7F42926087200389627 /* KMSearchViewController.xib in Resources */,
-				BBAFC8402985194800D0648E /* KMPDFEditAppendWindow.xib in Resources */,
 				BBFDFAA32AF3815C00E08AA2 /* KMTextHintWindowController.xib in Resources */,
 				BB031B7F2C47BB090099F7AD /* KMUserListItemCellView.xib in Resources */,
 				F3B7DF9E2948565000333201 /* CPDFListHoverAnnotationViewController.xib in Resources */,
@@ -14327,7 +14232,6 @@
 				BB1B0B0B2B4FC6E900889528 /* KMGuideInfoWindow.xib in Resources */,
 				AD867FAB29DFB78200F00440 /* KMAnnotationOutlineView.xib in Resources */,
 				AD07BC8F2D02CBA90075054B /* KMCompressSettingViewController.xib in Resources */,
-				BB99ACD3292E2AEF0048AFD9 /* KMMergeCollectionViewItem.xib in Resources */,
 				9F94748029FA24200042F949 /* Credits.rtf in Resources */,
 				AD1CA4352A0640FC0070541F /* KMAnnotationScreenHeadView.xib in Resources */,
 				F3EF17932CD5FD4B0007D364 /* KMNLeftSideViewController.xib in Resources */,
@@ -14338,7 +14242,6 @@
 				ADFCEB652B4FBFC50001EBAF /* ad_cancel_button00@2x.png in Resources */,
 				BB8AA53C2CC65C900084F183 /* KMNAlignmentController.xib in Resources */,
 				BB19A7532CB7C710008204DC /* KMHistoryFileThumbItem.xib in Resources */,
-				BBFE6E69293097A600142C01 /* KMPageRangePickerWindowController.xib in Resources */,
 				89752DB12936F505003FF08E /* KMCustomButtonPopMenuViewController.xib in Resources */,
 				BB031B6A2C47BB080099F7AD /* KMUserFbEmailItemView.xib in Resources */,
 				89D9897028FD50EF003A3E87 /* KMAnnotationCollectionViewItem.xib in Resources */,
@@ -14670,7 +14573,6 @@
 				BB19A76C2CB7D107008204DC /* KMHomeFilesEmptyHeaderView.xib in Resources */,
 				9FBA0F0229015A82001117AF /* KMFastToolCollectionViewItem.xib in Resources */,
 				BB6EA2A42B70B8F2000D4490 /* KMConvertComparePayViewController.xib in Resources */,
-				BBFE6E712930D9C600142C01 /* KMMergeSettingWindowController.xib in Resources */,
 				BBD9223E2B50D6D600DB9585 /* rate_pic_star.pdf in Resources */,
 				BB19A7642CB7CFBC008204DC /* KMHomeQuickToolsView.xib in Resources */,
 				9FDCD81A2B6CC88000E22166 /* KMFormActionButtonPopWindowController.xib in Resources */,
@@ -14690,7 +14592,6 @@
 				BB2EDF50296E63E5003BCF58 /* KMPageEditInsertCustomPageWindowController.xib in Resources */,
 				AD3AAD572B0D87E500DE5FE7 /* KMCompareThumbItem.xib in Resources */,
 				BB69C963299116FD0001A9B1 /* horizontal_line.pdf in Resources */,
-				BBFE6E612930809A00142C01 /* KMMergeCollectionPageViewItem.xib in Resources */,
 				BBE0689E2CDDF137000512BC /* KMBatesTemplateController.xib in Resources */,
 				BB93C31A2B9EFC9800A926E6 /* AITranslateTipWindowController.xib in Resources */,
 				BB10FAF32AFE23BE00F18D65 /* LineInspector.xib in Resources */,
@@ -14818,13 +14719,11 @@
 				9FF371D52C69B8C6005F9CC5 /* CPerimeterMeasureInfoWindowController.xib in Resources */,
 				ADD1B6F62946C07800C3FFF7 /* KMPrintChoosePageSizePosterView.xib in Resources */,
 				BBE788D42CBD2463008086E2 /* NotiVC.xib in Resources */,
-				BBFE6E6A293097A600142C01 /* KMPageRangePickerWindowController.xib in Resources */,
 				ADE86AA22B031FDB00414DFA /* KMCompareWindowController.xib in Resources */,
 				AD867FBD29DFBB3B00F00440 /* KMAnnotationOutlineSectionView.xib in Resources */,
 				ADD1B6FA2946C0CA00C3FFF7 /* KMPrintChoosePageSizeMultipageView.xib in Resources */,
 				AD199DF52B23121D00D56FEE /* KMPrintPamphletView.xib in Resources */,
 				BBA2109629ACC10F00E6B346 /* signlist_add.pdf in Resources */,
-				BBFE6E722930D9C600142C01 /* KMMergeSettingWindowController.xib in Resources */,
 				ADDF83762B391A5D00A81A4E /* CDSignatureDrawViewController.xib in Resources */,
 				BBF62C762B0347D1007B7E86 /* SplitWindowController.xib in Resources */,
 				BB031B652C47BB080099F7AD /* KMUserFeekbackWindowController.xib in Resources */,
@@ -14953,7 +14852,6 @@
 				BB031B832C47BB090099F7AD /* KMUserFbListHeaderItemView.xib in Resources */,
 				9F853A0A2947137500DF644E /* newtab.pdf in Resources */,
 				896933D629AEEE3D0055327F /* PageSheet.xib in Resources */,
-				BBAFC8412985194800D0648E /* KMPDFEditAppendWindow.xib in Resources */,
 				BBA19F3829ADACC5001A285A /* signPicture_nor.pdf in Resources */,
 				F328C0BB2CA16F0500BFDD23 /* KMPresentationTopViewController.xib in Resources */,
 				89E9B3FB295BE2EC00AEFA61 /* KMEditPDFTextPropertyViewController.xib in Resources */,
@@ -15044,7 +14942,6 @@
 				BB73F28D2C63147E00131EE7 /* KMUnbindAlertViewController.xib in Resources */,
 				AD7D5CD92B95767C006562CD /* KMBookmarkOutlineTitleCellView.xib in Resources */,
 				BB0FE0512B734DD1001E0F88 /* AIPurchaseWindowController.xib in Resources */,
-				BBFE6E622930809A00142C01 /* KMMergeCollectionPageViewItem.xib in Resources */,
 				6554450D2C88483C00BD9010 /* KMDiscountToSaveWindowController.xib in Resources */,
 				651675C62CE3312000019A20 /* KMBOTAOutlineView.xib in Resources */,
 				BBB789BC2BE8BF2400F7E09C /* AIChatStringResultItem.xib in Resources */,
@@ -15098,7 +14995,6 @@
 				BB1B0AE82B4FC6E900889528 /* KMOpenFileGuideProperty.xib in Resources */,
 				BB2EDF51296E63E5003BCF58 /* KMPageEditInsertCustomPageWindowController.xib in Resources */,
 				BB1B0AEB2B4FC6E900889528 /* KMFunctionGuideMultiController.xib in Resources */,
-				BB99ACD4292E2AEF0048AFD9 /* KMMergeCollectionViewItem.xib in Resources */,
 				ADDF83492B391A5C00A81A4E /* DSignatureCreateInfoViewController.xib in Resources */,
 				AD7D5C9A2B8F20FE006562CD /* synctex_parser_readme.txt in Resources */,
 				F37ACE6D2D0F182C00150B48 /* default.metallib in Resources */,
@@ -15167,7 +15063,6 @@
 				F3A465772D0290950032F5DB /* KMNPopDetailsViewController.xib in Resources */,
 				BB4293882D032FE6007ECFF2 /* KMCreateStampTextView.xib in Resources */,
 				BB52F5562CC1FAB2007418DB /* KMLinkViewController.xib in Resources */,
-				BB99ACC7292DE22E0048AFD9 /* KMMergeViewController.xib in Resources */,
 				9F1F82CF292F6CF90092C4B4 /* KMPDFInsertPageWindow.xib in Resources */,
 				653647BE2CDCA5DE00CDB13E /* KMBatchOperateWindowController.xib in Resources */,
 				AD055E502B7234810035F824 /* KMBookmarkSheetView.xib in Resources */,
@@ -15398,7 +15293,6 @@
 				BBB789902BE8BF2300F7E09C /* AITypeItemChooseView.swift in Sources */,
 				BBD25BF12B18768600EB85D4 /* KMCompressOperation.swift in Sources */,
 				BB3A81B52AC2C0F4006FC66C /* NSObject+KMExtension.swift in Sources */,
-				BB99ACCF292E2AEF0048AFD9 /* KMMergeCollectionViewItem.swift in Sources */,
 				BB8B99FD2B355E7600A066EC /* KMLeftSideViewController+Action.swift in Sources */,
 				BBF729AF2B1962C900576AC5 /* KMRemoveHeaderFooterQueue.swift in Sources */,
 				BB3A42962B4BC72C006D0642 /* KMNotesPanelController.swift in Sources */,
@@ -15477,7 +15371,6 @@
 				BB88E454294045B4002B3655 /* KMPDFConvertManager.swift in Sources */,
 				ADDF83202B391A5C00A81A4E /* KMPDFDigitalSignViewController.swift in Sources */,
 				BB52F5512CC1FAB2007418DB /* KMLinkViewController.swift in Sources */,
-				BB13314E2AD78DC0008F6791 /* KMPDFMergeSizeTabelViewCell.swift in Sources */,
 				BBBE20932B21B18900509C4E /* KMPDFInsertWindowController.swift in Sources */,
 				BBC28F4A2B0F509B00D73206 /* KMAnimatedBorderlessWindow.swift in Sources */,
 				BB74DA7B2AC41DE9006EDFE7 /* NSString+KMExtension.swift in Sources */,
@@ -15512,7 +15405,6 @@
 				BBD1F78F296FE6A500343885 /* KMPageEditSplitWindowController.swift in Sources */,
 				9F1FE50529406E4700E952CA /* CTTabStripDragController.m in Sources */,
 				65B143AA2CF06B97001B5A69 /* NSColor+KMExtensions.swift in Sources */,
-				BBEB93EB2AD6C2AE00739573 /* KMPDFMergeFileNameTabelViewCell.swift in Sources */,
 				BBA9222B2B4E96450061057A /* KMPurchaseCompareWindowController.m in Sources */,
 				9F1FE4CF29406E4700E952CA /* CTTabController.m in Sources */,
 				ADD3EC002D13F23D005B711B /* KMOCRController.swift in Sources */,
@@ -15842,7 +15734,6 @@
 				F321C1E42CD9EF74009982C8 /* KMPasswordInputWindow.swift in Sources */,
 				BB2F18462A0C7E250003F65E /* KMConvertBaseView.swift in Sources */,
 				65B143A12CF06B97001B5A69 /* Date+KMExtensions.swift in Sources */,
-				BB99ACCA292DEE6E0048AFD9 /* KMMergeTitleBar.swift in Sources */,
 				ADBC174F2A2991F700959CEE /* KMPurchaseManager.swift in Sources */,
 				BB67EE262B54FFEF00573BF0 /* ASINetworkQueue.m in Sources */,
 				AD055E602B85E04C0035F824 /* KMTextWithIconCell.swift in Sources */,
@@ -15854,7 +15745,6 @@
 				BBCE57102A72712200508EFC /* NSWindowController+KMExtension.swift in Sources */,
 				F38FB93F2CBA535C00F0DBA5 /* KMNHomeQuickToolManager.swift in Sources */,
 				AD055E5C2B85C9A70035F824 /* KMSeparatorCell.swift in Sources */,
-				BBAFFB1B29CDD19C00C56112 /* KMMergeSelect.swift in Sources */,
 				BBE78F1B2B36F69F0071AC1A /* KMLeftSideViewController+Note.swift in Sources */,
 				BB853C7D2AF8B5D6009C20C1 /* KMBatchOperateAddPasswordViewController.swift in Sources */,
 				ADD1B6BB29420B4A00C3FFF7 /* KMPrintPreviewView.swift in Sources */,
@@ -15886,7 +15776,6 @@
 				9FDD0F842952FC9C000C4DAD /* KMAliasLightParser.swift in Sources */,
 				BBDF17FC2CD47F8500ACDB15 /* KMEditDocumentController.swift in Sources */,
 				653647C82CDCA5DE00CDB13E /* KMBatchOperateWindowController.swift in Sources */,
-				BBFE6E5D2930809A00142C01 /* KMMergeCollectionPageViewItem.swift in Sources */,
 				BB0A55212A30968900B6E84B /* KMDesignBaseView.swift in Sources */,
 				BB5A9D3C2CB6520100F64C1F /* KMNHomeViewController.swift in Sources */,
 				BBE788CF2CBD2463008086E2 /* InputDemoVC.swift in Sources */,
@@ -16074,7 +15963,6 @@
 				65F9F4852CFC16A100F187A8 /* KMNSearchHanddler.swift in Sources */,
 				BB3A429E2B4BF03A006D0642 /* KMSystemPDFMenu.swift in Sources */,
 				9FF0D0602B6A5DCF0018A732 /* KMPDFAnnotationTextWidgetSub.swift in Sources */,
-				BBFE6E6D2930D9C600142C01 /* KMMergeSettingWindowController.swift in Sources */,
 				9F8539CB29430BF300DF644E /* KMBrowserWindowController.swift in Sources */,
 				9F0CB5192986568000007028 /* KMDesignToken+BorderRadiusTopRight.swift in Sources */,
 				BB2C845A2BAE6DC100AF6142 /* KMLeftMethodMode.swift in Sources */,
@@ -16161,7 +16049,6 @@
 				9F1FE4F629406E4700E952CA /* CTFloatingBarBackingView.m in Sources */,
 				9FE0BBE42B0EFBA300CD1CAC /* KMAnnotationFontWindowController.swift in Sources */,
 				BBFA1CE22B60DD970053AD4A /* KMScreenShotEditViewController.swift in Sources */,
-				BBEB93EF2AD6C72C00739573 /* KMPDFMergePageRangeTabelViewCell.swift in Sources */,
 				BB716D582CDDB6F9009787ED /* KMHeaderTemplateItem.swift in Sources */,
 				F35B484B29A4903300756255 /* NSPointerArray+PDFListView.m in Sources */,
 				BBC28F462B0F352000D73206 /* KMImageToolTipContext.swift in Sources */,
@@ -16171,7 +16058,6 @@
 				65EF3A7D2C81C1F500CCFC8F /* KMVerificationRSA.swift in Sources */,
 				BBB14A532978DD5400936EDB /* KMRedactTools.swift in Sources */,
 				BB5F8A1129BB04F000365ADB /* GBDeviceInfo_Common.m in Sources */,
-				BBAFC83C2985194800D0648E /* KMPDFEditAppendWindow.m in Sources */,
 				BB031B5D2C47BB080099F7AD /* KMUserFbHelpPopController.swift in Sources */,
 				BBE7891A2CBD2464008086E2 /* ModalVC.swift in Sources */,
 				9FF816F32AFB18290087EFC5 /* NSGeometry_KMExtensions.swift in Sources */,
@@ -16256,7 +16142,6 @@
 				656C1E5E2CD0DFE900295F82 /* KMConvertJsonSettingView.swift in Sources */,
 				BBBBB49F2B6F743700C7205E /* SKAttachmentEmailer.m in Sources */,
 				BB52F55C2CC1FBF6007418DB /* KMLinkPageView.swift in Sources */,
-				BB99ACC2292DE22E0048AFD9 /* KMMergeViewController.swift in Sources */,
 				BB10E1672CDC94E300471D47 /* KMBGTemplateItem.swift in Sources */,
 				656C1E462CD0745200295F82 /* KMConvertSettingView.swift in Sources */,
 				AD2432CF2B89DFED00A119A9 /* KMFormAlertView.swift in Sources */,
@@ -16338,7 +16223,6 @@
 				651675E32CE3313500019A20 /* KMOutlineEditViewController.swift in Sources */,
 				BBB2A99D2CB65C8E0066560B /* KMURLCreatePDFWindowController.swift in Sources */,
 				BB3A66962B071B0300575343 /* KMSnapshotTableViewCell.swift in Sources */,
-				BBFE6E65293097A600142C01 /* KMPageRangePickerWindowController.swift in Sources */,
 				AD199DEF2B23121000D56FEE /* KMPrintPamphletView.swift in Sources */,
 				BB2EDF4C296E63E5003BCF58 /* KMPageEditInsertCustomPageWindowController.swift in Sources */,
 				9F0CB521298656AA00007028 /* KMDesignToken+BorderRadiusBottomLeft.swift in Sources */,
@@ -16410,7 +16294,6 @@
 				BB8810C52B4F95A900AFA63E /* NSObject+DeviceInfo.m in Sources */,
 				AD055E5D2B85C9A70035F824 /* KMSeparatorCell.swift in Sources */,
 				ADE86A9E2B031FDB00414DFA /* KMCompareWindowController.swift in Sources */,
-				BB99ACC3292DE22E0048AFD9 /* KMMergeViewController.swift in Sources */,
 				F3C7984F2CD0F62A008A18E2 /* CPDFDocument+PageEditManager.swift in Sources */,
 				BB031B732C47BB080099F7AD /* KMUserFbEmailItemView.swift in Sources */,
 				9FBA0EFA2900188F001117AF /* KMFastToolCollectionView.swift in Sources */,
@@ -16508,7 +16391,6 @@
 				ADDF83812B391A5D00A81A4E /* DSignatureSaveFolderViewController.swift in Sources */,
 				F3A0F85A2CC940DD00E7373F /* KMNPDFInsertBlankWindowController.swift in Sources */,
 				BB9599C42B31647B0062D346 /* KMRedactPropertiesWindowController.swift in Sources */,
-				BB99ACD0292E2AEF0048AFD9 /* KMMergeCollectionViewItem.swift in Sources */,
 				BBE788B82CBD2463008086E2 /* PaginationVC.swift in Sources */,
 				F321C1F72CD9F0DD009982C8 /* KMSecureTextFiled.swift in Sources */,
 				BB8810862B4F7C2200AFA63E /* KMVerificationAlertViewController.m in Sources */,
@@ -16791,7 +16673,6 @@
 				6536477B2CDCA47300CDB13E /* KMBatchOperateImageToPDFViewController.swift in Sources */,
 				BBA922192B4E783F0061057A /* KMPurchaseCompareDMGWindowController.m in Sources */,
 				9F1FE4FD29406E4700E952CA /* CTTabStripController.m in Sources */,
-				BB99ACCB292DEE6E0048AFD9 /* KMMergeTitleBar.swift in Sources */,
 				BBCE57112A72712200508EFC /* NSWindowController+KMExtension.swift in Sources */,
 				89D9895F28FD21E6003A3E87 /* KMAnnotationCollectionView.swift in Sources */,
 				AD7D5CED2B96B9D6006562CD /* KMBookmarkOutlineRowView.swift in Sources */,
@@ -16925,7 +16806,6 @@
 				BB2C84702BAE716600AF6142 /* KMButtonLayer.swift in Sources */,
 				9F1F82D3292F6D510092C4B4 /* KMPDFInsertPreviewViewController.swift in Sources */,
 				BB3A429F2B4BF03A006D0642 /* KMSystemPDFMenu.swift in Sources */,
-				BBAFFB1C29CDD19C00C56112 /* KMMergeSelect.swift in Sources */,
 				BB5A9D6B2CB6521400F64C1F /* KMPDFToolbarController.swift in Sources */,
 				AD055EA02B8836AE0035F824 /* SKDocumentController.m in Sources */,
 				BB31DA5F2AFA1B03006D63CB /* KMFontWell.swift in Sources */,
@@ -17005,7 +16885,6 @@
 				ADDF839F2B391A5D00A81A4E /* CDSignatureDrawViewController.swift in Sources */,
 				BB031B762C47BB090099F7AD /* KMUserListItemCellView.swift in Sources */,
 				ADD1B6E02946BFD500C3FFF7 /* KMPrintChoosePageSizeSizeView.swift in Sources */,
-				BBFE6E5E2930809A00142C01 /* KMMergeCollectionPageViewItem.swift in Sources */,
 				BB67DA222CF08101001E77FA /* KMCropManager.swift in Sources */,
 				9F0CB4D22986550B00007028 /* KMDesignToken+Width.swift in Sources */,
 				9FF816F42AFB18290087EFC5 /* NSGeometry_KMExtensions.swift in Sources */,
@@ -17244,7 +17123,6 @@
 				BB031B702C47BB080099F7AD /* KMUserFbTypeItemView.swift in Sources */,
 				9FF371DA2C69B933005F9CC5 /* CDistanceSettingWindowController.swift in Sources */,
 				BB2F9AB42AFCC2F800F9DD93 /* KMProfileInfoWindowController.swift in Sources */,
-				BBFE6E66293097A600142C01 /* KMPageRangePickerWindowController.swift in Sources */,
 				BB83639B2C199C20002CE43A /* KMBotaModel.swift in Sources */,
 				BB2C84762BAE71E400AF6142 /* KMThumbnailTableviewCell.swift in Sources */,
 				BB276A512B0376B300AB5578 /* KMBatchOperateRemoveHeaderFooterViewController.swift in Sources */,
@@ -17282,7 +17160,6 @@
 				AD9527D42952D51A0039D2BC /* KMPrintPresenter.swift in Sources */,
 				F3599223292CA27B000D25DE /* CPDFListViewRuntime.m in Sources */,
 				BBE789032CBD2464008086E2 /* TabsVC.swift in Sources */,
-				BBEB93F02AD6C72C00739573 /* KMPDFMergePageRangeTabelViewCell.swift in Sources */,
 				BB9AEB262D0FC988004BF8D2 /* FormsTextFieldController.swift in Sources */,
 				9F8539D32943121100DF644E /* KMSegmentedBox.swift in Sources */,
 				AD9527C3295294EF0039D2BC /* KMPrintPaperModel.swift in Sources */,
@@ -17298,7 +17175,6 @@
 				BBB14A542978DD5400936EDB /* KMRedactTools.swift in Sources */,
 				BB5F8A1229BB04F000365ADB /* GBDeviceInfo_Common.m in Sources */,
 				ADDEEA6B2AD3CF3A00EF675D /* KMDrawSignatureView.swift in Sources */,
-				BBAFC83D2985194800D0648E /* KMPDFEditAppendWindow.m in Sources */,
 				BBE7889D2CBD2463008086E2 /* DropdownDemoVC.swift in Sources */,
 				BB4293832D032FD8007ECFF2 /* KMCreateStampTextView.swift in Sources */,
 				BBBB6CDF2AD174080035AA66 /* CPDFInkAnnotation+PDFListView.swift in Sources */,
@@ -17313,12 +17189,10 @@
 				BB4DFD642CFDAA3100026C8B /* KMStampController.swift in Sources */,
 				BB9695B329BDA46500FD68D3 /* SKLocalization.m in Sources */,
 				BB716D712CDDB73B009787ED /* KMHeaderFooterController.swift in Sources */,
-				BB13314F2AD78DC0008F6791 /* KMPDFMergeSizeTabelViewCell.swift in Sources */,
 				9F0CB4EE298655A800007028 /* KMDesignToken+PaddingLeft.swift in Sources */,
 				AD07BCE02D02CBB30075054B /* KMCompressContentView.swift in Sources */,
 				ADDF83A82B391A5D00A81A4E /* DSignatureApperanceManager.swift in Sources */,
 				BB986AEC2AD53AE800ADF172 /* KMInfoWindowController.swift in Sources */,
-				BBEB93EC2AD6C2AE00739573 /* KMPDFMergeFileNameTabelViewCell.swift in Sources */,
 				9F1FE49D29406E4700E952CA /* HoverCloseButton.m in Sources */,
 				9F1F82C4292F113A0092C4B4 /* KMHomeDragView.swift in Sources */,
 				BB3A81B12AC2B82A006FC66C /* KMPageSizeTool.swift in Sources */,
@@ -17409,7 +17283,6 @@
 				656C1E382CD0745200295F82 /* KMConvertPPTsSettingView.swift in Sources */,
 				ADAFD9EF2AE616B100F084BC /* FocusAwareSecureTextField.swift in Sources */,
 				9FF371CE2C69B8B3005F9CC5 /* CPerimeterMeasureInfoWindowController.swift in Sources */,
-				BBFE6E6E2930D9C600142C01 /* KMMergeSettingWindowController.swift in Sources */,
 				BBE789122CBD2464008086E2 /* NotiVC.swift in Sources */,
 				BB49ECE6293EF54800C82CA2 /* KMCustomPDFView.swift in Sources */,
 				BB6B43672A04919200E02B54 /* KMBaseViewController.swift in Sources */,
@@ -17504,7 +17377,6 @@
 				BB65A06D2AF8D8A1003A27A0 /* KMNotesPreferences.swift in Sources */,
 				BB2F9ABA2AFCC3AD00F9DD93 /* KMProfileInfo.swift in Sources */,
 				BBE788952CBD2463008086E2 /* ProgressVC.swift in Sources */,
-				BB99ACC4292DE22E0048AFD9 /* KMMergeViewController.swift in Sources */,
 				9FF371DF2C69B93B005F9CC5 /* CAreaSettingWindowController.swift in Sources */,
 				AD3AAD432B0B7B6C00DE5FE7 /* KMCompareManager.swift in Sources */,
 				9FBA0EFB2900188F001117AF /* KMFastToolCollectionView.swift in Sources */,
@@ -17568,7 +17440,6 @@
 				653647722CDC8C3700CDB13E /* KMNTableHeaderCellView.swift in Sources */,
 				9FCFEC9E2AD152FA00EAD2CB /* CustomAlertView.swift in Sources */,
 				9F1FE4C529406E4700E952CA /* CTPageTransition.c in Sources */,
-				BBFE6E5F2930809A00142C01 /* KMMergeCollectionPageViewItem.swift in Sources */,
 				AD1CA4232A061D190070541F /* KMAnnotationScreenAuthorViewItem.swift in Sources */,
 				BB031B712C47BB080099F7AD /* KMUserFbTypeItemView.swift in Sources */,
 				ADE3C1EF29A5AFB100793B13 /* KMRequestServerManager.swift in Sources */,
@@ -17585,7 +17456,6 @@
 				BBD8EE982B8EC86A00EB05FE /* AutoSavePopController.m in Sources */,
 				899700F828F4051B009AF911 /* KMAnnotationViewController.swift in Sources */,
 				BBDA8A6F2A31F9A6006A2C4E /* KMDesignStepperView.swift in Sources */,
-				BBAFC83E2985194800D0648E /* KMPDFEditAppendWindow.m in Sources */,
 				AD1CA4012A0603EE0070541F /* KMAnnotationScreenCollectionView.swift in Sources */,
 				BB67DA232CF08101001E77FA /* KMCropManager.swift in Sources */,
 				F36AD77929642FE80015AD53 /* CPDFListView+UndoManager.m in Sources */,
@@ -17645,7 +17515,6 @@
 				BB79FAB42CDC65BA00BF7B39 /* KMBGTemplateController.swift in Sources */,
 				BBD14F582CDA02570077D52E /* KMEditToolbarView.swift in Sources */,
 				BB67EE2B2B54FFEF00573BF0 /* ASIDownloadCache.m in Sources */,
-				BB99ACD1292E2AEF0048AFD9 /* KMMergeCollectionViewItem.swift in Sources */,
 				9F0CB51F2986569B00007028 /* KMDesignToken+BorderRadiusBottomRight.swift in Sources */,
 				BB328B652B55512F00B382C6 /* KMVerificationMessageViewController.m in Sources */,
 				BB86C1EF28F544F4005AD968 /* CPDFListView+Event.m in Sources */,
@@ -17706,7 +17575,6 @@
 				ADD1B6AD2941E97F00C3FFF7 /* KMPrintWindowController.swift in Sources */,
 				9FDD0FB029534FDC000C4DAD /* KMCompLight.swift in Sources */,
 				BBD25BF32B18768600EB85D4 /* KMCompressOperation.swift in Sources */,
-				BBEB93F12AD6C72C00739573 /* KMPDFMergePageRangeTabelViewCell.swift in Sources */,
 				BB8810932B4F7C4100AFA63E /* KMVerificationExpiredViewController.m in Sources */,
 				AD7D5CD52B957442006562CD /* KMBookmarkOutlineFileCellView.swift in Sources */,
 				65157BA72D02E17C0005F3A8 /* KMNBotaAnnotationHanddler.swift in Sources */,
@@ -17855,7 +17723,6 @@
 				BBD1F789296FAC7C00343885 /* KMPageEditSettingBaseView.swift in Sources */,
 				BB2C6ACF28F41BA000478A33 /* CPDFListView.m in Sources */,
 				BB6013822AD38E0100A76FB2 /* CPDFTextAnnotation+PDFListView.swift in Sources */,
-				BB1331502AD78DC0008F6791 /* KMPDFMergeSizeTabelViewCell.swift in Sources */,
 				AD055E2F2B70B3D50035F824 /* KMBookmarkSheetController.swift in Sources */,
 				BB97BE262BC3E02D00BECEA8 /* SKExportAccessoryController.m in Sources */,
 				BB42A5DA2B8F0F860092C524 /* KMTabbingHintWindowController.swift in Sources */,
@@ -17903,7 +17770,6 @@
 				ADE614AE29779C5200F62ED7 /* KMImageTitleButton.swift in Sources */,
 				BB6719EB2AD2A57C003D44D5 /* CPDFLinkAnnotation+PDFListView.swift in Sources */,
 				AD199DE92B230A9300D56FEE /* KMPrintMultipageView.swift in Sources */,
-				BBFE6E6F2930D9C600142C01 /* KMMergeSettingWindowController.swift in Sources */,
 				AD7D5CCD2B95728C006562CD /* KMBookmarkOutlineTitleCellView.swift in Sources */,
 				BB74DA792AC41182006EDFE7 /* NSFont+KMExtension.swift in Sources */,
 				BB19A7332CB79D6E008204DC /* KMHomeRecommondView.swift in Sources */,
@@ -17960,7 +17826,6 @@
 				9F1FE4DA29406E4700E952CA /* NSString+Utils.m in Sources */,
 				BB4EEF4E2976544F003A3537 /* KMRedactAligementView.swift in Sources */,
 				F37322E9292DF9410013862C /* CPDFAnnotationModel.m in Sources */,
-				BB99ACCC292DEE6E0048AFD9 /* KMMergeTitleBar.swift in Sources */,
 				9FCFEC6E2AC3D96800EAD2CB /* CPDFListViewAnimatedBorderlessWindow.swift in Sources */,
 				BBD1F79E296FF7A600343885 /* KMPageEditSplitSettingModel.swift in Sources */,
 				BB451AA42CF59F5B003E1565 /* KMRectangleController.swift in Sources */,
@@ -18270,7 +18135,6 @@
 				BBD1F79A296FF78C00343885 /* KMPageEditSettingBaseModel.swift in Sources */,
 				ADD1B7082946CBB600C3FFF7 /* KMBaseTextFormatter.swift in Sources */,
 				89D2D2C329495D2100BFF5FE /* KMFormModel.swift in Sources */,
-				BBFE6E67293097A600142C01 /* KMPageRangePickerWindowController.swift in Sources */,
 				BBFEF7292B3A78EC00C28AC0 /* KMSystemToolMenu.swift in Sources */,
 				BB88E43D294023CB002B3655 /* KMDocumentModel.swift in Sources */,
 				BB1B0ADF2B4FC6E900889528 /* KMOpenFileGuidePanel.swift in Sources */,
@@ -18458,7 +18322,6 @@
 				BB9AEB4F2D0FC9E1004BF8D2 /* FormsButtonController.swift in Sources */,
 				BBF8A4052AE8E10100788BAC /* KMBatchConvertParameter.swift in Sources */,
 				BBE788C52CBD2463008086E2 /* EmptyVC.swift in Sources */,
-				BBAFFB1D29CDD19C00C56112 /* KMMergeSelect.swift in Sources */,
 				9F8539D42943121100DF644E /* KMSegmentedBox.swift in Sources */,
 				BB5A9D6C2CB6521400F64C1F /* KMPDFToolbarController.swift in Sources */,
 				ADDF833D2B391A5C00A81A4E /* CPDFSignatureWidgetAnnotation+PDFListView.m in Sources */,
@@ -18509,7 +18372,6 @@
 				BBA8B6712B9027D700CB07B0 /* SKFileUpdateChecker.m in Sources */,
 				9F1FE4A429406E4700E952CA /* CTToolbarController.m in Sources */,
 				BB1B0AFD2B4FC6E900889528 /* KMCustomColorGuideView.swift in Sources */,
-				BBEB93ED2AD6C2AE00739573 /* KMPDFMergeFileNameTabelViewCell.swift in Sources */,
 				F3599175292B62F5000D25DE /* CStringConstants.m in Sources */,
 				BBB1A3A829F6B66400E54E47 /* NSPanel+KMExtension.swift in Sources */,
 				AD867FB129DFBB1200F00440 /* KMAnnotationOutlineCellView.swift in Sources */,

+ 84 - 268
PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -1239,10 +1239,42 @@
             filePath = "PDF Master/Class/PDFTools/TTS/WindowController/KMTTSWindowController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "385"
-            endingLineNumber = "385"
+            startingLineNumber = "382"
+            endingLineNumber = "382"
             landmarkName = "mouseDown(with:)"
             landmarkType = "7">
+            <Locations>
+               <Location
+                  uuid = "358E2342-CA57-4FD1-A9F9-045A3C3466EB - de66a966439ce16f"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Reader_Pro.KMTTSWindowController.buttonItemClick_Language(__C.NSButton) -&gt; ()"
+                  moduleName = "PDF Reader Pro"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFTools/TTS/WindowController/KMTTSWindowController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "382"
+                  endingLineNumber = "382"
+                  offsetFromSymbolStart = "2376">
+               </Location>
+               <Location
+                  uuid = "358E2342-CA57-4FD1-A9F9-045A3C3466EB - 285cd2444207b0ae"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Reader_Pro.KMTTSWindowController.mouseDown(with: __C.NSEvent) -&gt; ()"
+                  moduleName = "PDF Reader Pro"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFTools/TTS/WindowController/KMTTSWindowController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "382"
+                  endingLineNumber = "382"
+                  offsetFromSymbolStart = "52">
+               </Location>
+            </Locations>
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
@@ -2434,43 +2466,13 @@
             filePath = "PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+UI.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "281"
-            endingLineNumber = "281"
+            startingLineNumber = "267"
+            endingLineNumber = "267"
             landmarkName = "changeAnnotationModeAction(item:)"
             landmarkType = "7">
             <Locations>
                <Location
-                  uuid = "8E901A1F-2E46-45A2-8AAA-ABB5D9E11491 - da5f8849423c2a03"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.changeAnnotationModeAction(item: PDF_Reader_Pro.KMToolbarClickButton) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController+UI.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "295"
-                  endingLineNumber = "295"
-                  offsetFromSymbolStart = "8980">
-               </Location>
-               <Location
-                  uuid = "8E901A1F-2E46-45A2-8AAA-ABB5D9E11491 - da5f8849423c2a03"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.changeAnnotationModeAction(item: PDF_Reader_Pro.KMToolbarClickButton) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController+UI.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "295"
-                  endingLineNumber = "295"
-                  offsetFromSymbolStart = "8992">
-               </Location>
-               <Location
-                  uuid = "8E901A1F-2E46-45A2-8AAA-ABB5D9E11491 - da5f8849423c2bbe"
+                  uuid = "8E901A1F-2E46-45A2-8AAA-ABB5D9E11491 - da5f8849423c16e7"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
@@ -2480,12 +2482,12 @@
                   urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController+UI.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "292"
-                  endingLineNumber = "292"
-                  offsetFromSymbolStart = "9132">
+                  startingLineNumber = "267"
+                  endingLineNumber = "267"
+                  offsetFromSymbolStart = "8104">
                </Location>
                <Location
-                  uuid = "8E901A1F-2E46-45A2-8AAA-ABB5D9E11491 - da5f8849423c2bbe"
+                  uuid = "8E901A1F-2E46-45A2-8AAA-ABB5D9E11491 - da5f8849423c16e7"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
@@ -2495,38 +2497,8 @@
                   urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController+UI.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "292"
-                  endingLineNumber = "292"
-                  offsetFromSymbolStart = "9152">
-               </Location>
-               <Location
-                  uuid = "8E901A1F-2E46-45A2-8AAA-ABB5D9E11491 - da5f8849423c2bbe"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.changeAnnotationModeAction(item: PDF_Reader_Pro.KMToolbarClickButton) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController+UI.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "292"
-                  endingLineNumber = "292"
-                  offsetFromSymbolStart = "8980">
-               </Location>
-               <Location
-                  uuid = "8E901A1F-2E46-45A2-8AAA-ABB5D9E11491 - da5f8849423c28d1"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.changeAnnotationModeAction(item: PDF_Reader_Pro.KMToolbarClickButton) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController+UI.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "281"
-                  endingLineNumber = "281"
+                  startingLineNumber = "267"
+                  endingLineNumber = "267"
                   offsetFromSymbolStart = "8980">
                </Location>
             </Locations>
@@ -3196,70 +3168,40 @@
             filePath = "PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "4131"
-            endingLineNumber = "4131"
-            landmarkName = "viewDidLoadOld()"
+            startingLineNumber = "4342"
+            endingLineNumber = "4342"
+            landmarkName = "viewWillLayoutFunction()"
             landmarkType = "7">
             <Locations>
                <Location
-                  uuid = "92759DD6-8CD9-4B54-BF74-D83EF6A6D5A5 - 19c057584219830e"
+                  uuid = "92759DD6-8CD9-4B54-BF74-D83EF6A6D5A5 - 857c2215f9e52b9b"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.viewDidLoadOld() -&gt; ()"
+                  symbolName = "PDF_Reader_Pro.KMMainViewController.addAdsBannerView() -&gt; ()"
                   moduleName = "PDF Reader Pro"
                   usesParentBreakpointCondition = "Yes"
                   urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "4131"
-                  endingLineNumber = "4131"
-                  offsetFromSymbolStart = "13808">
-               </Location>
-               <Location
-                  uuid = "92759DD6-8CD9-4B54-BF74-D83EF6A6D5A5 - 19c05758421982ef"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.viewDidLoadOld() -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "4132"
-                  endingLineNumber = "4132"
-                  offsetFromSymbolStart = "13828">
-               </Location>
-               <Location
-                  uuid = "92759DD6-8CD9-4B54-BF74-D83EF6A6D5A5 - 19c057584219830e"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.viewDidLoadOld() -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "4131"
-                  endingLineNumber = "4131"
-                  offsetFromSymbolStart = "11680">
+                  startingLineNumber = "4343"
+                  endingLineNumber = "4343"
+                  offsetFromSymbolStart = "1640">
                </Location>
                <Location
-                  uuid = "92759DD6-8CD9-4B54-BF74-D83EF6A6D5A5 - 19c05758421982cc"
+                  uuid = "92759DD6-8CD9-4B54-BF74-D83EF6A6D5A5 - 2bef25cf46ed3959"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.viewDidLoadOld() -&gt; ()"
+                  symbolName = "PDF_Reader_Pro.KMMainViewController.viewWillLayoutFunction() -&gt; ()"
                   moduleName = "PDF Reader Pro"
                   usesParentBreakpointCondition = "Yes"
                   urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "4133"
-                  endingLineNumber = "4133"
-                  offsetFromSymbolStart = "10816">
+                  startingLineNumber = "4342"
+                  endingLineNumber = "4342"
+                  offsetFromSymbolStart = "1516">
                </Location>
             </Locations>
          </BreakpointContent>
@@ -3274,85 +3216,40 @@
             filePath = "PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "4463"
-            endingLineNumber = "4463"
-            landmarkName = "loadOpenFileFunctionGuide(_:)"
+            startingLineNumber = "4674"
+            endingLineNumber = "4674"
+            landmarkName = "showAITypeChooseView(aiConfigType:)"
             landmarkType = "7">
             <Locations>
                <Location
-                  uuid = "4E0E8246-D746-4D5F-A4A2-89C78AEA0880 - 35a8d536a00df43f"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.loadOpenFileFunctionGuide(PDF_Reader_Pro.KMGuideInfoType) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "4463"
-                  endingLineNumber = "4463"
-                  offsetFromSymbolStart = "3284">
-               </Location>
-               <Location
-                  uuid = "4E0E8246-D746-4D5F-A4A2-89C78AEA0880 - 35a8d536a00df43f"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.loadOpenFileFunctionGuide(PDF_Reader_Pro.KMGuideInfoType) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "4463"
-                  endingLineNumber = "4463"
-                  offsetFromSymbolStart = "3592">
-               </Location>
-               <Location
-                  uuid = "4E0E8246-D746-4D5F-A4A2-89C78AEA0880 - 35a8d536a00df43f"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.loadOpenFileFunctionGuide(PDF_Reader_Pro.KMGuideInfoType) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "4463"
-                  endingLineNumber = "4463"
-                  offsetFromSymbolStart = "1192">
-               </Location>
-               <Location
-                  uuid = "4E0E8246-D746-4D5F-A4A2-89C78AEA0880 - b174fd871b89591c"
+                  uuid = "4E0E8246-D746-4D5F-A4A2-89C78AEA0880 - 8a3523545a6eacc1"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "closure #2 (PDF_Reader_Pro.KMGuideInfoWindowController, PDF_Reader_Pro.KMGuideActionType) -&gt; () in PDF_Reader_Pro.KMMainViewController.loadOpenFileFunctionGuide(PDF_Reader_Pro.KMGuideInfoType) -&gt; ()"
+                  symbolName = "closure #5 @Swift.MainActor () -&gt; () in PDF_Reader_Pro.KMMainViewController.loadOpenFileFunctionGuide(PDF_Reader_Pro.KMGuideInfoType) -&gt; ()"
                   moduleName = "PDF Reader Pro"
                   usesParentBreakpointCondition = "Yes"
                   urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "4463"
-                  endingLineNumber = "4463"
-                  offsetFromSymbolStart = "52">
+                  startingLineNumber = "4674"
+                  endingLineNumber = "4674"
+                  offsetFromSymbolStart = "1332">
                </Location>
                <Location
-                  uuid = "4E0E8246-D746-4D5F-A4A2-89C78AEA0880 - 35a8d536a00df43f"
+                  uuid = "4E0E8246-D746-4D5F-A4A2-89C78AEA0880 - bd41aafe3fa46496"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.loadOpenFileFunctionGuide(PDF_Reader_Pro.KMGuideInfoType) -&gt; ()"
+                  symbolName = "closure #1 (PDF_Reader_Pro.AINewConfigWindowController) -&gt; () in PDF_Reader_Pro.KMMainViewController.showAITypeChooseView(aiConfigType: PDF_Reader_Pro.AIConfigType) -&gt; ()"
                   moduleName = "PDF Reader Pro"
                   usesParentBreakpointCondition = "Yes"
                   urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "4463"
-                  endingLineNumber = "4463"
-                  offsetFromSymbolStart = "860">
+                  startingLineNumber = "4674"
+                  endingLineNumber = "4674"
+                  offsetFromSymbolStart = "1080">
                </Location>
             </Locations>
          </BreakpointContent>
@@ -4886,38 +4783,6 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "26293318-C9C4-4C05-BD94-41375414FA97"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/KMClass/KMPDFViewController/SideBar/KMPDFSideBarController.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "268"
-            endingLineNumber = "268"
-            landmarkName = "mouseDown(with:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "D1765543-0F80-49DC-91C0-C295AF07C074"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/KMClass/KMPDFViewController/SideBar/KMPDFSideBarController.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "275"
-            endingLineNumber = "275"
-            landmarkName = "rightMouseUp(with:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
@@ -4966,38 +4831,6 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "12241E49-C4CA-48F9-9C9D-13DAAE9CEE36"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/Home/View/KMBox.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "97"
-            endingLineNumber = "97"
-            landmarkName = "mouseDown(with:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "2198A3F3-8409-4465-AAE8-989F8DF1CA59"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KMComponentLibrary/KMComponentLibrary/View/SideBar/SideBarItem/ComponentSideBarItem.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "128"
-            endingLineNumber = "128"
-            landmarkName = "mouseDown(with:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
@@ -5644,6 +5477,21 @@
                   endingLineNumber = "6000"
                   offsetFromSymbolStart = "84">
                </Location>
+               <Location
+                  uuid = "55D287D3-1501-491A-A540-B8728475A83C - 967d7393fb0ff4bb"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[CPDFListView(Event) fontColorPanelAction:]"
+                  moduleName = "PDF Reader Pro"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/PDFListView/CPDFKitExtensions/CPDFListViewExtension/CPDFListView+Event.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "6000"
+                  endingLineNumber = "6000"
+                  offsetFromSymbolStart = "360">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -5711,37 +5559,5 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "8FAAC2FB-A37C-40A7-B2A7-97CDEF09A034"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/KMClass/KMPDFViewController/RightSideController/KMRightSideController.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "413"
-            endingLineNumber = "413"
-            landmarkName = "setupContentController()"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "B49FC002-92A2-46B2-AD55-D09B8C17DD90"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/KMClass/KMPDFViewController/RightSideController/KMRightSideController.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "359"
-            endingLineNumber = "359"
-            landmarkName = "setupContentController()"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
    </Breakpoints>
 </Bucket>