Datalogics PDF 填充 Rails
Posted
技术标签:
【中文标题】Datalogics PDF 填充 Rails【英文标题】:Datalogics PDF Fill in Rails 【发布时间】:2015-06-24 02:31:16 【问题描述】:我正在尝试使用 Datalogics PDF (https://api.datalogics-cloud.com/docs#fillform) 在我的 rails 应用程序中填写可填写的 pdf(使用 adobe acrobat 制作)。
我很难弄清楚如何进行 api 调用。 IE。我不知道在哪里/如何放置参数。任何帮助深表感谢!谢谢!
其中一个示例是使用 curl,因此在控制器操作中,我将 curl https://pdfprocess.datalogics.com/api/actions/render/pages --insecure --form 'application="id": "xxxxx", "key": "xxxxxxx"' --form input=@hello_world.pdf --form inputName=hello_world.pdf --output flattened.pdf
将 pdf hello_world(位于我的 rails 根目录中)展平为名为 flattened.pdf 的 pdf。
我不知道如何理解这段代码。
另外,我考虑过不使用控制器,而是使用动作为 url 并具有各个字段标签的表单,这是一种有效的可能性吗?
对于填写表格,我正在尝试这个 curl 命令:
`curl https://pdfprocess.datalogics.com/api/actions/fill/form --insecure --form 'application="id": "xxxxx", "key": "xxxxxx"' --form input=@private/fillable/CG1218_6-95.pdf --form filename=@input.json --output flattened.pdf`
【问题讨论】:
你能告诉我们你到目前为止得到了什么,以及你遇到的任何错误吗?你还试过什么等??? (注意:不要把它放在 cmets 中,编辑你的问题并添加它,因为这些东西应该是你问题的一部分) 【参考方案1】:您可以使用 HTTP 请求来执行此操作。我整理了一些代码,您可以在下面看到。您的请求需要是多部分的,这就是您必须定义边界的原因。我下面的请求是针对 DocumentProperties 服务的。您需要稍微修改它以添加用于填写表单的值。请注意,您需要在传入文件时使用“File.read()”来读取包含值的文件。
您可以在下面看到相关代码。
# Initialize a new HTTPS request object with our URL
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
##
# The Content-Type field for multipart entities requires one parameter, "boundary",
# which is used to specify the encapsulation boundary. The encapsulation boundary
# is defined as a line consisting entirely of two hyphen characters ("-", decimal code 45)
# followed by the boundary parameter value from the Content-Type header field.
BOUNDARY = 'BoundaryString'
# Initialize a new Post request
request = Net::HTTP::Post.new(url)
request['content-type'] = "multipart/form-data; boundary=#BOUNDARY"
# Initialize a new helper array to aid us set up the post reuqest
post_body = []
# Add the application data, key and ID to the helper array
post_body << "--#BOUNDARY\r\n"
post_body << "Content-Disposition: form-data; name=\"application\"\r\n\r\n"
post_body << "\"id\":\"#app_id\", \"key\":\"#key\""
post_body << "\r\n--#BOUNDARY\r\n"
# Add the file Data to the helper array
post_body << "--#BOUNDARY\r\n"
post_body << "Content-Disposition: form-data; name=\"input\"; filename=\"#File.basename(file)\"\r\n"
post_body << "Content-Type: application/pdf\r\n\r\n"
# Read the file data to the helper array
# Note that this reads the complete file in memory, and might not work well for large files
post_body << File.read(file)
post_body << "\r\n\r\n--#BOUNDARY--\r\n"
# Create the request body by joining all fields of the helper array together
request.body = post_body.join
# Submit the post request
response = http.request(request)
【讨论】:
以上是关于Datalogics PDF 填充 Rails的主要内容,如果未能解决你的问题,请参考以下文章
使用 Cocoa 填充 PDF - 使用 NSTextField 内容填充 PDF 文本字段?