0

我目前正在使用 Prawn 和 CombinePDF 开发 Ruby on Rails 5.2 应用程序。我请求将文件发送到 Box api。我从框中得到的文件然后转换为字符串StringIO.new(image),然后使用它添加到虾文档中,如图所示。

attach_docs_from_submission(user_data).each do |file|
      image = client.download_file(file)
      format_image = StringIO.new(image)
      pdf_prawn = Prawn::Document.new
      pdf_prawn.image format_image
      pdf_data = pdf_prawn.render
      pdf << CombinePDF.parse(pdf_data)
    end

但是,当我检查 PDF 不是完整图像时。在此处输入图像描述

有没有办法适合全尺寸的图像?问题是来自 Prawn 还是 CombinePDF?

4

2 回答 2

0

这个答案是基于我的偏好,因为我意识到有很多方法可以解决这个问题。对我个人而言,这是最精简和灵活的解决方案。

      pdf_prawn = Prawn::Document.new(page_size: 'LETTER')
      pdf_prawn.image format_image, fit: [610, 790],
                                    position: :center,
                                    position: :center

所以你设置page_size然后LETTER你得到字母的尺寸并将它们作为参数传递给fit:考虑.5页面上的边距。您也可以scale:用于调整图像大小,但我发现它缺乏精度。有关这方面的更多信息可以在手册中找到

于 2018-11-07T19:31:45.413 回答
0

您可以使用以下方法获取页面尺寸:

pdf_prawn.bounds.width
pdf_prawn.bounds.height

你可以通过这些来适应。

于 2018-11-08T15:24:15.297 回答