14

我在 Rails 3.2.12 应用程序中使用 Prawn 0.12.0。

如果我的本地服务器上有图像,它可以显示在标准 rails 视图中,我也可以使用以下代码将其显示在 Prawn PDF 中

@logo = company.logo_url(:large).to_s    
image @logo, :fit => [83.mm, 26.mm]

到目前为止,一切都很好。如果我将图像的位置更改为在 Amazon S3 上,我会得到以下信息

我可以在标准 Rails 视图中显示没有问题如果我尝试在 Prawn pdf 中显示图像,我会收到以下错误

Argument error (https://mydomain.s3.amazonaws.com/uploads/company/logo/20/large_2275_logo.png not found):

如果我然后将该网址复制并粘贴到浏览器中,则图像显示正常。

所以回顾一下...

  1. 我可以对本地图像使用 Prawn image 命令,表明我正确使用了 Prawn 语法
  2. 我可以使用直接浏览器和 Rails 视图访问 Amazon S3 上的图像,表明 URL 正确
  3. 但是,我无法从 Prawn 访问 Amazon S3 上的图像

有没有人看到类似的东西,或者有什么建议?

迈克尔

4

2 回答 2

28

我有同样的问题,我已经解决了

需要'open-uri'

图片打开("hxxp://www.thesite.com/theimage.png")

于 2013-09-05T10:11:27.230 回答
7

借助最近发布的Prawn,您可以实现加载远程图像而无需open-uri;

image open("http://example.com/remote_image.pdf"), at: [300, 100], width: 100, height: 100
于 2014-10-21T19:36:05.080 回答