Forum: Ruby on Rails PDF Generation with password

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
CiriusMex (Guest)
on 2009-02-20 21:10
(Received via mailing list)
Hi, I have a little issue here. I'm working on an eBook site and need
to generate PDFs. I managed it using PDF::Writer and did the trick
quite well but now I want to generate PDFs with a password access.
After checking on internet, I saw that PDF::Writer encrypt method was
removed (for encryption algorithm was cracked or something like that).
Had a look at the Prawn plugin but it has no security module and can't
be used to do so.

Is there any way to create password protected PDFs with Ruby?

Other problem, I want to modifiy the PDF generation to create new PDFs
by copying PDF files already existing and adding a front page with the
customer name and a little message. I managed read PDF files and copy
the content in a new PDF but I'm losing all the format (the result is
just a new PDF with the text of the original PDF but with no
format...). Anyone know how I can copy a PDF and add this front page?

Thanks for your help,
Olivier.
bill walton (Guest)
on 2009-02-20 23:13
(Received via mailing list)
Hi Oliver,

On Fri, 2009-02-20 at 11:09 -0800, CiriusMex wrote:
> Other problem, I want to modifiy the PDF generation to create new PDFs
> by copying PDF files already existing and adding a front page with the
> customer name and a little message. I managed read PDF files and copy
> the content in a new PDF but I'm losing all the format (the result is
> just a new PDF with the text of the original PDF but with no
> format...). Anyone know how I can copy a PDF and add this front page?

I worked through a very similar set of issues a couple of years ago.
Ended up using a system call to pdftk (http://www.accesspdf.com/pdftk/).
It'll do what you need very easily.

HTH,
Bill
CiriusMex (Guest)
on 2009-02-21 00:28
(Received via mailing list)
Thanks a lot, I'm gonna check it right now ^^

Olivier.
CiriusMex (Guest)
on 2009-02-21 01:15
(Received via mailing list)
Ok, this toolkit seems pretty cool but my problem is that I want todo
everything using Ruby, so I need a plugin or something that can
connect to ruby in order to do the PDF copy etc using a ruby
function...
Jeff B. (Guest)
on 2009-02-21 02:36
(Received via mailing list)
I agree with Bill.  pdftk has been an invaluable tool for me when
working with pdfs, and can easily be wrapped for use in ruby.

Altho you'll want to add checks to ensure safety of params your
passing to pdftk, and check for errors returned, ..., you could do
something like:

   ...
   def add_user_pw_to_pdf(infile, pw, outfile)
    `pdftk #{infile} output #{outfile} user_pw #{pw} 2>&1`
  end

  def combine_pdfs(infiles, outfile)
    `pdftk #{infiles.join(' ')} output #{outfile} 2>&1`
  end
  ...

which you could then call like:

  ...
  add_user_pw_to_pdf('test.pdf', 'supersecret', 'test_with_pss.pdf')
  ...
  combine_pdfs(['a.pdf', 'b.pdf', 'c.pdf'], 'abc.pdf')
  ...

Jeff
CiriusMex (Guest)
on 2009-02-21 19:28
(Received via mailing list)
Ok, I didn't understood it could be used with ruby, will check how to
do that, thanks again for your help ;)
This topic is locked and can not be replied to.