使用动画包,并将动画设置为循环,是否可以设置将物理打印的帧?

使用动画包,并将动画设置为循环,是否可以设置将物理打印的帧?

我已成功将使用多个 .png 文件的动画集成到我的 pdf 中。但是,我注意到,当我尝试打印 pdf 时,打印的帧是我按下打印按钮时显示的帧。我尝试此操作时使用的是 Adob​​e Acrobat Pro。

我知道如果使用不支持动画的查看器打开 pdf,您可以设置要显示的框架,但对我来说似乎没有影响。

我的问题是:有没有办法确保使用支持动画的 pdf 查看器打印的框架与使用基本查看器打开时显示的框架相同?

提前致谢 !

可以使用以下代码重复此行为:

\documentclass{article}

\usepackage{animate}
\usepackage{tikz}

\begin{document}

\animategraphics[controls=none,width=1in,loop,autoplay,poster=5]{10}{example-image-a4-numbered}{}{}

\end{document}

答案1

这可以通过在打印文档时触发的文档操作来实现。利用包animate的 JavaScript 接口,我们确保动画在打印时暂停并重置为所需的帧。为了处理特定的动画,我们需要给它一个唯一的标签,label=1在本例中为:

使用最新的 TeX 安装,例如 TeXLive-2021:

\RequirePackage{pdfmanagement-testphase} %making entries into PDF Catalog
\DeclareDocumentMetadata{}

\documentclass{article}

\usepackage{animate}
\usepackage{graphicx}

\ExplSyntaxOn
%additional document actions (AA) --> trigger "Will Print" (WP)
\pdfmanagement_add:nnx{Catalog/AA}{WP}{<<
  /S/JavaScript/JS~(anim["1"].pause();anim["1"].frameNum=5;)
>>}
\ExplSyntaxOff

\begin{document}

\animategraphics[label=1,controls=none,width=1in,loop,autoplay,poster=5]{10}{example-image-a4-numbered}{}{}

\end{document}

或者使用特定于引擎的低级命令\pdfcatalog(不是未来保存):

\documentclass{article}

\usepackage{animate}
\usepackage{graphicx}

\pdfcatalog{
  /AA <<
    /WP <<
      /S/JavaScript/JS (anim["1"].pause();anim["1"].frameNum=5;)
    >>
  >>
}

\begin{document}

\animategraphics[label=1,controls=none,width=1in,loop,autoplay,poster=5]{10}{example-image-a4-numbered}{}{}

\end{document}

已使用 AR DC 测试。打印动画运行时的文档始终会打印第 5 个(从零开始)动画帧,并在纸上显示“6”。

相关内容