如何用Python将PDF文件的页面合并为单个垂直组合页面

iezvtpos  于 2023-08-08  发布在  Python
关注(0)|答案(1)|浏览(101)

我已经尝试过pypdf和pdfrw中的merge_page方法,但它们会使一个页面超过另一个页面,我该如何继续?下面的代码,我尝试过,类似于两个模块

from pdfrw import PdfReader, PdfWriter, PageMerge

def merge_pdf_pages(input_file='input.pdf'):
    # Read the input PDF file
    reader = PdfReader(input_file)
    writer = PdfWriter()
    pages = PageMerge()
    for page in reader.pages:
        pages.add(page)
    writer.addpage(pages.render())
    with open("output.pdf",'wb') as file:
        writer.write(file)
# Example usage
merge_pdf_pages('input.pdf')

字符串
我的目标是将所有pdf内容合并成一个大页面,这样我就可以制作大小相等的小页面,因为我不能合并,我已经实现了稍后的逻辑。以下样式尚不完整,仅供参考

pdf = PdfReader(input_file)
    writer = PdfWriter()
    for page in pdf.pages:
        _mb = page.mediabox
        width = _mb.width
        while True:
            _mb.bottom = max(_mb.top-max_dim_val,0)    
            #--------------------------------------------------
            if width > max_dim_val:
                # width split for each height split
                _mb.right = 0
                while True:
                    _mb.right = min(_mb.right+max_dim_val,width)
                    writer.add_page(page)
                    if _mb.left+max_dim_val <= width:
                        _mb.left += max_dim_val
                    else:
                        _mb.left = _mb.right = 0
                        break
            #--------------------------------------------------
            else:writer.add_page(page)
            if _mb.top >= max_dim_val:
                _mb.top -= max_dim_val
            else:break
    with open("output.pdf",'wb') as file:
        writer.write(file)


我基本上已经尝试了一切,也有没有一种方法,我们可以做到这一点,操作文件字节?

cnwbcb6i

cnwbcb6i1#

将多个PDF混合成一张纸通常是由训练有素的图形艺术家完成的,他们了解与计算机化PDF设计相关的编程问题。
排版者或拼版者会使用不止一种简单的方法来微调“拼版”或“排版”,但实际上它只是以不同的比例(或相同的比例)重印
在这里,我可以在浏览器PDF阅读器中以图形方式调整最基本的“N-UP”方法,但使用单个编程命令行的复杂性相似。
最复杂的可能是40页的十板矩阵计算将用于“小册子”生产在LaTeX使用折叠,狭缝和出血框
x1c 0d1x的数据
当为桌面“出版物”设计程序时,数学可能很复杂,但只是简单地重复使用样板。https://tex.stackexchange.com/a/490408
既然你在问题中没有给出什么线索?我不得不假设从“一个在另一个”,这意味着2风景1肖像

程序和人类 composer 之间的区别可以在这里看到。程控结果从左到右,但Human Viewer将通过R2 L设置设置这四个表。



从评论中可以看出,希望模拟,输出与连续视图相同。
在左侧,我们看到页面在查看器中通常间隔开,其中在中间视图中,PDF查看器可以使用“连续页面模式”(无缝间隔,但仍然有4个可控制的页面),右侧是垂直施加无限页面的输出。



在本例中使用的命令为

cpdf -impose-xy "1 0" fourL.pdf -o Output.pdf

字符串
其中,cpdf是一个跨平台的应用程序,用于二进制命令行应用程序,或者我相信它具有JavaScript API/SDK接口和Python接口(pycpdflib)。请参阅https://github.com/coherentgraphics
具体来说(链接可能会过时,但目前)https://www.coherentpdf.com/cpdfmanual/cpdfmanualch9.html#x13-860009.2

相关问题