如何通过“复制页面”将插入的 PDF 页面与页面顶部齐平?

如何通过“复制页面”将插入的 PDF 页面与页面顶部齐平?

我正在尝试使用copypages将多页 PDF 插入到我的 ConTeXt 文档中。我想缩放插入的页面,使它们看起来更小,但将它们与新文档每页的顶部齐平。我该怎么做?

默认行为似乎是将缩放的页面置于新文档每页的中心。

这是默认行为的 MWE(假设您提供要插入的自己的 PDF 文档)。

\starttext
\copypages[a.pdf][][height=\textheight]
\stoptext

更新(2020-02-06):

使用图层,我成功地将一个插入的页面放置在正确的位置,但它无法处理多页 PDF 或多个 PDF。这是我正在使用的 MWE:

\setupbackgrounds
  [page]
  [setups=layer,background={foreground,insert}]

\definelayer[insert][height=10in]

\starttext
\showframe
~
\getfiguredimensions[02.pdf]\dorecurse\noffigurepages{\setuptexttexts
  [{\setlayerframed
      [insert]
      []
      []
      {\externalfigure[02.pdf][page=\recurselevel]}}]}

\stoptext

就上下文而言,我正尝试对一系列 PDF 进行“贝茨标记”。我想在每页底部放置一个页码,并缩小每个插入的 PDF 页面,以使新放置的页码不会与插入的 PDF 页面重叠。我不需要包含的页面上的标题行。copypages提供了插入 PDF 的正确功能,但它将插入的 PDF 页面放在页面的中心,而不是与纸张顶部齐平。


更新(2020-03-03):

供将来参考,这是我正在寻找的工作版本。请注意,此代码还包含用于排版特殊格式的页码的命令。

感谢 Wolfgang Schuster 的指导!

\setupexternalfigures[location=default]
\setuppapersize[letter]
\setuplayout[width=6.5in,height=10in,topspace=0.5in,backspace=1in,
  header=0.5in,footer=0.5in]
\setupheadertexts 

\setupbackgrounds
  [page]
  [background={foreground,tmp,numbering}]
\definelayer
  [numbering]
  [height=\paperheight,
   width=\paperwidth]
\setuptexttexts
  [{\setlayerframed
      [numbering]
      [preset=middlebottom,
       voffset=0.25in]
      [frame=off]
      {RA/\pagenumber}}]

\definelayout
  [topaligned]
  [header=0pt]

\showframe

\starttext

\startlayout[topaligned]
\copypages[M-654.pdf][][height=10.5in]
\copypages[M-654.pdf][][height=10.5in]
\stoplayout

\stoptext

输出的第一页:在此处输入图片描述

答案1

有两种方法可以将包含的图像或页面推到页面顶部。如以下示例所示,我们必须跨越页面顶部空间和标题行高度所造成的间隙。

\setupexternalfigures[location=default]

\setuppapersize[A7]

\showframe

\starttext

\externalfigure[mill][width=\textwidth]

\stoptext

在此处输入图片描述

当您依靠\externalfigure逐一包含页面时,您可以使用命令将每个图像与存储在和寄存器\offset中的值一起向上移动。\topspace\headerheight

这种方法的缺点是您必须使用它\getfiguredimensions来获取页数并\dorecurse创建一个循环来包含每个页面。

\setupexternalfigures[location=default]

\setuppapersize[A7]

\definemeasure [topskip] [\dimexpr\headerheight+\topspace\relax]

\showframe

\starttext

\offset[y=-\measure{topskip}]{\externalfigure[mill][width=\textwidth]}

\stoptext

在此处输入图片描述

您可以使用的第二种方法也有效,它\copypages使用经过修改的图形页面布局。这些页面的变化是,我们将 的高度设置为 ,从而topspace消除了不需要的空间,并且图像现在与纸张的上边距对齐。header0pt

\setupexternalfigures[location=default]

\setuppapersize[A7]

\definelayout
  [topaligned]
  [topspace=0pt,
   header=0pt]

\showframe

\starttext

\startlayout[topaligned]
\externalfigure[mill][width=\textwidth]
\stoplayout

\stoptext

在此处输入图片描述

相关内容