2014-06-12 4 views
1

클립을 사용하여 pdf 파일을 s3에 업로드하고 있습니다. 업로드 된 pdf 파일에 즉시 비밀번호 보호를 적용하고 싶습니다.ruby로 기존 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! ?

그렇게 할 수있는 다른 방법이나 다른 보석이 있습니까?

감사합니다. 너무 버그 때문에

답변

2

template는 버전 0.13.0에서 제거 : 템플릿

지원, 새우 0.13.0에 떨어 0.14.0에서 기본적으로 사용하지 않도록하고, 0.15.0에서 추출 하였다.

이 보석에는 추출되지 않은 템플릿 코드가 포함되어 있습니다.이 코드는 완전히 지원되지 않지만 수년 동안 Prawn 0.12.0에 있던 이전 기능을 제공합니다.

소스 : https://github.com/prawnpdf/prawn-templates

그가 말했듯이, 당신이 당신의 현재 새우 설치에 라이브러리를 추가 할 수 있습니다.

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 

가 루비의 래퍼도하지만 난 아직 테스트하지 않은 :


그렇지 않으면 Open3 모듈 (http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/)와 pdftk을 사용할 수 있습니다 PSAL 많이 https://github.com/tcocca/active_pdftk

+1

감사를 전 우분투에서 cli tool pdftk를 사용하고 내 코드에서 'pdftk input output'명령을 실행하는 것과 같은 방식으로 이미이 작업을 수행했습니다. 답변 감사합니다 – hsaini734