打印文档时隐藏某些元素

打印文档时隐藏某些元素

出于某种原因,我想插入一条通知,告知用户可以单击我的 PDF 文档中的某些元素。但是,当文档打印在纸上时,该通知不应出现,因为它不再可单击。

我用过ocg-p按建议打包这里这里。我打印了文件——包括纸质通知。根据包文档,交换机printocg=always应该做这样的工作:

always表示始终打印,与文档中的当前可见性状态无关,并且never表示从不打印。

M(不)WE(使用 pdfLaTeX 编译)

\documentclass[a4paper]{article}

\usepackage{ocg-p}
\usepackage{hyperref}

\begin{document}

Some text to be printed and viewed.

\begin{ocg}[printocg=always,exportocg=never,listintoolbar=never]{Paper}{block0}{0}
    This \textit{should be} visible on paper but not in a PDF viewer.\\
    Even if it contains \href{https://stackexchange.com}{hyperlinks}.
\end{ocg}

\begin{ocg}[printocg=never,exportocg=never,listintoolbar=always]{Digital}{block1}{1}
    This \textit{should be} visible in any PDF viewer but not on a printed paper.\\
    And the \href{https://stackexchange.com}{hyperlink} is clickable.
\end{ocg}

Some other stuff later.

\end{document}

因此,基本上它应该像网页上的 CSS 一样工作:

@media print {
  .web-only {
    display: none !important;
  }
}

问题

  1. 在某些 PDF 查看器(例如 Evince、GIMP、Xournal)中,您会看到两行空白行和一个彩色框。 在此处输入图片描述
  2. 在 Chromium 中,您只有空白行而没有框(但看起来不支持框)。 在此处输入图片描述
  3. 在 Firefox ESR 中,您可以看到一切。 在此处输入图片描述
  4. 但在打印出来的纸上,仍然请参阅 PDF 阅读器的第二部分,但不是打印文档的部分。所以,它基本上就像上面的 Chromium 一样。

目标

第一个框不应该出现在支持 PDF 1.5 的 PDF 查看器中(甚至没有空行!)。第二个框不应该出现在打​​印纸上(但第一个框应该出现)。当然,超链接框很容易被禁用,但它们证明其他东西不起作用。

相关内容