我认为预期视图(图 2)是必要的,因为我在有许多打印机的环境中工作。我知道线程如何添加打印链接答案会打开一个通用的打印窗口,但无法通过激活按钮来指定要打印哪些页面等详细信息。 此处复制代码,并添加此线程的目标 - 打印按钮的自定义操作
% https://tex.stackexchange.com/a/30534/13173
\documentclass{scrbook}
\usepackage{hyperref}
\usepackage{pdfpages}
\usepackage{lipsum}
\begin{document}
\Acrobatmenu{Print}{Print doc}
\lipsum
% TODO include a link here which will print out the included pdf from the document
\includepdf[page={1-3}]{leo.pdf} % choose any multipage pdf file here
\end{document}
目的
- 在页面上添加
Print
按钮以打印文档的特定页面 - 包含
Print
打印文档当前页面的按钮。
图 1 AlexG 按钮操作的输出,其中弹出两次,图 2 按下 GUI 的打印按钮时的视图
预期输出 GUI:GUI 中所需的设置(图 2)
测试 AlexG 的提议
图1中的输出。
引擎:pdfTeX、XeLaTeX、...
操作系统:Debian 8.7
PDF 查看器:Adobe Acrobat 9.x (acroread
)按说明安装这里
答案1
这需要 JavaScript 和 A-Reader。按钮本身不会被打印。所有引擎。
使用带参数方法的基本示例print()
:指定页面范围时无法出现打印对话框;print()
多个页面范围需要多次调用方法:
\documentclass{article}
\usepackage{media9} % non-printable push buttons with JS actions
\usepackage{pgffor}
\begin{document}
Page \thepage
% print two page ranges
% Note: nStart/nEnd are zero-based
\mediabutton[
jsaction={
this.print({
bUI: false, %no print dialog; mandatory if page range is specified
nStart: 0,
nEnd: 3,
});
this.print({
bUI: false,
nStart: 6,
nEnd: 8,
});
}
]{\fbox{Print pp. 1--4 and 7--9}}
\foreach \i in {2,...,10} {
\newpage
Page \thepage
% print current page
\mediabutton[
jsaction={
this.print({
bUI: false,
nStart: this.pageNum,
nEnd: this.pageNum,
})
}
]{\fbox{Print current page}}
}
\end{document}
例如高级设置使用PrintParams
对象(仅限 Windows 和 OSX 上的最新 AR 版本):现在,设置(目标打印机和其他参数)能可以在打印对话框中进行修改。
的属性PrintParams
记录在Acrobat 的 JavaScript API 参考。
\documentclass{article}
\usepackage{media9}
\usepackage{pgffor}
\begin{document}
Page \thepage
%print two page ranges, show dialog
\mediabutton[
jsaction={
var pp = this.getPrintParams();
pp.interactive = pp.constants.interactionLevel.full; %show print dialog
%pp.interactive = pp.constants.interactionLevel.automatic; %suppress dialog, but progress monitor and "cancel" shown
%pp.interactive = pp.constants.interactionLevel.silent; %suppress everything
pp.printRange=[[0, 3],[6, 8]]; %two ranges, again 0-based page nums
this.print(pp);
}
]{\fbox{Print pp. 1--4 and 7--9}}
\foreach \i in {2,...,10} {
\newpage
Page \thepage
% (silently) print current page
\mediabutton[
jsaction={
var pp = this.getPrintParams();
pp.interactive = pp.constants.interactionLevel.silent;
pp.firstPage=this.pageNum;
pp.lastPage=this.pageNum;
this.print(pp);
}
]{\fbox{Print current page}}
}
\end{document}
打印对话框中的许多设置都可以通过PrintParams
对象属性进行预先配置。