
Estou interessado em exibir algumas coisas (por exemplo: página de título) em cores na tela, enquanto exibe o mesmo objeto/página em um formato amigável em preto e branco quando impresso.
De acordo comesta pergunta SO, há funcionalidade integrada na especificação PDF para objetos somente tela e objetos tela e impressão. Também pode haver uma maneira de adicionar uma camada no topo da página em preto e branco que exibe apenas a página colorida na tela por meio do PDF 1.5Grupos de conteúdo opcionaisrecurso.
De forma similar,essa questãodemonstra a impressão seletiva de texto via ocg-p
. Mas não está claro como posso usar este pacote da maneira que preciso.
Meu cenário é agravado pelo fato de que o texto da minha página colorida é branco sobre um fundo escuro.
MWE:
Este código apresenta a maneira como estou alternando entre cores e preto e branco. Eu mudo a printincolor
variável bool para fazer a alteração.
\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}
Como posso colocar em camadas (ou exibir) duas versões da página de título de forma que as cores sejam exibidas na tela, mas em preto e branco sejam impressas?
Responder1
A solução que encontrei (com muitos agradecimentos acfreSteven B. Segletespor suas respostas às minhaspergunta relacionada) usa tikz
para estabelecer uma camada de cores e, em seguida, sobrepô-la com uma versão monocromática que só é exibida durante a impressão.
Porém, como a solução utiliza Grupos de Conteúdo Opcionais (pacote ocg-p
), ela não possui suporte completo em todos os visualizadores de PDF. Especificamente, o Adobe Reader é o único visualizador que suporta totalmente OCG, enquanto muitos outros (Preview da Apple, Skim e outros) irão recorrer à versão monocromática (eles simplesmente mostram todas as camadas na tela por padrão, não respeitando o "somente impressão" ou sinalizadores de "estado inicial"). Alguns visualizadores (aqueles baseados em poppler, ou seja, principalmente aqueles em Linux) irão degradar mostrando apenas a camada de cores na tela e na impressão (respeitando o sinalizador de "estado inicial", mas não habilitando a camada monocromática para impressão). Portanto, o resultado final é que sua milhagem pode variar.
Mas aqui está a solução:
\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}
No Acrobat, isso é exibido na tela em cores:
E imprimirá no monocromático:
Ao escolher a guia de camadas na barra lateral (o posicionamento pode variar dependendo do visualizador; algumas versões mais antigas de visualizadores não têm suporte para camadas), você também pode alternar opcionalmente para a visualização monocromática na tela: