我有一个显示 的应用程序PDFView
,我希望它从视图中打印 PDF 文件。此外,我希望打印面板显示页面设置附件(即纸张大小、方向和比例设置,如预览中一样,显示为选项下拉列表的一个面板)。
目前,我错误地打印了PDFView
,而不是 PDF 文档本身。这只会给我一页,并在打印输出中包含滚动条!我看不到如何init
引用NSPrintOperation
aPDFDocument
而不是PDFView
.
这是我的代码,它有效,但不是我想要的。我想我必须用定义面板和信息的类似代码覆盖printDocument
或printOperation
函数。NSDocument
func thePrintInfo() -> NSPrintInfo {
let thePrintInfo = NSPrintInfo()
thePrintInfo.horizontalPagination = .automatic // Tried fit
thePrintInfo.verticalPagination = .automatic // Tried fit
thePrintInfo.isHorizontallyCentered = true // Tried false
thePrintInfo.isVerticallyCentered = true // Tried false
thePrintInfo.leftMargin = 0.0
thePrintInfo.rightMargin = 0.0
thePrintInfo.topMargin = 0.0
thePrintInfo.bottomMargin = 0.0
thePrintInfo.jobDisposition = .spool
return thePrintInfo
}
// Need to show the 'Page Setup' Options as an Accessory
// e.g. Paper size, orientation.
@IBAction func printContent(_ sender: Any) {
let printOperation = NSPrintOperation(view: thePDFView, printInfo: thePrintInfo())
let printPanel = NSPrintPanel()
printPanel.options = [
NSPrintPanel.Options.showsCopies,
NSPrintPanel.Options.showsPrintSelection,
NSPrintPanel.Options.showsPageSetupAccessory,
NSPrintPanel.Options.showsPreview
]
printOperation.printPanel = printPanel
printOperation.run()
}