堆叠 PDF 图像:单页输出

Stack PDF images: single page output

如何将 PDF 图像(垂直)堆叠到单页输出 PDF 中?即:

|-----|
|  1  |
|  2  |
| ... |
|-----|

(参见下面的示例。)我正在寻找的是 this tool 的 PDF 等价物,它堆叠了 SVG 图形。


请注意,这与 multi-page 组合明显不同

|-----|
|  1  |
|-----|
|  2  |
|-----|
| ... |
|-----|

哪一个会使用

获得
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=merged.pdf 1.pdf 2.pdf ...

(参见 this answer。)


例子

@KenS在评论中完美地描述了我的目标:我取第1页和第2页,都是612x792点,应该变成一个PDF,单页包含顶部第1页的标记内容和底部第2页的标记内容。此页面的大小应为 612x1584。

更直观:

好的,我认为 中的 PostScript 程序可以完成这项工作。其工作方式是将 Ghostscript 媒体大小设置为您希望最终输出的样子,然后您只需 运行 通过 Ghostscript 向程序传递 PDF 文件的名称。

该程序获取当前媒体大小,然后尝试使 PDF 中的页面适合该媒体。显然我没有您的测试文件,但我相信如果您将 GS 设置为具有媒体 612x1584 然后 运行 它,那么 GS 将决定页面最适合未缩放和未旋转。如果不是这种情况,我需要看一个例子来弄清楚原因。

假设你从答案中复制程序,并用名称2-up.ps保存,用法在程序开始的注释中:

% usage: gs -dNODISPLAY -sFile=____.pdf [-dVerbose] 2-up.ps

所以你需要这样的东西:

gs -dNODISPLAY -dDEVICEWIDTHPOINTS=612 -dDEVICEHEIGHTPOINTS=1584 -dFIXEDMEDIA -sDEVICE=pdfwrite -sOutputFile=out.pdf -sFile=<insert your full path and filename here> 2-up.ps

这将采用原始 PDF 文件(由 -sFile 定义),并尝试创建它的 2-up 表示,将输出写入新的 PDF 文件。

注意评论;这不会尝试保留像超链接这样的元数据,因为它们是基于页面的,并且在页面重新编号时会出错)并且只能与 Ghostscript 中的 current PDF 解释器一起使用。它不能与任何其他 PostScript 解释器一起使用,因为该程序使用 Ghostscript PDF 解释器的内部结构,它实际上不应该干涉。

哦,程序假定 PDF 文件中的所有页面大小相同,即第一页的大小。

我们应该在未来的版本中添加更多(更好)的 Ghostscript 拼版支持。