0

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

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

(请参见下面的示例。)我正在寻找的是与此工具等效的 PDF,它可以堆叠 SVG 图形。


请注意,这与多页组合明显不同

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

哪一个会使用

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

(见这个答案。)


例子

@KenS 在评论中完美地描述了我的目标:我选择第 1 页和第 2 页,它们都是 612x792 点,它应该成为一个 PDF,其中包含顶部第 1 页的标记内容和来自第 1 页的标记内容第 2 页在底部。如果这个页面应该这个页面的大小是 612x1584。

更直观:

在此处输入图像描述

4

1 回答 1

2

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

该程序获取当前媒体大小,然后尝试将 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 中的当前PDF 解释器。它不能与任何其他 PostScript 解释器一起使用,因为该程序使用了 Ghostscript PDF 解释器的内部结构,而它实际上并不应该干预。

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

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

于 2018-06-29T09:38:01.420 回答