按照Rails指南,显然PDF预览是由Rails的ActiveStorage“开箱即用”支持的。
可以预览某些非图像文件:也就是说,它们可以呈现为图像。例如,可以通过提取视频文件的第一帧来预览该文件。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
失败了。我会继续研究的。
3条答案
按热度按时间lb3vh1jj1#
我可能有点晚了,但对于那些谁仍然可能寻找一个答案,安装宝石poppler为我工作。
在宝石文件中
然后
现在可以预览了!你也可以使用file.previewable?来检查文件是否可以预览。用上面的例子:
drkbr07n2#
我试图使我的PDF预览工作。
我已经确认了@ferne97在评论中提到的指令对我的环境有效。即:
brew cask install xquartz
brew install muPDF
(显然,我用的是MacOS)。
ncgqoxb03#
对我来说,在AlmaLinux 8和Rails 7上,将Poppler gem安装到应用程序并没有帮助。
您需要在系统级别安装
poppler
和poppler-utils
。对于Red Hat系列,您可以运行yum install poppler poppler-utils
。您可以在Rails控制台中测试pdf预览。