我需要使用Docsplit获取存储在Ruby on Rails 5.2.3 ActiveStorage中的PDF文件的页面数。
我正在使用Ruby on Rails ActiveStorage上传PDF文档。我了解这些文档存储为Blob。我希望可以通过以下方式将对PDF文件的引用传递给Docsplit:
const func = arg2 => {
const digits = new Set(Array(10).keys());
for (let digit of arg2) digits.delete(digit);
const allowed = [...digits];
return Array.from({length:5}, () =>
allowed[Math.floor(Math.random() * allowed.length)]
).join``;
}
console.log(func([6, 2]));
但是以上情况导致错误:
pages = Docsplit.extract_length(@car_record.crecord)
答案 0 :(得分: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)