【发布时间】:2014-06-02 07:51:08
【问题描述】:
我正在尝试从不同大小的图像创建 PDF 文档,以便 PDF 的每一页都显示未缩放的图像之一,页面大小应适合图像尺寸。
我正在使用 Prawn 从图像文件名列表中生成 PDF。为了获得图像尺寸,我使用 FastImage。
Prawn::Document.generate('Output.pdf') do
list_of_image_filenames.each do |i|
image_size = FastImage.size(i)
start_new_page(:size => image_size, :layout => :portrait)
image(i)
end
end
为了测试它,我使用了三个尺寸为 560x560、600x600 和 600x600 的 PNG 文件。我已确保 FastImage 返回正确的图像尺寸。
生成的 PDF(预览版告诉我它是 PDF 1.4 版)如下所示:
- 它从 3 个空白页开始(其中一个可能是因为我没有在第一页上放任何东西),然后是第一张图像,它被裁剪了。根据 Preview,除了我暂时忽略的第一个之外,这些页面的大小为 560x560 像素。
- 接下来是两个空白页面,然后是第二张图片,它也无法放入页面。这些页面的尺寸为 600x600 像素。
- 最后,还有两张空白页和第三张图片,再次裁剪,页面尺寸也是 600x600 像素。
这是其中一张裁剪图像的示例;原图是一个完整的圆角矩形,里面有数字“1”。
为什么图片不适合页面?如何将单个未缩放的图像放在适合其尺寸的页面上?
【问题讨论】: