我已经在 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')
目前以下方式的暴力破解还不完整,仅供参考
def main(input_file=None,max_dim_val=3480):
input_file = 'input.pdf'
try:
pdf = PdfReader(input_file)
if not input_file.endswith('.pdf'):
return 'File is not a pdf'
if pdf.is_encrypted:
return 'File is encrypted'
except FileNotFoundError:
return 'File not found'
writer = PdfWriter()
for page in pdf.pages:
_mb = page.mediabox
print((_mb.left,_mb.bottom,_mb.right,_mb.top))
# print(height,width)
while _mb.top > max_dim_val:
page.mediabox = RectangleObject((_mb.left,_mb.top-max_dim_val,_mb.right,_mb.top))
print(page.mediabox.height)
print(page,'--------------------------------------')
writer.add_page(page)
_mb.top -= max_dim_val
with open("output.pdf",'wb') as file:
writer.write(file)
我基本上已经尝试了所有方法,还有没有办法通过操作文件字节来做到这一点?
将多个 PDF 混合到一张纸中通常由经过培训的图形艺术家完成,他们了解与计算机化 PDF 设计相关的编程问题。
合成器或拼版器将使用多种简单方法微调“拼版”或“合成”,但实际上它只是以不同比例(或相同比例)重新打印
在这里,我可以在浏览器 PDF 阅读器中以图形方式调整最基本的此类“N-UP”方法,但使用单个编程命令行的复杂性将相似。
最复杂的可能是 40 页作为十版,其中矩阵计算将用于使用折叠、狭缝和出血盒在 LaTeX 中进行“小册子”制作
在为桌面“出版物”设计程序时,数学可能很复杂,但只是使用样板进行重复。 https://tex.stackexchange.com/a/490408
既然你在问题中给出的线索很少?我必须从“一个高于另一个”推测这意味着 1 个肖像上有 2 个风景
程序和人类作曲家之间的区别可以在这里看到。编程结果从左到右,但是人类查看器将通过 R2L 设置来设置这四张纸。