PrawnPDF 翻转整个 PDF

Posted

技术标签:

【中文标题】PrawnPDF 翻转整个 PDF【英文标题】:PrawnPDF Flip Entire PDF 【发布时间】:2015-07-14 15:51:17 【问题描述】:

我正在使用 Prawn PDF 创建一个发送到标签打印机的标签,但标签打印时是上下颠倒的。这很重要,因为我们使用的运输标签上已经有一些印刷品。我正在使用的设置(iPad 通过 Lantronix xPrintServer 到 Zebra 打印机)不允许我使用驱动程序翻转它。

所以我想知道是否有一种方法可以使用 Prawn(甚至只是 Rails)来翻转整个文档(包含 2 页以上),以便在标签上正确打印出来。页面的顺序不是必需的。

【问题讨论】:

空白标签可以在放入机器之前翻转吗? 它们在滚动,所以翻转它们不是一种选择。 【参考方案1】:

我最近没有使用过 Prawn,但我很确定在代码顶部使用 rotate 方法会起作用。您只需将原点设置为页面中心,或使用translate 在旋转后重新定位内容。 manual (PDF) 中的第 29 页有一些示例代码。

【讨论】:

这在大多数情况下都有效。当我使用多页表执行此操作时,Prawn 似乎不喜欢它,但我想我可以解决这个问题。【参考方案2】:

您可以将 pdf 保存到文件中,然后使用很棒的 pdftk 旋转保存的 pdf,然后发送修改后的版本。

https://www.pdflabs.com/docs/pdftk-cli-examples/

编辑 - pdftk 不是库/插件/gem,也不是任何类型的 Ruby。这是一个命令行工具,您可以在控制器中像这样使用它,替换您当前的“生成并发送 pdf”代码。

#instead of sending the pdf straight to the user, save it to a file
#i'm not sure how to do this in prawn but it can't be difficult

#rotate the original to a new file
`pdftk /path/to/original.pdf cat 1-endsouth output /path/to/rotated.pdf`

#you could test whether the rotated file exists here as an error-check

#then use send_file to send the rotated one as the response. 
send_file "/path/to/rotated.pdf", :type => "application/pdf"

【讨论】:

我希望使用“即时”方法。真的不想使用其他库/插件/gem。

以上是关于PrawnPDF 翻转整个 PDF的主要内容,如果未能解决你的问题,请参考以下文章

PPT/PDF:如何显示我的幻灯片的镜像版本? (翻转或失败)

快速翻转视图:整个屏幕翻转+点击手势的问题只工作两次

Cordova如何翻转整个屏幕正面到背面的3D效果

如何使 UICollectionView 像书一样翻转整个页面

使用 MuPDF 像翻转板一样水平翻转

mPDF 将图像渲染为翻转并隐藏在容器中