Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS UIPrintPageRenderer为要打印的每一页打印最后一页_Ios_Swift_Uiprintpagerenderer - Fatal编程技术网

iOS UIPrintPageRenderer为要打印的每一页打印最后一页

iOS UIPrintPageRenderer为要打印的每一页打印最后一页,ios,swift,uiprintpagerenderer,Ios,Swift,Uiprintpagerenderer,我正在开发iOS应用程序,我想以PDF格式导出某些报告。所以我使用webView生成报告并将webView打印为pdf 这是我的密码: var renderer : UIPrintPageRenderer! override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(true) renderer = CustomPrintPageRenderer() if let url = Bundle.m

我正在开发iOS应用程序,我想以PDF格式导出某些报告。所以我使用webView生成报告并将webView打印为pdf

这是我的密码:

var renderer : UIPrintPageRenderer!
override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(true)
    renderer = CustomPrintPageRenderer()
    if let url = Bundle.main.url(forResource: "pdf", withExtension: "html", subdirectory: "web") {
        let request = URLRequest(url: url);
        webView.delegate = self;
        webView.loadRequest(request);
    }
}

func webViewDidFinishLoad(_ webView: UIWebView) {
    var pages : [UIViewPrintFormatter] = []
    var index = 0
    for query in queryList {
      var result = webView.stringByEvaluatingJavaScript(from: query)
      if(!webView.isLoading) {
          let printFormatter =  webView.viewPrintFormatter()
          pages.append(printFormatter)
       }
    }

    for page in pages {
        renderer.addPrintFormatter(page, startingAtPageAt: index)
        index = index + 1
    }

    let pdfData = drawPDFUsingPrintPageRenderer(printPageRenderer: renderer)
   pdfData?.write(toFile: "\(AppDelegate.getAppDelegate().getDocDir())/report.pdf", atomically: true)
}

func drawPDFUsingPrintPageRenderer(printPageRenderer: UIPrintPageRenderer) -> NSData! {
    let data = NSMutableData()

    UIGraphicsBeginPDFContextToData(data, CGRect.zero, nil)
    printPageRenderer.prepare(forDrawingPages: NSMakeRange(0, printPageRenderer.numberOfPages))

    let bounds = UIGraphicsGetPDFContextBounds()

    for i in 0...(printPageRenderer.numberOfPages - 1) {
        UIGraphicsBeginPDFPage()
        printPageRenderer.drawPage(at: i, in: bounds)
    }

    UIGraphicsEndPDFContext();
    return data
}
现在的问题是,生成的PDF只包含多次打印的最后一页(页面中的每一页打印一次),这不是预期的行为