遵循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
失败了。我会继续研究的。
发布于 2019-09-20 20:31:27
我可能对你来说有点晚,但是对于那些仍然在寻找答案的人来说,安装gem 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>
发布于 2020-10-02 22:38:34
我试着让我的PDF预览工作。
我已经确认@ferne97在评论中提到的指令在我的环境中有效。即:
brew cask install xquartz
brew install muPDF
(显然,我使用的是MacOS)。
https://stackoverflow.com/questions/56994871
复制相似问题