使用ghostscript将pdf页面一分为二并以不同方式重新导入部分

使用ghostscript将pdf页面一分为二并以不同方式重新导入部分,pdf,ghostscript,pdftk,imposition,Pdf,Ghostscript,Pdftk,Imposition,我正在寻找一个ghostscript(或其他命令行)命令来重新导入pdf页面,以便将左侧的元素复制到右侧。像这样: 页面的大小不应该改变(每个页面的裁剪和剪切方式都不一样),虽然我可以手动提供最终大小,但从原始pdf中读取会更整洁 为了简单起见,假设输入文件只有一个页面 我想出了一系列极其复杂的命令,包括 使用pdfinfo 复制文件并更改cropbox,以便使用-c“[/cropbox[*new dimensions*]/PAGES pdfmark”命令缩短左半部分,扩展右半部分 复制文件

我正在寻找一个ghostscript(或其他命令行)命令来重新导入pdf页面,以便将左侧的元素复制到右侧。像这样:

页面的大小不应该改变(每个页面的裁剪和剪切方式都不一样),虽然我可以手动提供最终大小,但从原始pdf中读取会更整洁

为了简单起见,假设输入文件只有一个页面

我想出了一系列极其复杂的命令,包括

  • 使用
    pdfinfo
  • 复制文件并更改cropbox,以便使用
    -c“[/cropbox[*new dimensions*]/PAGES pdfmark”
    命令缩短左半部分,扩展右半部分
  • 复制文件并更改cropbox,以便保留左半部分
  • 使用旧页面维度
    -g“PageDimension”
    -c\“setpagedevice\”
  • 使用pdftk将两个新文件合并到一个页面中:
    pdftk.exe lefthalf.pdf background righhalf.pdf output combined file.pdf

然而,我无法让它令人满意地工作,而且我不喜欢所涉及的一系列步骤或所涉及的工具数量。当然,所有步骤都可以用ghostscript和更少的步骤(以及更少的对原始的重新处理)来执行.

我终于想出了一个有用的解决方案——尽管它没有完全反映最初的问题

此解决方案基于(专有)Acrobat,并使用Acrobat JavaScript界面,而不是GhostScript。但以下脚本运行良好,这就是我决定共享它的原因:

/*
*AcrobatPDF脚本
*将左页的一部分移到右边,然后重新打印文档
*/
//定义切割线,从左到右以点为单位
var切割线=300;
/*定义偏移量——如果不确定,保留0
a) 新的左页边框,
b) 转置页面的一半
注意:
a) 负片时可能会从原始左半部分露出材料
b) 负片时可能会从原右半部分露出材料-保留“correctcrop”为真以避免出现这种情况。
*/
var offsetleft=5;
var offsettransposition=-50;
var-correctcrop=true;
//剪掉左边的页面,在右边添加尽可能多的空白,然后在右上角插入页面的左边部分
对于(var p=0;p这个.flattPages();
我终于想出了一个有用的解决方案——尽管它没有完全反映最初的问题

此解决方案基于(专有)Acrobat,并使用Acrobat JavaScript界面,而不是GhostScript。但以下脚本运行良好,这就是我决定共享它的原因:

/*
*AcrobatPDF脚本
*将左页的一部分移到右边,然后重新打印文档
*/
//定义切割线,从左到右以点为单位
var切割线=300;
/*定义偏移量——如果不确定,保留0
a) 新的左页边框,
b) 转置页面的一半
注意:
a) 负片时可能会从原始左半部分露出材料
b) 负片时可能会从原右半部分露出材料-保留“correctcrop”为真以避免出现这种情况。
*/
var offsetleft=5;
var offsettransposition=-50;
var-correctcrop=true;
//剪掉左边的页面,在右边添加尽可能多的空白,然后在右上角插入页面的左边部分
对于(var p=0;pthis.flattPages();
您可以使用Ghostscript来完成,但是……不是一步完成的,您至少需要3个。好的,那么我该怎么做呢?我特别想知道如何在Ghostscript中的一个新页面上实际添加两个页面/页面的两个区域。首先,您需要创建一个包含