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 文本字段?

我用pypdf2填充了一个pdf的表单域值,但是输出的pdf不显示这个值,要点一下才显示,怎么回事

iTextSharp 填充 Pdf 表单图像字段

origin填充图案导出pdf有问题

导出 PDF 图形,形状轮廓和填充区域不分离

java之数据填充PDF模板