我已经尝试过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)
型
我基本上已经尝试了一切,也有没有一种方法,我们可以做到这一点,操作文件字节?
1条答案
按热度按时间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是一个跨平台的应用程序,用于二进制命令行应用程序,或者我相信它具有JavaScript API/SDK接口和Python接口(pycpdflib)。请参阅https://github.com/coherentgraphics
具体来说(链接可能会过时,但目前)https://www.coherentpdf.com/cpdfmanual/cpdfmanualch9.html#x13-860009.2