当我合并几个Pdf页面使用PyPdf到一个单独的页面使用mergeTranslatedPage,我得到了一些未知的字符,这些未知的方块是字符没有包括在最后合并的页面,经过一些研究,我认为_merge_ressources的方法不是很好,因为后面的页面可能会覆盖较老的页面的资源来源,我尝试page1.compressContentStreams()后,每次合并,但没有结果。
在this link中,您将看到已合并的PDF示例和PDF结果。
请帮个忙
发布于 2012-10-14 04:06:35
下面的解决方案使用pdfjam命令将多个pdf页面合并为一个pdf页面。这是一个非常强大的命令,有许多不同的选项和很好的文档。我在您提供的两个文件4_P7.pdf和4_P13.pdf上测试了解决方案。您可以查看merged.pdf以验证所有字符的格式是否正确。下面的代码默认使用2x2网格,但您可以通过在调用merge时设置网格参数来更改此设置。
from subprocess import check_output
def merge(inputs, output, grid='2x2'):
check_output(['pdfjam'] + inputs + ['--nup', grid, '--outfile', output])
merge(['4_P7.pdf', '4_P13.pdf'], 'merged.pdf')下面的评论中有一个问题,即是否可以像问题示例文件中的情况那样自定义位置。下面实现了问题中提供的相同布局。它首先构建顶部布局,即4x2布局,然后构建底部2x6布局,最后将这两个布局合并到final.pdf中。以下示例中使用的pdf可以是found here。
from subprocess import check_output
def merge(inputs, output, grid='2x2'):
return check_output(['pdfjam'] + inputs + ['--nup', grid, '--outfile', output])
files = ['1.pdf', '2.pdf', '3.pdf', '4.pdf', '1.pdf', '2.pdf', '3.pdf', '4.pdf']
merge(files, 'top.pdf', '4x2')
files = ['1.pdf', '2.pdf', '3.pdf', '4.pdf', '5.pdf', '6.pdf', '1.pdf', '2.pdf',
'3.pdf', '4.pdf', '5.pdf', '6.pdf']
merge(files, 'bottom.pdf', '2x6')
merge(['top.pdf', 'bottom.pdf'], 'final.pdf', '1x2')https://stackoverflow.com/questions/12781994
复制相似问题