在 PDF 中实现全页仅屏幕和仅打印

在 PDF 中实现全页仅屏幕和仅打印

我感兴趣的是在屏幕上以全彩色显示某些内容(例如:标题页),而在打印时以黑白友好形式显示相同的对象/页面。

根据这个问题,PDF 规范中内置了屏幕专用对象和屏幕和打印对象的功能。也可能有一种方法可以在黑白页面顶部添加一个层,仅通过 PDF 1.5 在屏幕上显示全彩页面可选内容组特征。

相似地,这个问题演示了如何通过 选择性打印文本ocg-p。但我不清楚如何以我需要的方式使用此包。

我的情况更加复杂,因为我的彩色页面文本在深色背景上是白色的。

梅威瑟:

此代码展示了我当前在彩色和黑白之间来回切换的方式。我更改了printincolorbool 变量来进行更改。

\documentclass[11pt]{article}

\usepackage[demo]{graphicx}
\usepackage{etoolbox}

\providebool{printincolor}
% Will set color title page and section headings
\setbool{printincolor}{false}

% Setup color if needed
\ifbool{printincolor}{%
\usepackage[pagecolor=none]{pagecolor}%
\definecolor{MyBlue}{HTML}{1b3667}%
\usepackage{afterpage}}{}

\begin{document}

% Begin Title Page
{
 \thispagestyle{empty}
  \ifbool{printincolor}{%
  \pagecolor{MyBlue}%
  \afterpage{\nopagecolor}}{}
  \begin{center}
  {\ifbool{printincolor}{\color{white}\sffamily}{\sffamily}%  Set text color white or leave [default] black
  \ifbool{printincolor}{\includegraphics[width=1.5in]{logo-gold}}{\includegraphics{logo-blue}}% put logo gold or blue
  \\ \vskip 1in
  \begin{huge}
        \textbf{Title}
        \vskip 0.1ex\rule{0.5\textwidth}{0.8pt}\vskip 1ex
        Subtitle
        \\
        \end{huge}
  \vfill\vfill
  \begin{large}

  Authors:\\
  John Doe and Jane Doe\\
  \end{large}
  }
  \end{center}
}

\end{document}

我怎样才能分层(或以其他方式显示)两个版本的标题页,以便在屏幕上显示彩色,但打印出黑白的?

答案1

我找到的解决方案(非常感谢成本加运费史蒂文·B·塞格莱特斯感谢他们回答我的相关问题) 用于tikz铺设一个彩色层,然后将该彩色层与仅在打印时显示的单色版本叠加。

但是,由于该解决方案使用可选内容组(包ocg-p),因此并非所有 PDF 查看器都完全支持它。具体来说,Adobe Reader 是唯一完全支持 OCG 的查看器,而许多其他查看器(Apple 的 Preview、Skim 等)将回退到单色版本(默认情况下,它们只是在屏幕上显示所有图层,而不遵守“仅打印”或“初始状态”标志)。一些查看器(基于 poppler 的查看器,即主要是 Linux 中的查看器)将降级,只在屏幕上显示彩色层并进行打印(遵守“初始状态”标志,但不启用单色层进行打印)。所以,底线是,您的里程可能会有所不同。

但是,这里仍然有一个解决方案:

\documentclass[11pt]{article}

\usepackage[demo]{graphicx}
\usepackage{tikz} % Needed to draw titlepage elements
\usepackage{ocg-p} % For optional content groups

% Things to typeset on titlepage (since they are repeated twice
\newcommand{\titlematter}{%
    \node [font={\huge\bfseries\sffamily}] at (.5\linewidth,-7) {Title};
    \node [font={\huge\sffamily}] at (.5\linewidth,-10.625) {Subtitle};
    \node [font={\large\sffamily}] at (.5\linewidth,-17) {Authors:\\ John Doe and Jane Doe};
    \node (p) at (.25\linewidth,-9.00) {}; % nodes for line to connect later
    \node (q) at (.75\linewidth,-9.00) {};
}

% Setup color if needed
\usepackage[pagecolor=none]{pagecolor}%
\definecolor{MyBlue}{HTML}{1b3667}%
\usepackage{afterpage}

\begin{document}

% Begin Title Page
{\thispagestyle{empty}%
  \noindent
  %% Color Version
  \begin{tikzpicture}[overlay, remember picture, text=white, align=center]
    \fill [fill=MyBlue] (current page.south west) rectangle (\paperwidth,\paperheight);
    \node at (.5\linewidth,-2.125) {\includegraphics[width=1.5in]{logo-color}};
    \titlematter
    \draw [color=white](p) -- (q);
  \end{tikzpicture}
  %% Monochrome Version
  \begin{ocg}[printocg=always]{MonochromeVersion}{monochrome}{0}
    \begin{tikzpicture}[overlay, remember picture, text=black, align=center]
      \fill [fill=white] (current page.south west) rectangle (\paperwidth,\paperheight);
      \node at (.5\linewidth,-2.125) {\includegraphics[width=1.5in]{logo-monochrome}};
      \titlematter
      \draw (p) -- (q);
    \end{tikzpicture}
  \end{ocg}
  %% Reset page color
  \afterpage{\nopagecolor}% 
\newpage
}

\end{document}

在 Acrobat 中,屏幕上会以彩色显示:

颜色

并将以单色打印:

单色

通过选择侧栏中的图层选项卡(位置可能因查看器而异;某些旧版本的查看器根本不支持图层),您也可以选择切换到屏幕上的单色视图:

层标签

相关内容