首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用PyPDF2向pdf页面添加页边距

使用PyPDF2向pdf页面添加页边距
EN

Stack Overflow用户
提问于 2014-10-05 23:47:41
回答 2查看 4.1K关注 0票数 5

我正在创建一个python脚本,可以修改要打印在书节中的pdf文件。因为在ubuntu打印设置中没有这样的功能。

PyPDF2是一个很棒的工具,我可以用它做任何我想做的事情,除了添加边距。

例如,考虑这本书。

http://www.edwardothorp.com/sitebuildercontent/sitebuilderfiles/beatthemarket.pdf它需要一些页边距,以便在书中有一些空间来装订它们。我已经找到了如何将内容移动几个像素,但“画布”的大小不变,因此一些内容被切断。

我可以用PyPDF2通过改变mediabox的大小来调整“页面大小”,但我只能裁剪页面,不能增加它们的大小。为了增加边距,我必须增加大小。我也不能缩小内容,因为由于某些原因,页面大小也会随之缩小。

如果你想打印一本书,这是一个脚本。当然,它只适用于已经有一些页边距的http://pastebin.com/LGYhKYu1,所以你只需要移动内容即可。

如果有人能指出如何用PyPDF2给pdf增加页边距,我将不胜感激,我一定是忽略了什么。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2015-06-29 21:53:08

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

代码语言:javascript
运行
复制
page = PageObject.createBlankPage(
        yourPage.mediaBox.getWidth () + 2 * margin,  
        yourPage.mediaBox.getHeight() + 2 * margin)
page.mergeScaledTranslatedPage( yourPage, scale, leftMargin, bottomMargin)    
...
output = PdfFileWriter()
output.addPage(page)
票数 6
EN

Stack Overflow用户

发布于 2019-08-28 18:52:37

我自己也在试图弄清楚这一点。我的目标是裁剪一个B5页面内容,并使其适合A4中的小册子

代码语言:javascript
运行
复制
bind_margin = 60
for pnum in tqdm(range(numpage)):
    page = inpdf.getPage(pnum)

    # Trim margins from right and left
    page.trimBox.lowerLeft = tuple([a+b for a, b in zip(page.trimBox.lowerLeft, (50, 0))])
    page.trimBox.upperRight = tuple([a-b for a, b in zip(page.trimBox.upperRight, (50, 0))])
    page.cropBox.lowerLeft = tuple([a+b for a, b in zip(page.cropBox.lowerLeft, (50, 0))])
    page.cropBox.upperRight = tuple([a-b for a, b in zip(page.cropBox.upperRight, (50, 0))])

    # create empty A4 size page
    emptyPage = pdf.PageObject.createBlankPage(width=tarw, height=tarh)
    margin_available = tarw + page.mediaBox.lowerLeft[0] - page.mediaBox.upperRight[0]

    if pnum%2==0:
            tx = bind_margin
    else:
            tx = margin_available - bind_margin

    emptyPage.mergeTranslatedPage(page, tx, 180)

    outpdf.addPage(emptyPage)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26204307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档