Хорошо, я пробовал все виды вещей, и я не совсем уверен, что это сработает. PDF-файлы, которые мне нужно объединить, находятся на сервере, и ссылки на них жестко закодированы. pdftk работает локально в моем терминале, но не с этими удаленными ссылками. Поэтому я не уверен, что это сработает, как только я запущу его в производство.
По сути, я пытаюсь написать метод, который будет извлекать выбранную группу PDF-файлов и объединять их в один PDF-файл для загрузки пользователем.
Но мне трудно понять, как использовать временные файлы и запускать команды терминала через приложение rails.
Вот метод:
def create
@routes = TransitRoute.find(params[:selected_routes])
@selected_routes = @routes.collect {|x| x.new_pdf_link + " "}
Tempfile.open('prefix', "#{Rails.root}/tmp") do |f|
f.print("pdftk #{@selected_routes} cat output temporary.pdf")
f.flush
f.read
end
respond_to do |format|
format.html
end
end
У меня есть пара вопросов:
В моем временном файле записана правильная командная строка:
pdftk 1.pdf 2.pdf вывод кота new.pdf
Как мне запустить эту строку, чтобы создать новый.pdf?
Должен ли я заменить временный файл новым pdf-файлом, записать в него новый pdf-файл или просто создать новый pdf-файл в своем собственном месте? Если второе, то как мне сделать его временным?
Как мне получить ссылку на новый PDF-файл, чтобы пользователи могли его скачать?
Некоторые из них могут быть базовыми, но мне никогда не приходилось возиться с временными файлами для динамического создания PDF-файлов.
Ах да, и это приложение тоже есть в Rails 2.3.
Спасибо за любую помощь.