我试图将.doc文件转换为pdf文件,引用Convert Word doc, docx and Excel xls, xlsx to PDF with PHP,并成功转换为pdf ,,,当我用ghost脚本检测总墨水覆盖率时,CMYK的结果fil值相同喜欢,,,
PAGE 1
0.8557 0.8557 0.8557 0.8557 CMYK OK
正确的结果是
PAGE 1
0.0000 0.0000 0.0000 1.0000 CMYK OK
因为我的文件包含所有黑色字体
`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);
我的幽灵剧本
-o - -sDEVICE = inkcov E:/fileconverted.pdf
BTW我使用openoffice和unoconv
答案 0 :(得分:3)
您可能认为您的文件仅包含黑色文本,实际上它可能在某种意义上确实存在,但是......
因为您使用的是文字处理器而不是图形艺术应用程序,所以文本颜色几乎可以在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。有关从RGB到CMYK的标准转换,请参阅PostScript语言参考手册的第476页。
还有其他方法可以处理这种转换,但它很复杂,我需要知道为什么在提出任何建议之前你想要CMYK墨水覆盖。
当然,由于你还没有发布一个示例文件来研究,这都是猜测。如果您想提供一个示例,我会查看并检查。
[查看文件后]
是的,所有颜色都在DeviceRGB中指定。
不仅如此,每个页面还定义了一个透明度组,其混合空间为RGB。因此,即使文本是在CMYK中绘制的,也会将其转换为RGB以进行透明度混合。是的我知道该文件没有任何透明对象,但很多不太明亮的PDF生产者发出透明组,即使他们实际上并没有使用任何透明内容。使用开罗的任何东西都特别容易受此影响。
基本上,Ghostscript的inkcov设备告诉你的是正确的,这是因为你的内容是RGB格式的结果。
现在,如果您告诉我为什么这是一个问题,我可能能够提供帮助。虽然存在透明度组,但这可能很困难。