首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用showsPrintPanel时将NSPrintOperation设置为false会导致打印时大小不同

使用showsPrintPanel时将NSPrintOperation设置为false会导致打印时大小不同
EN

Stack Overflow用户
提问于 2016-06-01 13:01:10
回答 1查看 242关注 0票数 0

当使用NSPrintOperation并将showsPrintPanel设置为true时,视图会很好地打印,但是当我将属性设置为false时,视图不会正确打印,并且比纸张大:

代码语言:javascript
复制
func printBadge(printerName: String){
    let printingFrame = NSRect(x: 0, y: 0, width: AppManager.sharedInstance.badge.width, height: AppManager.sharedInstance.badge.height)
    let badgeView = BadgeView(frame: printingFrame)
    let printOperation = NSPrintOperation(view: badgeView)
    let printInfo = printOperation.printInfo

    printInfo.printer = NSPrinter(name: printerName)!
    printInfo.paperSize = NSSize(width: AppManager.sharedInstance.badge.width, height: AppManager.sharedInstance.badge.height)
    printInfo.horizontalPagination = .AutoPagination
    printInfo.verticalPagination = .AutoPagination
    printInfo.topMargin = 0
    printInfo.bottomMargin = 0
    printInfo.rightMargin = 0
    printInfo.leftMargin = 0
    printInfo.horizontallyCentered = true
    printInfo.verticallyCentered = true
    printOperation.showsPrintPanel = AppManager.sharedInstance.showsPrintPanel!
    printOperation.runOperation()
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-02 09:02:12

我最终解决了这个问题,NSPrintInfo.paperSize使用的是点而不是像素,所以我从毫米到像素的计算是不正确的(打印机设置是以毫米为单位,而不是像素或点)。

如果有人感兴趣,从毫米到点的数学计算是;

代码语言:javascript
复制
millimetres * 72 / 25.4
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37569480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档