代码之家  ›  专栏  ›  技术社区  ›  GHad

如何仅使用cmy颜色创建itext pdf

  •  0
  • GHad  · 技术社区  · 14 年前

    我需要用cmy颜色空间中的itext创建pdf(目前,其他lib建议值得赞赏)。不是CMYK:

    所有颜色和黑色只应转换为CMY,以便在保存我创建的PDF时,黑色面板为空。我知道,黑色看起来有点棕色,但我必须要求在这个PDF文件中不要使用任何黑色标牌。

    你有什么建议吗?

    (附言:这就像 need-help-answers-on-pdf-color-seperation ,但我现在不是转换PDF,而是询问有关创建的问题。但如果有人对这个相关的问题有答案,那也会有帮助的!)

    1 回复  |  直到 11 年前
        1
  •  0
  •   Mark Storer    14 年前

    有两种方法可以解决这个问题。首先,你需要决定如何表现你的颜色…

    1. cmyk,其中“k”始终为零
    2. 设备N色彩空间,有三个色彩通道。”我相信“着色剂”这个词。

    然后您需要使用itext的颜色对象,并确保每个颜色属性都设置为您的颜色之一,或设置为空(在itext ville中转换为“未绘制”)。会有很多默认值需要搜索和替换。

    你可能想破解一下iText的源代码来帮助你,特别是 PdfContentByte . 有两种不同的选择。

    1. 找到它设置颜色的所有位置,并在使用其中一种颜色时抛出异常保存(cmky-with-no-k或device-n-where-n-is-3)。
    2. 更难的是:在你扔的所有地方,把颜色转换成你的颜色空间中的等价物。灰度到cmy-no-k应该没那么难,但是好的rgb->cmyk转换是 至少 艺术和科学一样多…

    如果你包含的图片不是cmy-no-k开头的,你必须翻译它们。不能绕过去。如果你要翻译一些颜色,你最好至少使用上面的2的部分版本。