堆叠 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 拼版支持。
如何将 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。
更直观:
好的,我认为
该程序获取当前媒体大小,然后尝试使 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 拼版支持。