Хорошо, я пробовал все виды вещей, и я не совсем уверен, что это будет работать. 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
Как запустить эту строку для создания new.pdf?
Должен ли я заменить временный файл новым pdf, или записать в него новый pdf или просто создать новый pdf в своем собственном месте? Если последнее, как мне сделать его временным?
Как получить ссылку на новый PDF-файл, чтобы пользователи могли его скачать?
Некоторые из них могут быть простыми, но мне никогда не приходилось возиться с временными файлами для динамического создания PDF-файлов, как это.
О да, и это приложение также в Rails 2.3
Спасибо за любую помощь.