在生成的 PDF 中存储黑白信息

在生成的 PDF 中存储黑白信息

上次我在一家复印店打印论文时,一个好心的女孩问我,我的pdf打印机中是否存储了某种颜色信息。她向我解释说,他们的打印机可以检测黑白页面,并在不使用任何颜色的情况下打印它们。不幸的是,使用(,现在我在)pdf生成的我的打印机没有提供页面是否使用任何颜色的信息(每个页面都被检测为彩色)。现在我的问题是:我如何提供这些信息?生成我的打印机时,是否有任何选项可以使用?pdflatexMikTeXmacTeXpdf

我之所以问这个问题,是因为黑白页的价格是彩色页的十分之一。打印 150 多页时,这会产生很大的差异。

彩色页面应该保持颜色,所以黑白仅有的不是一个选择。


我昨天打印了我的论文(使用 创建macTeX),并且每个文本页面都被正确识别为黑白。但是,每个带有图形的页面都被检测为彩色,尽管图形是黑白的。现在问题是什么?有没有图形选项可以给出pdfLaTeX提示?

根据 pixelmator,png 图像(使用 osx 快照工具从 pdf 创建)使用深度为 8 的 rgb 配置文件。配置文件名称是Colored LCD(我不知道我在说什么 ;)):

pixelmator 图像信息

答案1

检测 PDF 页面“颜色”的方法有很多。如果不了解打印机的具体方法,只能靠猜测和试验。

有一个 PDF 文件可供分析,其中打印机可以正确地将其页面分类为黑色页面和彩色页面,这很有帮助。

如果您想进行实验(并花一些钱),那么接下来就是进行实验的猜测。

LaTeX 测试

通常,LaTeX 中使用灰色模型来表示黑色:

\definecolor{black}{gray}{0}

如果打印机无法处理该颜色模型,并且认为这是颜色(可能是因为 CMYK 的转换很奇怪),那么可以使用以下 pdfTeX 文件来测试该理论:

\documentclass{article}
\pagestyle{empty}

\usepackage{color}
\definecolor{black}{cmyk}{0,0,0,1}

\makeatletter
\expandafter\let\expandafter\current@color
    \csname\string\color @black\endcsname
\chardef\main@pdfcolorstack
    \pdfcolorstackinit page direct\expandafter{\current@color}\relax
\makeatother

\begin{document}
CMYK-Black
\newpage
Gray: \textcolor[gray]{.5}{Gray}
\newpage
CMYK-Gray: \textcolor[cmyk]{0,0,0,.5}{Gray}
\end{document}

它将黑色的定义更改为 CMYK 颜色模型。第一页仅包含 CMYK 中的黑色 ( [cmyk]{0,0,0,1})。第二页在灰色颜色模型中添加了灰色 ( [gray]{.5}),第三页使用 CMYK 中的相同灰色 ( [cmyk]{0,0,0,.5})。

普通 TeX 测试

以下测试文件测试不同颜色模型中的黑色:

\pdfobjcompresslevel=0
\pdfcompresslevel=0
\nopagenumbers
\bf
Pure black
\par\vfill\eject
\pdfliteral direct{0 g 0 G}Gray black
\par\vfill\eject
\pdfliteral direct{0 0 0 rg 0 0 0 RG}RGB black
\par\vfill\eject
\pdfliteral direct{0 0 0 1 k 0 0 0 1 K}CMYK black
\bye

它必须用 编译pdftex,而不是pdflatex。除第一页外,页面上只有一个颜色指令。颜色以 LaTeX 颜色表达式给出:

  • 第 1 页:没有彩色说明(打印机应报告为黑色页面)。
  • 第2页:\color[gray]{0}
  • 第 3 页:\color[rgb]{0,0,0}
  • 第 4 页:\color[cmyk]{0,0,0,1}

理论上,并不是所有页面都使用颜色,文本始终为“黑色”。如果打印机将某一页或某些页面归类为“彩色”,则会给出一些提示。

相关内容