Python PyPDF2合并旋转页面

Python PyPDF2合并旋转页面,python,pdf,pdf-generation,reportlab,pypdf,Python,Pdf,Pdf Generation,Reportlab,Pypdf,我正在使用PythonCanvas生成带有水印的覆盖文档,以将其合并到源pdf文档中(使用)。最近,我遇到了一个包含旋转页面的文档问题(/Rotate key用于pdf中的页面对象)。此文档在设备和打印机上看起来正常。但结果(合并)文档包含针对源文档旋转的水印 因此,源页面在pdf中具有下一个结构: 6 0 obj <</Length 45>> stream q 1 0 0 1 2 4 cm 799 0 0 603 0 0 cm /x5 Do Q endstream e

我正在使用PythonCanvas生成带有水印的覆盖文档,以将其合并到源pdf文档中(使用)。最近,我遇到了一个包含旋转页面的文档问题(/Rotate key用于pdf中的页面对象)。此文档在设备和打印机上看起来正常。但结果(合并)文档包含针对源文档旋转的水印

因此,源页面在pdf中具有下一个结构:

6 0 obj
<</Length 45>>
stream
q
1 0 0 1 2 4 cm
799 0 0 603 0 0 cm
/x5 Do
Q

endstream
endobj
7 0 obj
<</Type/Page/Parent 1 0 R
/Resources << /XObject << /x5 5 0 R >> >>
/MediaBox [0 0 792 612]
/Rotate 270/Contents 6 0 R
>>
endobj
对于
rotation\u angle=270的这种方式,我得到了下一个结果:

对于
旋转\u angle=0
(根本不关心旋转),我得到:


如何更改脚本以解决此问题?

事实上,我发现了类似的问题和解决方案

所以我用下一种方法修改了代码

#合并源页面和水印页面
page0=source.getPage(0)
over0=overlay.getPage(0)
如果旋转角度:
page0.MergeRotatedRoundPointPage(
0多,,
旋转角,
超过0.mediaBox.getWidth()/2,
超过0.mediaBox.getWidth()/2)
#page0.mergeRotatedPage(叠加。getPage(0),旋转角度,真)
其他:
页面0.合并页面(超过0页)

方法执行此操作。

这解决了我的问题,但是从v1.23开始,MergeRotatedRoundPointPage被重命名为mergeRotatedTranslatedPage。变更日志中没有提到这一点,以防其他人陷入困惑。见问题: