WWD2017 pdfkit填写PDF表格

Posted

技术标签:

【中文标题】WWD2017 pdfkit填写PDF表格【英文标题】:WWD2017 pdfkit to fill PDF form 【发布时间】:2017-10-01 07:18:13 【问题描述】:

在我的 swift 应用程序中有一个 PDF 表单字段,其中定义了所有字段名称,我想以编程方式填充这些字段,但是观看 WWDC 演示文稿,PDFKit 首先在字段周围画一个框架,这意味着首先创建表单字段而不是将 vale 设置为

textField.widgetStringVale = “WWDC 2017”

我的问题是

1) 是否可以使用 adobe acrobat 中已创建的字段以编程方式快速填充 PDF 表单,而不是先使用 PDFKit 创建字段

2) 如果不是 1) 如何确定字段的绝对帧大小,因为字段很多,所以我不想反复试验

【问题讨论】:

【参考方案1】:

是的,您可以使用 PDFKit 以编程方式填写 PDF 表单:

import UIKit
import PDFKit

let pdfURL = ...
let document = PDFDocument(url: pdfURL!)
let page1 = document!.page(at: 0)

let field = page1?.annotations.filter( $0.fieldName! == "ConferenceName" )
field?[0].widgetStringValue = "WWDC 2017"

let saveURL = ...
document!.write(to: saveURL)

【讨论】:

如何循环访问一个 fieldNames 数组来更新几个字段值?【参考方案2】:

我只想添加一个用于测试目的的保存功能

import UIKit
import PDFKit

override func viewDidAppear(_ animated: Bool) 
    super.viewDidAppear(animated)

 let pdfURL = ...
 let document = PDFDocument(url: pdfURL!)
 let page1 = document!.page(at: 0)

 let field = page1?.annotations.filter( $0.fieldName! == "ConferenceName" )
 field?[0].widgetStringValue = "WWDC 2017"

 savePDF()


 func savePDF() 
    #if targetEnvironment(simulator)
    let path = URL(string: "file:///Users/bbird/Desktop/PDFKit/awesome.pdf")!
    #else
    let path = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last!.appendingPathComponent("awesome.pdf")
    #endif
    print(path)
    self.pdfView?.document?.write(to: path) //We don't really need to write this here - just demo'ing code
   

【讨论】:

以上是关于WWD2017 pdfkit填写PDF表格的主要内容,如果未能解决你的问题,请参考以下文章

想合并多次填写的PDF表格

pdf文件怎么填写

带有可填写、可靠的 pdf 表格的 DPF 产品组合

gem 用于上传 PDF 模板,填写表格并输出生成的 PDF

Spring,Java:填写表格并转换为 PDF

如何使用PDF Reader在PDF表格上填写信息?