gpt4 book ai didi

cocoa - 不使用页面设置进行打印 - 对纸张尺寸和方向的变化有何 react ?

转载 作者:行者123 更新时间:2023-12-03 18:07:13 24 4
gpt4 key购买 nike

Leopard 的 AppKit 发行说明说:

In many applications it is not appropriate to present page setup panels to the user, or even include a Page Setup... item in the File menu, but there has been no other easy way to let the user specify page setup parameters to be used when printing. (New UI advice: if your application doesn't persistently store page setup parameters on a per-document basis, or have some mechanism to associate them with whatever other kind of large-scale objects your application may deal with, it probably shouldn't have a page setup panel at all.)

我有相当简单的打印需求,并且希望从我的应用程序中消除“页面设置...”命令。

我之前打印文本的方法是创建一个适合当前纸张尺寸和方向的离屏 TextView ,然后启动该 View 的打印操作。

但是,如果允许用户更改打印面板中的纸张尺寸和方向,我需要对该更改使用react并重新配置我的打印 TextView 。

处理这种情况的正确方法是什么?

我当前破解的示例应用程序通过子类化 NSTextView 并在 -[MyTextView KnowsPageRange:] 中重新配置新页面参数来实现此目的。

最佳答案

一种稍微有点麻烦但效果很好的方法是运行两个 NSPrintOperations。

我们在应用程序的打印代码中使用它来检测用户是否在打印面板中选择了常规打印机或收据打印机。该应用程序为每种打印机打印完全不同的文档。

所以在 PyObjC 中,未经测试的代码:

def smartlyPrintView_(self, theViewToPrint):
# set up and run an initial NSPrintOperation to get printInfo
fakePrintOperation = NSPrintOperation.printOperationWithView_(theViewToPrint)
NSPrintOperation.setCurrentOperation_(fakePrintOperation)

if NSPrintPanel.printPanel().runModal() == True:
# get the printInfo so we can do stuff with it
printInfo = fakePrintOperation.printInfo()
# get rid of our fakePrintOperation
NSPrintOperation.currentOperation().cleanUpOperation()

# do stuff

# run a real NSPrintOperation without a printPanel
realPrintOperation = NSPrintOperation.printOperationWithView_printInfo_(theViewToPrint, printInfo)
realPrintOperation.setShowsPrintPanel_(False)
realPrintOperation.runOperation()

else:
NSPrintOperation.currentOperation().cleanUpOperation()

将其转换为 Obj-C 的方法:

添加一些变量声明,用冒号替换下划线,并将参数与方法的子句交错。加入半杯面粉和一把分号。小火煮三十分钟,趁热食用。祝你好运:)

关于cocoa - 不使用页面设置进行打印 - 对纸张尺寸和方向的变化有何 react ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/253529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com