使用PyPDF2在pdf页面上添加页边距

Ler*_*rak 3 python printing pdf formatting margin

我正在创建一个Python脚本,该脚本可以修改要在书本部分打印的pdf文件。由于在ubuntu打印设置中没有此类功能。

PyPDF2是一个很棒的工具,除了增加页边距之外,我已经可以使用它做所有我想做的事情。

例如考虑这本书。
http://www.edwardothorp.com/sitebuildercontent/sitebuilderfiles/beatthemarket.pdf 它需要一些空白,以便有一定的空间将它们绑定在书中。我发现了如何将内容移动几个像素,但是“画布”的大小没有改变,因此某些内容被切除了。

我可以通过更改Mediabox的大小来使用PyPDF2调整“页面大小”,但是我只能裁剪页面,无法增加它们的大小。为了增加边距,我必须增加尺寸。我也无法缩小内容,因为由于某种原因,页面大小会随之缩小。

如果您要打印一本书,这是脚本。 http://pastebin.com/LGYhKYu1 当然,它仅适用于具有一定边距的pdf,因此您只需要移动内容即可。

如果有人能指出如何使用PyPDF2向pdf添加页边距,我将不胜感激,我一定会忽略一些东西。

谢谢!

小智 5

似乎没有专用的方法,但是您可以创建所需大小的空白页,然后将内容与空白页合并

page = PageObject.createBlankPage(
        yourPage.mediaBox.getWidth () + 2 * margin,  
        yourPage.mediaBox.getHeight() + 2 * margin)
page.mergeScaledTranslatedPage( yourPage, scale, leftMargin, bottomMargin)    
...
output = PdfFileWriter()
output.addPage(page)
Run Code Online (Sandbox Code Playgroud)