我已成功将使用多个 .png 文件的动画集成到我的 pdf 中。但是,我注意到,当我尝试打印 pdf 时,打印的帧是我按下打印按钮时显示的帧。我尝试此操作时使用的是 Adobe 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”。