遵循Rails指南,显然Rails的ActiveStorage支持“开箱即用”的PDF预览。
一些非图像文件可以预览:即可以显示它们 作为图像。例如,可以通过提取视频文件预览视频文件 它的第一帧。开箱即用,Active Storage支持预览 视频和PDF文档。
它提供的代码示例是这样:
<ul>
<% @message.files.each do |file| %>
<li>
<%= image_tag file.preview(resize_to_limit: [100, 100]) %>
</li>
<% end %>
</ul>
我使用此代码上传了pdf文件,但出现此错误:
ActiveStorage::UnpreviewableError
也许我缺少什么?
更新
好的,我想我知道问题出在哪里。我应该在我的机器或“服务器”上安装诸如muPDF之类的第三方库,以使其正常工作。不过,对我来说,运行brew install muPDF
失败了。我会继续研究。
答案 0 :(得分:1)
对于您来说我可能会迟到一些,但对于仍然需要答案的人来说,安装poppler宝石对我来说很有效。
在Gemfile中
gem 'poppler'
然后
bundle install
现在预览工作正常!您还可以使用file.previewable吗?检查文件是否可以预览。在上面的示例中:
<ul>
<% @message.files.each do |file| %>
<%= if file.previewable? %>
<li>
<%= image_tag file.preview(resize_to_limit: [100, 100]) %>
</li>
<% end %>
<% end %>
</ul>
答案 1 :(得分:0)
我正在尝试使PDF预览正常工作。
我已经确认@ ferne97提到的有关对我的环境有效的注释的指令。 即:
brew cask install xquartz
brew install muPDF
(显然,我使用MacOS)。