python-svg或pdf的破坏性裁剪和大小调整

python-svg或pdf的破坏性裁剪和大小调整,python,pdf,svg,resize,crop,Python,Pdf,Svg,Resize,Crop,我想做的是裁剪并调整一个大型svg/pdf的大小,简单的例子是A3到A4大小的海报打印重叠。 A3的尺寸为420mm x 297mm。 脚本应剪下180mm x 257mm的部分,每侧为A4减去20mm的边框,并将其粘贴到A4页面的中心位置,或先保存裁剪的部分,然后将边框添加到裁剪文件中,以形成A4尺寸。 如果我让这个部分工作,我可以做一个循环,根据需要的重叠移动裁剪区域 我在这里找到了一些提示: 但并没有什么完全符合我的需要,因为裁剪svg/pdf在默认情况下似乎是非破坏性的。我真的想去掉裁剪

我想做的是裁剪并调整一个大型svg/pdf的大小,简单的例子是A3到A4大小的海报打印重叠。 A3的尺寸为420mm x 297mm。 脚本应剪下180mm x 257mm的部分,每侧为A4减去20mm的边框,并将其粘贴到A4页面的中心位置,或先保存裁剪的部分,然后将边框添加到裁剪文件中,以形成A4尺寸。 如果我让这个部分工作,我可以做一个循环,根据需要的重叠移动裁剪区域

我在这里找到了一些提示:

但并没有什么完全符合我的需要,因为裁剪svg/pdf在默认情况下似乎是非破坏性的。我真的想去掉裁剪区域之外的信息,当调整大小时,这些信息不再显示

我找了很多,但没有找到一个合适的解决方案。我并不懒于编写和测试代码,但由于有两个小孩和一份全职工作,我的时间非常有限。 因此,如果有人能帮助我完成一个非常基本的代码片段,或者为我指出正确的方向,我将非常感激,因为我不会浪费时间去尝试那些导致死胡同的事情:

提前感谢您的帮助,非常感谢:

干杯,
Toby

您找到的第二个链接包含有用的代码。缺少的是页面的裁剪区域仅指示读者隐藏裁剪区域之外的所有内容。因为内容仍然存在,这在相关问题中很明显


因此,要克服这个问题,请像链接问题一样继续,但当涉及到使用页面内容时,请确保您也剪辑到裁剪区域。即,保存图形状态,定义与裁剪区域等效的裁剪路径,然后调用页面。合并缩放TranslatedPage,然后恢复图形状态。

谢谢您的帮助!我试过了,但不幸的是,我无法运行代码,也不知道在哪里插入合并页面。此外,pypdf的流使用仍然让我感到困惑。你能给我一个简短的例子吗?很抱歉,我对pypdf或Python不太熟悉,无法提供详细的说明。这里有点疯狂。似乎没有办法简单地裁剪pdf/svg并删除媒体、出血、viewbox之外的任何内容。。。如果我尝试使用例如cairo渲染,我会得到错误,因为整个页面非常大:有人知道吗?