ruby - 大虾 - 图像被裁剪并且完整图像未渲染
问题描述
我目前正在使用 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
有没有办法适合全尺寸的图像?问题是来自 Prawn 还是 CombinePDF?
解决方案
这个答案是基于我的偏好,因为我意识到有很多方法可以解决这个问题。对我个人而言,这是最精简和灵活的解决方案。
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:
用于调整图像大小,但我发现它缺乏精度。有关这方面的更多信息可以在虾手册中找到
推荐阅读
- php - Yii2 资产压缩器和合并器
- git - 检索旧提交 git 中的片段
- django - 阻止对 API 的非 ajax 请求。姜戈。DRF
- reactjs - 如何使用 react-gradient-timepicker 库的 onSet 函数?
- c# - 如何摆脱 try/catch 并改进 C# 查询?
- python - 如何使用自定义构建的 REST API 来验证气流网络服务器登录?
- kube-proxy - 使用外部 ipon kubernetes 公开服务成功,但节点上没有 ip
- javascript - 从数组中为 NodeJS 中的 SSL 加密常量构建按位 OR 字符串
- python - 未找到 PyTorch 桶迭代器
- python - 由 cx_Freeze 制作的 Tkinter exe 在快捷方式文件夹中找不到 png 文件