swift – NSPrintOperation-保存到位置而不提示

swift – NSPrintOperation-保存到位置而不提示,第1张

概述我有一个 GitHub repository,允许用户通过将一个HTML加载到WebView中来保存Mac上的分页PDF,并使用NSPrintOperation(具体来说,将showPrintPanel设置为false的NSPrintSaveJob)允许用户将该PDF保存到他们的任何位置Mac与 save panel类似于默认的NSSavePanel.但是,我正在试验代码,而我想在没有保存面板的情 我有一个 GitHub repository,允许用户通过将一个HTML加载到WebVIEw中来保存Mac上的分页pdf,并使用nsprintoperation(具体来说,将showPrintPanel设置为false的nsprintSaveJob)允许用户将该pdf保存到他们的任何位置Mac与 save panel类似于默认的NSSavePanel.但是,我正在试验代码,而我想在没有保存面板的情况下将创建的pdf保存到特定文件夹(/ Users / owlswipe / Downloads /).

我从WebVIEw(带有保存面板)保存pdf的代码目前是这样的:

let printopts: [String : AnyObject] = [nsprintJobdisposition:nsprintSaveJob as AnyObject]let printInfo: nsprintInfo = nsprintInfo(dictionary: printopts)printInfo.paperSize = NSMakeSize(595.22,841.85)let printop: nsprintoperation = nsprintoperation(vIEw: webVIEw.mainFrame.frameVIEw.documentVIEw,printInfo: printInfo)printop.showsPrintPanel = falseprintop.showsProgresspanel = falseprintop.run()

如何调整该代码以将pdf保存到预设文件夹而不是用户从保存面板中选择的文件夹?

解决方法 这段代码在Swift 4 / Cocoa中为我工作,以实现你想要的,但是那里有更多的代码,因为它将WKWebVIEw的内容呈现为8.5“x 11”页面的pdf.

因此,对于您的应用程序,将对您的内容流/打印对象进行适当的调整,但打印 *** 作的配置将相同,以获得您想要的“无对话”结果.

但是,要测试它,您可以将您的字符串转储到webvIEw中并按原样使用代码.生成的文件显示在“user / documents”目录的根目录中.

static func createpdf(HTMLString: String,streamID: String = "someStream") {    let webVIEw = WebVIEw()    webVIEw.mainFrame.loadHTMLString(HTMLString,baseURL: nil)    let when = dispatchTime.Now() + 1    dispatchQueue.main.asyncAfter(deadline: when) {       let directoryURL = @R_403_6852@Manager.default.urls(for: .documentDirectory,in: .userDomainMask)[0]       let directoryURLStr = directoryURL.absoluteString+"\(streamID).pdf"       let output@R_403_6852@Path = URL(string: directoryURLStr)       let printopts: [nsprintInfo.AttributeKey : Any] = [         nsprintInfo.AttributeKey.jobdisposition : nsprintInfo.Jobdisposition.save,nsprintInfo.AttributeKey.jobSavingURL   : output@R_403_6852@Path       ]       let printInfo: nsprintInfo = nsprintInfo(dictionary: printopts)       let basemargin: CGfloat    = 9.0; // .125"       printInfo.paperSize    = NSMakeSize(612,792); // 8.5" x 11/2"       printInfo.topmargin    = basemargin       printInfo.leftmargin   = basemargin       printInfo.rightmargin  = basemargin       printInfo.bottommargin = basemargin       let printop: nsprintoperation = nsprintoperation(vIEw: webVIEw.mainFrame.frameVIEw.documentVIEw,printInfo: printInfo)       printop.showsPrintPanel = false       printop.showsProgresspanel = false       printop.run()       Swift.print("document complete: \(output@R_403_6852@Path!.absoluteString)")   } }
总结

以上是内存溢出为你收集整理的swift – NSPrintOperation-保存到位置而不提示全部内容,希望文章能够帮你解决swift – NSPrintOperation-保存到位置而不提示所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1016321.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存