堆叠PDF图像:单页输出

堆叠PDF图像:单页输出,pdf,ghostscript,pdf-manipulation,Pdf,Ghostscript,Pdf Manipulation,如何将PDF图像(垂直)堆叠到单页输出PDF中?即: |-----| | 1 | | 2 | | ... | |-----| (见下面的例子。)我要找的是一个PDF格式的SVG图形 请注意,这与多页组合明显不同 |-----| | 1 | |-----| | 2 | |-----| | ... | |-----| 哪一个可以通过使用 gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=merged.pdf 1.pdf

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

|-----|
|  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页的标记内容,底部包含第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
gs-dNODISPLAY-dDEVICEWIDTHPOINTS=612-dDEVICEHEIGHTPOINTS=1584-dfexedmedia-sDEVICE=pdfwrite-sOutputFile=out.pdf-sFile=2-up.ps
这将获取原始PDF文件(由-sFile定义),并尝试创建它的2-up表示,将输出写入新的PDF文件

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

哦,程序假设PDF文件中的所有页面都是相同的大小,第一页的大小


在未来的版本中,我们应该在Ghostscript中添加更多(更好)的强制实施支持。

好的,因此我认为,来自此版本的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
gs-dNODISPLAY-dDEVICEWIDTHPOINTS=612-dDEVICEHEIGHTPOINTS=1584-dfexedmedia-sDEVICE=pdfwrite-sOutputFile=out.pdf-sFile=2-up.ps
这将获取原始PDF文件(由-sFile定义),并尝试创建它的2-up表示,将输出写入新的PDF文件

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

哦,程序假设PDF文件中的所有页面都是相同的大小,第一页的大小


我们应该在将来的版本中添加更多(更好)的对Ghostscript中强制执行的支持。

很抱歉,我不太明白您到底想实现什么。在你的问题中引用PDF图像是没有帮助的。我认为你根本不是指图像,听起来更像是在谈论PDF页面内容。这听起来像是你想要某种强加,但你没有说你想要什么作为输出。例如,如果我选择第1页和第2页,这两页都是612x792点,你想要一个PDF,其中一页顶部包含第1页的标记内容,底部包含第2页的标记内容吗?这个页面应该多大?612x1584?在我对这个问题的回答中有一个基本的征税程序@KenS谢谢你的评论。你所描述的正是我想要的。我已更新问题以反映这一点。关于你的剧本:对不起,我觉得自己像一只新蜜蜂,但我应该如何使用它?啊,对,是的,对不起。那是一个PostScript程序。让我把这写下来作为一个答案,评论中没有空间。对不起,我真的不明白你到底想达到什么目的。在你的问题中引用PDF图像是没有帮助的。我认为你根本不是指图像,听起来更像是在谈论PDF页面内容。这听起来像是你想要某种强加,但你没有说你想要什么作为输出。例如,如果我选择第1页和第2页,这两页都是612x792点,你想要一个PDF,其中一页顶部包含第1页的标记内容,底部包含第2页的标记内容吗?这个页面应该多大?612x1584?在我对这个问题的回答中有一个基本的征税程序@KenS谢谢你的评论。你所描述的正是我想要的。我已更新问题以反映这一点。关于你的支票