我正在寻找一个解决方案来包含 PDF 背景层,默认情况下不会打印该层。我发现 Adobe 似乎支持水印层,正如讨论的那样平面设计。我无法测试此方法,因为我无法使用这些工具。
然而,我对水印是它叠加在 PDF 文档上,而我想要的是不可打印的背景。我试过了\pagecolor
,但它是使用Adobe Acrobat在视窗。
我总是可以自己手动删除背景,但我希望只打印我的文档的普通用户不会从背景中打印任何内容。我在这里假设这个用户正在使用臃肿的读物(又名杂技演员) PDF 阅读器。
以下是 MWE 的内容:
\documentclass[]{minimal}
\usepackage{xcolor}
\definecolor{testcol}{cmyk}{0,0,0.1,0}
\begin{document}
\pagecolor{testcol}
test
\end{document}
我正在收集该方法适用的工具和操作系统ocg-p
(请参阅已接受答案中的示例)。edit
如果您尝试过未列出的 PDF 查看器,请提出问题。
已知有效
- Adobe Reader11.0.3,Windows:屏幕上/打印时可见的图层:是/否
不完整的测试
- 扎图拉0.2.9-1 具有多媒体PDF后端,Linux:层可见/打印:是/是(更确切地说:不,不)
(Zathura 不支持切换单个图层的可见性。它始终显示 + 打印全部层,无论其在可见性 + 可打印性方面的设置如何。这应该更好地描述为“根本不支持图层”。已使用 Zathura 0.3.7-1 测试。) - 表明3.12.1(poppler 后端 0.26.2-1),Linux:图层可见/打印:是/是
(使用 Evince 3.22.1 / poppler 后端 0.48.0 测试。可以单独打开/关闭图层以查看可见性。Evince 打印所有当前切换为“开”的图层。Evince 支持图层标记要求“从不”打印。) - 预览应用、Mac:图层可见/打印:是/是(或者:不,不)
(Preview.app 不支持切换各个图层的可见性。它始终显示 + 打印全部层,无论其在可见性 + 可打印性方面的设置如何。这应该更好地描述为“根本不支持图层”. 在 macOS Sierra 10.12.6 上使用 Preview.app v9.0 (909.18) 进行了测试)
答案1
感谢保罗·盖斯勒,我发现ocg-p
,它完全符合我的需要。以下是无法打印的颜色框的演示:
\documentclass[]{minimal}
\usepackage{ocg-p}
\usepackage{xcolor}
\definecolor{testcol}{cmyk}{0,0,0.5,0}
\begin{document}
regular text
% \begin{ocg}{layer name}{layer id}{initial visibility}
\begin{ocg}[printocg=never]{Background}{1}{1}
\colorbox{testcol}{text on Background layer}
\end{ocg}
regular text
\end{document}
我正在复制手册中对这些选项的解释:
确实,文本和颜色框不是使用标准 Adobe Reader 设置打印的,但它在计算机屏幕上可见。Adobe Reader 版本 11.0.3。
关于不可打印背景的问题,我找到了以下解决方案(编译三次):
\documentclass[]{article}
\usepackage{ocg-p}
\usepackage{background}
\usepackage{xcolor}
\definecolor{testcol}{cmyk}{0,0,0.5,0}
\backgroundsetup{%
scale=1,%
angle=0,%
opacity=1,%
contents={%
% \begin{ocg}{layer name}{layer id}{initial visibility}
\begin{ocg}[printocg=never]{Background}{1}{1}%
\begin{tikzpicture}[remember picture,overlay]%
\path [fill=green!30] (current page.south west)rectangle (current page.north east);%
\end{tikzpicture}%
\end{ocg}}%
}
\begin{document}
regular text
% \begin{ocg}{layer name}{layer id}{initial visibility}
\begin{ocg}[printocg=never]{Background}{1}{1}
\colorbox{testcol}{text on Background layer}
\end{ocg}
regular text
\end{document}