Подсчет PDF страниц в ROR с помощью Docsplit
Мне нужно получить количество страниц в PDF-файлах, хранящихся в Ruby on Rails 5.2.3 ActiveStorage с использованием Docsplit.
Я загружаю PDF-документы, используя Ruby on Rails ActiveStorage. Я понимаю, что эти документы хранятся в виде блобов. Я надеялся, что смогу передать ссылку на файл PDF в Docsplit примерно так:
pages = Docsplit.extract_length(@car_record.crecord)
Но вышесказанное привело к ошибке:
no implicit conversion of ActiveStorage::Attached::One into String
1 ответ
Docsplit.extract_length
ожидает строку (предположительно путь к локальному файлу) и @car_record.crecord
возвращает объект ActiveRecord.
Вы должны быть в состоянии сделать что-то вроде,
file = @car_record.crecord.download_blob_to_tempfile
Docsplit.extract_length(file.path)
Редактировать: ActiveStorage::Downloading
удаляется в 6.1. Попробуйте что-то вроде следующего:
tempfile = Tempfile.new
tempfile.binmode
begin
@car_record.crecord.download { |chunk| tempfile.write(chunk) }
tempfile.flush
tempfile.rewid
ensure
tempfile.close!
end
Docsplit.extract_length(tempfile.path)