美文网首页使用SwiftUI开发一个APP
MacOS+SwiftUI 打印软件开发 - AppKit ->

MacOS+SwiftUI 打印软件开发 - AppKit ->

作者: LazyGunner | 来源:发表于2022-01-20 17:52 被阅读0次

    书接上回

    最近项目上有个很奇葩的需求:公司内部管理系统(web版)的培训资料(图片、pdf),只能纸质打印,不能导出PDF。需求合理性先不管了,既然甲方大老爷开口了,做是肯定要做的,那就先调研一下目前的问题吧。

    1. AppKit -> Printing

    说道MacOS的打印流程就要用到AppKit中的Printing模块了,文档地址:https://developer.apple.com/documentation/appkit/printing 。基本用到的类还是不多的,我们一个一个看一下:

    image

    1.1 NSPrintPanel

    打印面板可以在执行打印命令前,让用户选择需要打印的页面范围和打印份数。在打印具体某个类型的数据时,打印面板可以呈现一个简化的界面。例如,面板可以显示打印设置的预设列表,这让用户可以分组启用打印设置,而不是单独启用。为jobStyleHint属性指定一个适当的字符串,可以激活简化的界面,并确定要显示哪些预设。

    image

    1.1.1 jobStyleHint

    此属性控制出现在简化打印面板屏幕的预设菜单中的项目集。有关支持的作业风格提示的列表,请参阅作业风格提示。将此属性设置为nil以禁用简化打印面板界面并使用标准界面(相当于Core Printing的kPMPresetGraphicsTypeGeneral)。

    jobStyleHint可以设置4个枚举值,分别是: .nil, .photo, .allPresets, .noPresets。具体设置与面板中Presets可选项的关系如下面几幅图

    .nil

    image

    .photo

    image

    .allPresets

    image

    .noPresets

    image

    1.1.2 options

    当前面板的配置参数,枚举值参见NSPrintPanel.Options。具体使用这个配置参数的方法见如下代码:

    let printPanel = NSPrintPanel()
    printPanel.options = [
      NSPrintPanel.Options.showsCopies,
      NSPrintPanel.Options.showsPageRange,
      NSPrintPanel.Options.showsPaperSize,
      NSPrintPanel.Options.showsOrientation,
      NSPrintPanel.Options.showsScaling,
      NSPrintPanel.Options.showsPrintSelection,
      NSPrintPanel.Options.showsPageSetupAccessory,
      NSPrintPanel.Options.showsPreview,
    ]
    
    if printPanel.runModal(with: printInfo) != NSApplication.ModalResponse.OK.rawValue {
    
    }
    

    1.1.3 NSPrintPanel.Options

    打印面板样式内容的配置常量

    • showsCopys

    打印面板包括一个区域,用于操纵打印的份数。

    image
    • showsPageRange

    打印面板包括一系列区域,用于操纵打印的页面的范围。

    image
    • showsPaperSize

    打印面板包括一个控件,用于操纵打印机的纸张尺寸。

    image
    • showsOrientation

    打印面板包括一个控件,用于操纵打印机的纸张方向。

    image
    • showsScaling

    打印面板包括一个控价,用于操作输出的缩放比例。

    image
    • showsPrintSelection

    打印面板包括一额外的用于页面范围的下拉框选项。

    image
    • showsPageSetupAccessory

    打印面板包括一个单独的附件视图,用于操作纸张尺寸、方向和缩放属性。

    image
    • showsPreview

    打印面板显示文档内容的内置预览。

    image

    1.1.4 func defaultButtonTitle() -> String?

    返回打印面板默认按钮的标题

    1.1.5 func setDefaultButtonTitle(String?)

    设置打印面板默认按钮的标题

    1.1.6 var helpAnchor: NSHelpManager.AnchorName?

    设置打印面板相关的HTML帮助文档

    相关文章

      网友评论

        本文标题:MacOS+SwiftUI 打印软件开发 - AppKit ->

        本文链接:https://www.haomeiwen.com/subject/tiojhrtx.html