如何将两个PDF页面拼接成一个大页面?

时间:2015-03-14 17:53:43

标签: pdf ghostscript pdflatex

我有两个36"到了48"海报(LaTeX),我想附加到一个72"到了48"海报(垂直堆叠)。

浏览SO和GS文档,我不知道(我不是CLI向导)。我怎么能这样做?

(此外,该过程不应该丢失光栅图像,因为这将打印2400 * 1200 DPI。)

1 个答案:

答案 0 :(得分:2)

由于OP没有提供(链接)原始输入海报,这个答案将分三步进行:

  1. 创建2个虚拟海报作为步骤3的输入
  2. 创建一个嵌入2个虚拟海报的LaTeX文档
  3. 运行pdflatex以在步骤2中的LaTeX文档中创建PDF
  4. 步骤1:创建2个虚拟海报(大小为36in x 48in

    我已经创建了两个不同的虚拟海报作为PDF来向您展示如何使用 LaTeX 来完成它。 (这意味着:您需要在系统上至少安装一个基本的LaTeX,包括pdflatex实用程序。)

    我在Ghostscript的帮助下创建了这两个假人。对于Ghostscript的pdfwrite设备1in == 72pt == 720pixels,命令是这样的(因为36in == 2592pt == 25920pixels48in == 3456pt == 34560pixels):

    gs -o poster1.pdf                   \
       -g25920x34560                    \
       -sDEVICE=pdfwrite                \
       -c " /Helvetica-Bold findfont"   \
       -c " 500 scalefont"              \
       -c " setfont"                    \
       -c " 50 2000 moveto"             \
       -c " (POSTER 1) show"            \
       -c " 1 0 0 setrgbcolor"          \
       -c " 10 setlinewidth"            \
       -c " 20 20 2552 3416 rectstroke" \
       -c " showpage" 
    
    gs -o poster2.pdf                   \
       -g25920x34560                    \
       -sDEVICE=pdfwrite                \
       -c " /Helvetica-Bold findfont"   \
       -c " 600 scalefont"              \
       -c " setfont"                    \
       -c " 50 2000 moveto"             \
       -c " (Poster 1) show"            \
       -c " 1 0 0 setrgbcolor"          \
       -c " 10 setlinewidth"            \
       -c " 20 20 2552 3416 rectstroke" \
       -c " showpage" 
    

    以下是2张截图,展示了这些"海报":

    步骤2:创建一个与pdflatex

    一起运行的小型LaTeX程序

    有一个名为< pdfpages' 的LaTeX软件包可以将PDF页面插入到LaTeX文档中,但也可以创建" n-up" PDF页面的布局。 (除了基本的LaTeX安装之外,您还需要该软件包。)

    所以这是一个可以使用的小型LaTeX程序。将其另存为2up-poster.tex

    \documentclass{article}
    \usepackage{pdfpages}
    \usepackage[paperwidth=72in, paperheight=48in]{geometry}
    \pagestyle{plain}                                 % Don't use page numbers
    
    \begin{document}
          \setlength\voffset{+0.0in}                  % adj. vert. offset as needed
          \setlength\hoffset{+0.0in}                  % adj. horiz. offset as needed
          \includepdfmerge[nup=2x1,
                           noautoscale=true,          % set "false" if larger inputs
                           frame=false,               % set "true" for frames
                           templatesize={36in}{48in}] % adjust as needed
                           {poster1.pdf,poster2.pdf}  % modify for file names
    \end{document}
    

    第3步:运行pdflatex

    现在,您可以运行以下命令来创建撰写的海报:

    pdflatex 2up-poster.tex
    

    这将创建一个名为2up-poster.pdf的PDF文件。

    结果在这里作为截图: