-1

我试图将 .doc 文件转换为 pdf 文件,参考Convert Word doc, docx and Excel xls, xlsx to PDF with PHP , 并成功转换为 pdf,,,, 当我使用 ghost 脚本检测到总墨水覆盖时结果 fil CMYK 的值具有相同的值,例如,,,

第 1 页
0.8557 0.8557 0.8557 0.8557 CMYK 正常

正确的结果是

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

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

4

1 回答 1

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。PostScript 语言参考手册的第 476 页给出了从 RGB 到 CMYK 的标准转换。

还有其他方法可以处理这种转换,但它很复杂,在提出任何建议之前,我需要知道你为什么想要 CMYK 墨水覆盖。

当然,由于您还没有发布示例文件来学习,这都是猜测。如果您愿意提供一个示例,我会查看并检查。

[查看文件后]

是的,所有颜色都在 DeviceRGB 中指定。

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

所以基本上,Ghostscript 的 inkcov 设备告诉你的是正确的,这是你的内容是 RGB 的结果。

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

于 2017-05-06T06:27:21.690 回答