2011-01-23 20 views
6

Tôi đang cố gắng tìm cách chèn nội dung tệp FDF vào tệp PDF có thể điền (do khách hàng cung cấp và không được 'vẽ lại' bằng cách sử dụng Prawn hoặc PDFKit) và tôi nghĩ mình phải sử dụng iText (với JRuby) hoặc pdftk.Cách thiết lập pdftk hoặc iText để làm việc với Rails 3 trên Heroku?

Cả hai thư viện này đều hoạt động không có vấn đề gì với máy cục bộ Ubuntu của tôi, nhưng tôi tự hỏi làm cách nào tôi có thể làm việc với Heroku. Có ai đã cố gắng để có được iText (JRuby) hoặc PDFTK để làm việc trên Heroku?

Cảm ơn sự giúp đỡ của bạn!

Trả lời

8

Bạn có thể sử dụng pdftk trên Heroku – được cài đặt sẵn. Bạn sử dụng nó bằng cách bắn phá nó như là một chương trình dòng lệnh từ bên trong ứng dụng Ruby của bạn.

Đối với hầu hết các lệnh pdftk, bạn sẽ sử dụng Tempfile s. Nội suy số Tempfile#path s trong các đối số đến pdftk.

`pdftk #{subcommand}` 
raise Exception unless $?.success? 

Trong một số trường hợp, bạn sẽ có thể để dữ liệu đường ống trong và ngoài sử dụng stdinstdout hơn Tempfile s.

input = ... 
output = IO.popen "pdftk #{subcommand}", 'w+b' do |io| 
    io.write input 
    io.flush 
    io.close_write 
    io.read 
end 
+0

Cảm ơn, công lý! – Dominic

+4

Chỉ cần lưu ý: Nó được cài đặt sẵn trên ngăn xếp Heroku Bamboo (chạy Debian), nhưng chưa có trên ngăn xếp mới nhất là Cedar (chạy Ubuntu). – Magne