Implementierung ganzseitiger Nur-Bildschirm- und Nur-Druck-Funktionen in PDF

Implementierung ganzseitiger Nur-Bildschirm- und Nur-Druck-Funktionen in PDF

Ich möchte einige Dinge (z. B. die Titelseite) auf dem Bildschirm in Farbe anzeigen und dasselbe Objekt bzw. dieselbe Seite beim Drucken in Schwarzweiß darstellen.

Entsprechenddiese SO-Fragegibt es in der PDF-Spezifikation integrierte Funktionen für Screen-Only-Objekte und Screen-And-Print-Objekte. Es gibt möglicherweise auch eine Möglichkeit, über der Schwarzweißseite eine Ebene hinzuzufügen, die nur die Vollfarbseite über PDF 1.5 auf dem Bildschirm anzeigt.Optionale InhaltsgruppenBesonderheit.

Ähnlich,diese Fragedemonstriert das selektive Drucken von Text über ocg-p. Es ist jedoch nicht klar, wie ich dieses Paket auf die von mir benötigte Weise verwenden kann.

Mein Szenario wird dadurch erschwert, dass der Text auf meiner Farbseite weiß auf dunklem Hintergrund ist.

MWE:

Dieser Code zeigt, wie ich derzeit zwischen Farbe und Schwarzweiß hin- und herschalte. Ich ändere die printincolorBool-Variable, um die Änderung vorzunehmen.

\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}

Wie kann ich zwei Versionen der Titelseite so übereinanderlegen (oder anderweitig anzeigen), dass sie auf dem Bildschirm in Farbe angezeigt, aber in Schwarzweiß gedruckt werden?

Antwort1

Die Lösung, die ich gefunden habe (mit vielen Dank ancfrUndSteven B. Segletesfür ihre Antworten auf meineVerwandte Frage) wird verwendet tikz, um eine Farbschicht abzulegen und diese dann mit einer monochromen Version zu überlagern, die nur beim Drucken angezeigt wird.

Da die Lösung jedoch optionale Inhaltsgruppen (Paket ocg-p) verwendet, wird sie nicht von allen PDF-Viewern vollständig unterstützt. Insbesondere ist Adobe Reader der einzige Viewer, der OCG vollständig unterstützt, während viele andere (Apples Preview, Skim und andere) auf die monochrome Version zurückgreifen (sie zeigen standardmäßig einfach alle Ebenen auf dem Bildschirm an und beachten die Flags „Nur drucken“ oder „Anfangszustand“ nicht). Einige Viewer (die auf Poppler basieren, also hauptsächlich Linux-Viewer) werden schlechter, indem sie nur die Farbebene auf dem Bildschirm anzeigen und drucken (wobei das Flag „Anfangszustand“ beachtet wird, aber die monochrome Ebene nicht für den Druck aktiviert wird). Unterm Strich kann es also anders sein.

Aber hier ist trotzdem die Lösung:

\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}

In Acrobat wird dies in Farbe auf dem Bildschirm angezeigt:

Farbe

Und wird in Monochrom gedruckt:

einfarbig

Indem Sie in der Seitenleiste die Registerkarte „Ebenen“ auswählen (die Platzierung kann je nach Viewer variieren; einige ältere Viewer-Versionen unterstützen Ebenen überhaupt nicht), können Sie optional auch zur monochromen Ansicht auf dem Bildschirm wechseln:

Ebenenregisterkarte

verwandte Informationen