为什么ghost脚本在检测墨水总覆盖率时的结果是相同的值CMYK?(PHP)

为什么ghost脚本在检测墨水总覆盖率时的结果是相同的值CMYK?(PHP),php,pdf,system,ghostscript,unoconv,Php,Pdf,System,Ghostscript,Unoconv,我正在尝试将.doc文件转换为引用处的pdf文件,并成功转换为pdf,,,当我使用ghost脚本检测到总墨水覆盖率时,CMYK的结果fil值为相同的值,如 第1页0.8557 0.8557 0.8557 0.8557 CMYK OK 正确的结果是 第1页0.0000 0.0000 0.0000 1.0000 CMYK OK 因为我的文件包含所有黑色字体 我的鬼剧本 -o--sDEVICE=inkcov E:/fileconverted.pdf 顺便说一句,我使用openoffice和unocon

我正在尝试将.doc文件转换为引用处的pdf文件,并成功转换为pdf,,,当我使用ghost脚本检测到总墨水覆盖率时,CMYK的结果fil值为相同的值,如

第1页
0.8557 0.8557 0.8557 0.8557 CMYK OK

正确的结果是

第1页
0.0000 0.0000 0.0000 1.0000 CMYK OK
因为我的文件包含所有黑色字体

我的鬼剧本
-o--sDEVICE=inkcov E:/fileconverted.pdf


顺便说一句,我使用openoffice和unoconv

您可能会认为您的文件只包含黑色文本,实际上从某种意义上讲,它可能包含黑色文本,但是

因为您使用的是文字处理器而不是图形艺术应用程序,所以文本颜色几乎肯定是在RGB颜色空间中指定的。所以,如果你要求50%的绿色文本,你不会得到50%的青色、50%的黄色、0%的洋红和0%的黑色,你得到的是0%的红色、50%的绿色和0%的蓝色。这是因为操作系统毕竟是驱动RGB监视器的,它在RGB空间中工作

对于黑色文本(R=G=B=0),当您将其转换为CMYK时,它不会变成C=M=Y=0,K=1。这是众所周知的颜色空间转换问题

总之,你所看到的是正确的,问题在于你的期望

我可以想象,您创建的PDF文件也指定了RGB文本的颜色。使用inkcov设备时,这会导致Ghostswcript使用标准PostScript/PDF转换算法将RGB转换为CMYK。PostScript语言参考手册第476页给出了从RGB到CMYK的标准转换

有其他的方法来处理这种转换,但它很复杂,我需要知道为什么你想要CMYK墨水覆盖率,然后再提出任何建议

当然,由于您还没有发布示例文件进行研究,这只是猜测。如果您愿意提供一个示例,我将查看并检查

[查看文件后]

是的,所有颜色都在设备GB中指定

不仅如此,每个页面还定义了一个透明组,混合空间为RGB。因此,即使文本是用CMYK绘制的,它也会转换为RGB进行透明度混合。是的,我知道该文件没有任何透明对象,但许多不太明亮的PDF制作者发出透明组,即使他们实际上不使用任何透明内容。任何使用开罗的东西都特别容易受到这种影响

所以基本上,Ghostscript的inkcov设备告诉您的是正确的,这是因为您的内容是RGB格式的


现在,如果你能告诉我为什么这是一个问题,我可能会提供帮助。尽管透明小组在场,但这可能很困难。

谢谢你的回答。。这是我的文件,我有tes.doc和tes.pdf,这个问题的最佳解决方案是什么。它所说的是正确的。(BTW 1,正如你所认为的“正确结果”将意味着页面是完全黑的)最好的解决方案是处理所有列1-3都等于灰度级的UnCoCV输出。
`My php script for convert to pdf`

$result = exec('"C:\Program Files (x86)\OpenOffice 4\program\python.exe"
D:\wamp\www\doc_to_pdf\libobasis4.4-pyuno\unoconv -f pdf -o
D:/wamp/www/doc_to_pdf/files/'.$pdf_File_name.'
D:/wamp/www/doc_to_pdf/files/'.$doc_file_name);