首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >斯威夫特ResearchKit makePDFWithCompletionHandler

斯威夫特ResearchKit makePDFWithCompletionHandler
EN

Stack Overflow用户
提问于 2015-07-04 16:21:53
回答 3查看 836关注 0票数 1

我目前正在开发一个基于ResearchKit框架(在objective中编写)的医学研究应用。我的签名分配给同意文件,我试图创建一个PDF使用makePDFWithCompletionHandler和电子邮件。在我的视图控制器中,这是我目前用于同意任务的完成处理程序:

代码语言:javascript
复制
func taskViewController(taskViewController: ORKTaskViewController, didFinishWithReason reason: ORKTaskViewControllerFinishReason, error: NSError?) {
    taskViewController.dismissViewControllerAnimated(true, completion: nil)
    if reason == .Completed {
            ConsentDocument.makePDFWithCompletionHandler(/*Completion handler Block*/){
                //Email pdf code here
            }
        }
}

我不知道把什么作为完成处理程序块。此外,我找不到代码,以电子邮件的pdf一旦创建。

在我的同意任务中,我有以下代码将签名分配给文档:

代码语言:javascript
复制
let signatureResult = ORKConsentSignatureResult(identifier: "ConsentDocumentParticipantSignature")
signatureResult.applyToDocument(ConsentDocument)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-15 00:43:55

对于makePDFWithCompletionHandler完成块,这适用于我(注意,这会将它写入块中的一个文件):

代码语言:javascript
复制
   ConsentDocument .makePDFWithCompletionHandler({ (NSData pdfFile, NSError error) -> Void in
            // println("pdf created")

            // finding document path  //TODO: Remove if not needed

            let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] .stringByAppendingPathComponent("Consent.pdf")

            pdfFile!.writeToFile(documentsPath, atomically: false)

            println(consentDocumentFromDirectory)




        })
票数 1
EN

Stack Overflow用户

发布于 2015-08-31 12:09:36

通过获得审核步骤的签名并将其应用于同意文档,您可以使用makePdf完成块制作pdf,并可以保存在磁盘上或发送到服务器。

代码语言:javascript
复制
func taskViewController(taskViewController: ORKTaskViewController, didFinishWithReason reason: ORKTaskViewControllerFinishReason, error: NSError?) {
    //Handle results with taskViewController.result
    let taskResult = taskViewController.result

    if reason  == ORKTaskViewControllerFinishReason.Completed
    {
        var signatureResult : ORKConsentSignatureResult = taskResult.stepResultForStepIdentifier("ConsentReviewStep")?.firstResult as! ORKConsentSignatureResult
        let document = ConsentDocument.copy() as! ORKConsentDocument
        signatureResult.applyToDocument(document)
        document.makePDFWithCompletionHandler({ (pdfData:NSData?, error: NSError?) -> Void in

            var docURL = (NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)).last as? NSURL                
            docURL = docURL?.URLByAppendingPathComponent( "myFileName.pdf")

            //write your file to the disk.
            pdfData?.writeToURL(docURL!, atomically: true)
            //now you can see that pdf in your applications directory

}
票数 3
EN

Stack Overflow用户

发布于 2017-08-11 11:45:23

Swift 3.1

代码语言:javascript
复制
let result = taskViewController.result
                if let stepResult = result.stepResult(forStepIdentifier: ConsentReviewStepIdentifier),
                    let signatureResult = stepResult.results?.first as? ORKConsentSignatureResult {
                    signatureResult.apply(to: consentDocument)

                    consentDocument.makePDF { (data, error) -> Void in
                        var docURL = (FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)).last as NSURL?
                        docURL = docURL?.appendingPathComponent("myFileName.pdf") as NSURL?


                        //write your file to the disk.


                        do {

                            try data?.write(to:docURL! as URL)
                            print(docURL! as URL)




                        } catch let error {

                            print(error.localizedDescription)
                        }


                        //now you can see that pdf in your applications directory

                    }

                }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31222797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档