我有两个PDF,我需要合并成一个,1宽2高的尺寸。如果你听说过一个帐篷卡,这是生产一个帐篷卡PDF
我有下面的脚本,它分别处理不同的部分,但不生成具有正确旋转的实际PDF。想象一个5“x5”的平面,生成一个5“x10”的PDF,上半部分倒置:
- - - - -
| |
| |
| | < Upside-down "back"
| |
| |
- - - - - < Imaginary line
| |
| |
| | < Right-side up "front
| |
| |
- - - - -
使用PyPDF2似乎很容易,但尽管我已经能够让这些部件工作(旋转、平移、前上方、单宽双高),但我无法让它们一起工作
注释掉的行是我尝试过的其他东西,它似乎会在页面顶部产生一个空白部分,其中“back”应该在那里,“front”正常显示/定向,仅在x2 heighttranslated_page
outfile的底部
#!/usr/bin/python3
import PyPDF2
from PyPDF2.pdf import PageObject
front_reader = PyPDF2.PdfFileReader(open('front.pdf', 'rb'))
front = front_reader.getPage(0)
back_reader = PyPDF2.PdfFileReader(open('back.pdf', 'rb'))
back = back_reader.getPage(0)
tent_height = front.mediaBox.getHeight() + back.mediaBox.getHeight()
translated_page = PageObject.createBlankPage(None, back.mediaBox.getWidth(), tent_height)
# translated_page.mergeScaledTranslatedPage(back, 1, 0, front.mediaBox.getHeight())
# translated_page.mergeRotatedTranslatedPage(back, 180, 0, 0)
translated_page.mergeRotatedPage(back, 180)
translated_page.mergePage(front)
writer = PyPDF2.PdfFileWriter()
writer.addPage(translated_page)
with open('out.pdf', 'wb') as outfile:
writer.write(outfile)
这是上面提到的文件。我错过了什么
解决方案涉及我正在应用的转换矩阵;基本上,我是把它从
0, 0
原点翻译过来的,它将它向下旋转到底部的左象限,而mediabox占据了顶部的右象限:下面的步骤解决了这个问题
我不知道为什么它只有一半宽。这将使x原点位于4.25”的变换之前,这表明旋转本身以
front
页面宽度维度为中心,而不是角点,而不是角点相关问题 更多 >
编程相关推荐