hsaini734
hsaini734

Reputation: 33

Edit existing pdf file metadata with ruby (Apply Password protection)

I am uploading a pdf file using paperclip to s3. I want to apply password protection on the fly to the uploaded pdf file.

I tried to use the code given in question How to edit or write on existing PDF with Ruby?! to edit existing pdf file (the tmp file used by the paperclip) and try to apply password protection using

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

Is the template support still exist in prawn or it had been deprecated as i didn't find anything regarding template in the prawn manual! ?

Is there any other way or any other gem to do so ?

Thanks.

Upvotes: 1

Views: 1546

Answers (1)

onionpsy
onionpsy

Reputation: 1522

template was removed in version 0.13.0 because it was too buggy :

Support for templates was dropped in Prawn 0.13.0, disabled by default in 0.14.0, and extracted in 0.15.0.

This gem includes the extracted templates code, which is completely unsupported, but provides the old functionality that was in Prawn 0.12.0 for years.

source : https://github.com/prawnpdf/prawn-templates

As he said, you can try to add the library to your current Prawn installation.


Otherwise you can use pdftk with Open3 module (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

There is also a wrapper for ruby but I haven't test it yet : https://github.com/tcocca/active_pdftk

Upvotes: 2

Related Questions