ios - 使用UITextField中的信息填写PDF文档

标签 ios swift ios-pdfkit

我有一个PDF文档存储在我的应用程序的主捆绑包中,还有一个ViewController,其中有文本字段供用户输入。我也有一个按钮,电子邮件填写的PDF给用户。我不需要将PDF保存到设备
我想使用PDFKit来实现这一点,但是我还没有弄清楚如何实现这一点。
我尝试了以下代码:

if let path = Bundle.main.path(forResource: "User", ofType: "pdf") {
    let url = URL(fileURLWithPath: path)
    if let doc = PDFDocument(url: url) {

        for index in 0..<doc!.pageCount{
            if let page = doc?.page(at: index){
                let annotations = page.annotations
                for annotation in annotations{
                    print("Annotation Name :: \(annotation.fieldName ?? "")")
                    if annotation.fieldName == "firstname"{
                        annotation.setValue(firstnameField.text, forAnnotationKey: .widgetValue)
                        page.removeAnnotation(annotation)
                        page.addAnnotation(annotation)
                    }
                }
            }
        }
        let mailComposer = MFMailComposeViewController()
        mailComposer.mailComposeDelegate = self
        mailComposer.setToRecipients([emailField.text])
        mailComposer.setSubject("User Information")
        mailComposer.setMessageBody("User Information for \(firstnameField.text).", isHTML: true)
        mailComposer.addAttachmentData(doc.dataRepresentation()!, mimeType: "application/pdf", fileName: "User")
        self.present(mailComposer, animated: true, completion: nil)
    }
}

如果有任何帮助,我们将不胜感激。
乔希

最佳答案

我想你可以换线:

annotation.setValue(firstnameField.text, forAnnotationKey: .widgetValue)

具有
annotation.contents = firstnameField.text

如果这不起作用(可能这不是文本或自由文本批注),也可以创建自由文本批注并将其放在此处:
let textObj = PDFAnnotation(bounds: annotation.bounds, forType: .freeText, withProperties: nil)
textObj.contents = firstnameField.text
textObj.color = UIColor.clear
page.addAnnotation(textObj)

希望这有帮助。

关于ios - 使用UITextField中的信息填写PDF文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54652543/

相关文章:

ios - 在 Urban Airship 门户上更改 bundle ID

ios - 由UIDocumentInteractionController(iOS 10.3)打开时,PDF为空白或半载

linux - Swift 2 和 Linux/OS X 的区别

uimenucontroller - PDFKit 错误,需要禁用 UIMenuItems

swift - iOS PDFKit-注释内容仅在选中时可见

Swift PDF 渲染任何 UIView 或 UIViewController PDFKit

ios - 如何避免在 iOS 9.0 中由 openURL 触发的 "wants to open"对话框

ios - 当我在我的应用程序中按下一个按钮时,整个应用程序卡住

objective-c - 将自己的 Objective-C 框架添加到 Swift 项目

ios - 在显示按钮之前,检查是否可以进行应用内购买