ruby - 在 ruby​​ 中旋转 pdf

标签 ruby pdf imagemagick prawn

我正在使用 prawn 创建一个 pdf 文件。在某些情况下,生成后,我需要将 pdf 方向从横向更改为纵向。

Prawn 提供了rotate 功能,但它不适用于整个pdf,由于某些原因,旋转必须在生成之后/生成结束时进行。

我找到了 this solution with ImageMagick但我也面临巨大的质量下降(并且没有提供解决方案)。

我还尝试使用我生成的 pdf 作为新 Prawn pdf 的模板,并使用 :page_layout 来改变方向:

pdf = Prawn::Document.new(page_layout: :landscape, template: file_name)
pdf.render

但是 template 参数似乎被忽略了,它只是创建一个空白的 pdf。

我正在寻找一个好的解决方案(如果我不需要外部库则加分)。

最佳答案

您可以查看 combine_pdf gem (剧透:我是作者)...

...虽然我认为您会通过预先设置正确的布局来体验更好的性能(如果您在 Prawn 中管理它,您将避免需要在不同的工具中解析 PDF)。

你可以尝试一些效果:

# get the PDF data from prawn and parse it
pdf = CombinePDF.parse prawn_pdf.render
# rotate everything that needs rotation clockwise
pdf.pages.each {|p| p.orientation :landscape }
# or, counter-clockwise:
pdf.pages.each {|p| p.orientation :landscape, false }
# export to String
pdf.to_pdf
# write to file
pdf.save 'my.pdf'

祝你好运。

关于ruby - 在 ruby​​ 中旋转 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35430538/

相关文章:

Imagemagick 裁剪透明图像以 mask

php - 将 PHP/GD 包装器移植到 Imagick 的问题

php - 如何确定我是否安装了 gd 库或 imagemagick?

python - Ruby 到 Python 的桥梁

mysql - 在 ruby​​ 中连接到外部 MySQL。错误 1130 (HY000)

c# - 如何强制在 chrome android 上内联打开 pdf 文档?

java - 使用 iText 库在 PDF 中生成分层书签

ruby - Integer(value) 和 value.to_i 之间的区别

ruby - 计数、尺寸、长度……Ruby 中的选择太多了吗?

python - Chromedriver、Selenium - 自动下载