我正在使用paperclip将pdf文件上传到s3。我想动态地将密码保护应用到上传的pdf文件。
我尝试使用问题How to edit or write on existing PDF with Ruby?中给出的代码!编辑现有的pdf文件(回形针使用的tmp文件)并尝试使用
应用密码保护Prawn::Document.generate("tmp/abc.pdf",:template => params[:ebook].path) do encrypt_document(:user_password => 'foo', :owner_password => 'bar',
:permissions => { :print_document => false,
:modify_contents => false,
:copy_contents => false,
:modify_annotations => false } end
模板支持是否仍然存在于大虾中,或者已被弃用,因为我在prawn manual中找不到任何关于模板的内容! ?
有没有其他方法或任何其他宝石这样做?
感谢。
答案 0 :(得分:2)
template
已在版本0.13.0
中删除,因为它太错误了:
在Prawn 0.13.0中删除了对模板的支持,默认情况下在0.14.0中禁用,在0.15.0中提取。
此gem包含提取的模板代码,这些代码完全不受支持,但提供了Prawn 0.12.0中的旧功能多年。
来源:https://github.com/prawnpdf/prawn-templates
正如他所说,您可以尝试将库添加到当前的Prawn安装中。
否则,您可以将pdftk
与Open3
模块(http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/)一起使用:
require 'open3'
file_name = 'hello_world_1.pdf' # input
file_name_output = 'hello_world_2.pdf' # output
usr = 'foo'
pwd = 'bar'
pdftek = './pdftk.exe' # tested on windows
Open3.popen3("#{pdftek} #{file_name} output #{file_name_output} owner_pw #{pwd} user_pw #{usr}") do |stdin,stdout,stderr|
# ...
end
还有一个红宝石的包装,但我还没有测试它:https://github.com/tcocca/active_pdftk