如何将PDF从法定大小缩小到字母大小,并使用Python将其居中

如何将PDF从法定大小缩小到字母大小,并使用Python将其居中,python,pdf,pypdf2,Python,Pdf,Pypdf2,我正在将多组混合格式的PDF(字母和法律)合并到单个PDF中,并使用Python和PyPDF4来实现这一点。但缩减后的法律PDF的内容是“左对齐”的,而不是居中对齐,在右侧留下大量空白。看起来很俗气。我希望结果能够模拟在字母大小的纸张上打印普通的法定大小的PDF,这通常默认为缩小比例并居中的PDF。在Python中如何实现这一点?用PyPDF4还是别的什么?(注:字母为612 x 792点,法定字母为612 x 1008点,在保持纵横比为481 x 792的情况下缩小尺寸)我当前的测试代码如下:

我正在将多组混合格式的PDF(字母和法律)合并到单个PDF中,并使用Python和PyPDF4来实现这一点。但缩减后的法律PDF的内容是“左对齐”的,而不是居中对齐,在右侧留下大量空白。看起来很俗气。我希望结果能够模拟在字母大小的纸张上打印普通的法定大小的PDF,这通常默认为缩小比例并居中的PDF。在Python中如何实现这一点?用PyPDF4还是别的什么?(注:字母为612 x 792点,法定字母为612 x 1008点,在保持纵横比为481 x 792的情况下缩小尺寸)我当前的测试代码如下:

def pdf_resize():
    petition = PyPDF4.PdfFileReader('/Users/xxxxx/Downloads/xxxxx.pdf')
    conformed_petition = PyPDF4.PdfFileWriter()
    for page in petition.pages:
        if page.mediaBox.getHeight() != 792:
            page.scaleTo(481, 792)
            page.mediaBox.setLowerLeft((0, 0))
            page.mediaBox.setLowerRight((612, 0))
            page.mediaBox.setUpperLeft((0, 792))
            page.mediaBox.setUpperRight((612, 792))
    with open('/Users/xxxxxx/Downloads/conformed_file.pdf', 'wb') as f:
        conformed_petition.appendPagesFromReader(petition)
        conformed_petition.write(f)
仅供参考,我尝试添加了大约20个PyPDF4的artBox、bleedBox、cropBox和trimBox参数组合,但没有成功。我猜缩小的内容无论如何都是从0x,0y(左下角)开始的,所以可能额外的参数是无用的,需要进行转换?但是我在文档中找不到任何关于addTransformation方法是如何工作的。任何帮助都将不胜感激