【发布时间】:2020-04-10 14:39:27
【问题描述】:
我有两个 PDF,我需要将它们合并为一个,1 宽 x 2 高的尺寸。如果您听说过帐篷卡,这就是制作帐篷卡 PDF。
我有以下脚本分别执行各个部分,但没有生成具有正确旋转的实际 PDF。想象一个 5"x5" 的刻面,生成一个 5"x10" 的 PDF,上半部分倒置:
- - - - -
| |
| |
| | < Upside-down "back"
| |
| |
- - - - - < Imaginary line
| |
| |
| | < Right-side up "front
| |
| |
- - - - -
使用 PyPDF2,这似乎很容易,但是虽然我已经能够让这些部分正常工作(旋转、平移、回到前面、双倍高度乘单倍宽度),但我无法得到它们大家一起努力。
注释掉的行是我尝试过的其他东西,它似乎会在页面的顶部产生一个空白的“后部”应该是的部分,“前部”正确显示/定向正常,仅在底部x2 高度 translated_page 输出文件。
#!/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)
这里是上面引用的文件。我错过了什么?
【问题讨论】:
标签: python python-3.x pdf pypdf2