我有一些通过在其上显示白色文字来隐藏文本的postscript文件。
这是一个非常简单的例子来说明这个问题:
%!
/Times-Roman findfont
20 scalefont
setfont
newpath
0 setgray
72 72 moveto
(Hello, world!) show % Show some text
72 72 moveto
1 setgray
(Hello, world!) show % Hide some text
showpage
如果我将此文件直接发送到打印机,则不会打印隐藏文本。
但是,当我使用GhostScript(版本9.21)将此PS转换为PDF时,我仍然可以看到文本的轮廓。这是我使用的命令:
gswin32.exe -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -sOutputFile=C:\temp\output.pdf test.ps
我也试过将颜色设置为CMYK,但没有帮助。
如何在不显示“隐藏”文本的情况下将GhostScript配置为生成PDF?
亲切的问候, Maarten Coene答案 0 :(得分:0)
很明显,文字没有被隐藏,它已经透支了白色。
我可以看到三种可能的可能性而且看不到你做了什么,我无法确定发生了什么。
1)显然,PDF消费者必须将黑白灰色规格转换为“其他”,通常是RGB,但可能是CMYK,具体取决于您是在屏幕上查看PDF文件还是打印它。如果你看到整个纯文本,但是微弱,那就是发生了什么。
2)可能PDF用户没有准确地匹配这两组文本。如果您看到文本的部分轮廓,那就是正在发生的事情。
3)或者(这里是偷偷摸摸的位)可能你的观众使用某种抗锯齿。如果黑色底层文本是消除锯齿的,但白色不是,那么你会看到一种“晕”。文本的整个轮廓将是可见的,可能是微弱的灰色,但内部将是白色。
我拿了你的示例文件,并通过当前的HEAD版本的Ghostscript运行它,编写未压缩的PDF文件,结果页面内容为:
5 0 obj
<</Length 6 0 R>>
stream
q 0.1 0 0 0.1 0 0 cm
/R7 gs
0 g
q
10 0 0 10 0 0 cm BT
/R8 20 Tf
1 0 0 1 72 72 Tm
(Hello, world!)Tj
ET
Q
1 g
q
10 0 0 10 0 0 cm BT
/R8 20 Tf
1 0 0 1 72 72 Tm
(Hello, world!)Tj
ET
Q
Q
endstream
endobj
正如您所看到的,这样可以保持文本的纯黑色和纯白色规格(ExtGState只是将叠印模式设置为1)并将每个文本放在完全相同的位置。
我的猜测是你的观众正在使用消除锯齿来绘制黑色文本,而不是白色文本。 FWIW Adobe Acrobat不会为我显示此行为。