使用Rails活动存储无法预览PDF?

时间:2019-07-11 17:51:55

标签: ruby-on-rails rails-activestorage

遵循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失败了。我会继续研究。

2 个答案:

答案 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)。