【问题标题】:Printing pdf file in webview在 webview 中打印 pdf 文件
【发布时间】:2018-12-27 12:02:43
【问题描述】:

我想在我的应用程序中添加一个打印 Button 以打印本地 pdf 文件。

所以我添加了一个UIToolBar + UIBarButtonItem 并将其与我的以下代码链接:

@IBAction func printButton(_ sender: Any) {

    let printController = UIPrintInteractionController.shared

    let printInfo = UIPrintInfo(dictionary:nil)

    printInfo.outputType = UIPrintInfo.OutputType.general

    printInfo.jobName = (wkWebView.url?.absoluteString)!

    printInfo.duplex = UIPrintInfo.Duplex.none

    printInfo.orientation = UIPrintInfo.Orientation.portrait

    printController.printPageRenderer = nil

    printController.printingItems = nil

    printController.printingItem = wkWebView.url!

    printController.printInfo = printInfo

   // printController.showsPageRange = true

    printController.showsNumberOfCopies = true


    printController.presentFromBarButtonItem(printButton, animated: true, completionHandler: nil)

}

在最后一行我收到此错误消息:

无法将 '(Any) -> ()' 类型的值转换为预期的参数类型 'UIBarButtonItem'

我尝试了不同的方法,但我被卡住了。如果有人可以帮助我,那就太棒了。我认为这很容易解决,但对我来说目前还不是。

【问题讨论】:

  • 什么是printButton?它应该是时间 UIBarButtonItem。
  • 这是我在工具栏中的打印按钮。还有我的标识符名称+标签和函数名称

标签: swift xcode printing webview


【解决方案1】:

您需要将参数作为条形按钮传递。但是您正在传递发件人,目前是“任何”.. 要么使用警卫将其向下转换为条形按钮,如

 guard let barButton = sender as? UIBarButtonItem else {
            print("not bar button")
            return
        }
 printController.presentFromBarButtonItem(barButton, animated: true, completionHandler: nil)

或者把发件人改成

IBAction func printButton(_ sender: UIBarButtonItem)

 printController.presentFromBarButtonItem(sender, animated: true, completionHandler: nil)

【讨论】:

    【解决方案2】:

    删除操作而不是尝试与发件人添加操作

    IBAction func printButton(_ sender: Any) //instead  of
    IBAction func printButton(_ sender: UIBarButtonItem)
    

    【讨论】:

    • 您使用的是哪个 swift 版本?我在 4.2 尝试了你的代码,没有遇到错误。
    • 我忘记把'printButton'改成'sender'
    猜你喜欢
    • 2018-07-25
    • 2018-07-08
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 2017-11-26
    • 2016-05-21
    相关资源
    最近更新 更多