【问题标题】:How to convert PDF from CMYK to RGB, for displaying on iPad?如何将 PDF 从 CMYK 转换为 RGB,以便在 iPad 上显示?
【发布时间】:2012-01-18 12:40:52
【问题描述】:

根据这个问题:

Displaying PDF documents on iPad - Color Problems

由于颜色不是 RGB,某些 PDF 无法在 iOS 设备上正确显示。还提到可以使用 ghostscript 自动将 PDF 从 CMYK 转换为 RGB。有谁知道实际的命令是什么样子的?

【问题讨论】:

    标签: ipad pdf rgb ghostscript cmyk


    【解决方案1】:

    据我所知,ghostscript能够在光栅图像中转换色彩空间

    podofocolor

    http://podofo.sourceforge.net/

    能够转换矢量对象

    您可以尝试将(对于黑白非彩色页面),cmyk 转换为 灰度,这种方式:

    podofocolor grayscale input.pdf output.pdf
    

    如果二进制文件不在存储库中,很遗憾您需要自己构建。但是,我只是尝试将 pdf 转换为灰度

    gs -sOutputFile=output.pdf -sDEVICE=pdfwrite -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray -dCompatibilityLevel=1.4 input.pdf < /dev/null
    

    并且印前预检检查说它变成了灰度,所以,也许我说gs只能转换光栅的色彩空间是错误的pdf 中的内容(因为我的 pdf 是矢量化的)

    【讨论】:

    • 谢谢,我想试试,但我在 Ubuntu 10.04 上,它没有 podofo 包。你知道我在哪里可以找到它吗?
    • 在尝试将包含矢量元素的 pdf 的色彩空间转换为灰度之后,我更新了答案
    【解决方案2】:

    在从 Postscript 文件生成 PDF 时,我们使用 Ghostscript 将 CMYK 转换为 RGB。它也应该适用于 PDF 到 PDF 的转换。

    使用如下命令行:

    gs -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -dCompatibilityLevel=1.4 -dColorConversionStrategy=/sRGB -dProcessColorModel=/DeviceRGB -dUseCIEColor=true -sOutputFile=output.pdf input.ps
    

    【讨论】:

    • 是的,这应该可以。但是,由于 pdfwrite 设备默认使用 -dColorConversionStrategy=/sRGB-dProcessColorModel=/DeviceRGB,因此不需要在命令行上声明它(尽管它也没有害处)。如果您希望将 PDF 颜色转换为 CMYK,则另一种情况是 - 在这种情况下,-dColorConversionStrategy=/CMYK-dProcessColorModel=/DeviceCMYK 将是必需的...
    • 我正在使用上面的 19MB pdf 输入,输出是 128KB pdf。结果是图像质量下降,为什么要压缩/如何避免任何压缩?谢谢!
    • @GerardBosch 这是一个重要的问题。你最好在 StackOverflow 中提出一个新问题。
    • 谢谢@Codo。我设法做到了我想要的(使用正确的压缩):gs -sDEVICE=pdfwrite -dPDFX -dPDFSETTINGS=/prepress -dColorConversionStrategy=/sRGB -o output.pdf input.pdf。我认为/prepress 选项为我提供了正确的设置。作为参考,我还发现这个关于 GS 图像处理/压缩的答案很有用:superuser.com/a/373740/684037
    【解决方案3】:

    我在这里通过将 -dCompatibilityLevel 从 v1.4 降级到 v1.3 解决了同样的问题

    更新:v1.3 会将 PDF 中的所有内容仅转换为一个对象,这意味着最终用户将无法选择文本,也无法在其查看器中提取图像。

    为了继续使用 v1.4,我发现了一个关于 ghostscript 的技巧,它有助于保持颜色准确性,即禁用 PDF 透明度,因为 RGB 没有 alpha 通道,它们转换不准确,所以,信息丢失。

    因此,如果您使用:-dNOTRANSPARENCY,您仍然可以使用:-dCompatibilityLevel=1.4,它会起作用。

    确切的命令:

    gs -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -dCompatibilityLevel=1.4 -dNOTRANSPARENCY -dColorConversionStrategy=/sRGB -dProcessColorModel=/DeviceRGB -dColorConversionStrategyForImages=/DeviceRGB -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dUseCIEColor=true -sOutputFile=output.pdf input.pdf
    

    当我使用 PHP 处理它时,我编写了一个简单的类:

    /**
     * Convert color profiles - PDF to PDF
     * Class Conversor
     */
    class Conversor
    {
        /**
         * Convert CMYK to RGB
         *
         * @param $input
         * @param $output
         * @return string
         */
        public static function gsCmykToRgb($input, $output)
        {
            $gsScript = ('gs -sDEVICE=pdfwrite \
                             -dBATCH -dNOPAUSE \
                             -dCompatibilityLevel=1.4 \
                             -dNOTRANSPARENCY \
                             -dColorConversionStrategy=/sRGB \
                             -dProcessColorModel=/DeviceRGB \
                             -dColorConversionStrategyForImages=/DeviceRGB \
                             -dTextAlphaBits=4 \
                             -dGraphicsAlphaBits=4 \
                             -dUseCIEColor=true \
                             -sOutputFile='."$output".' '."$input");
            exec($gsScript);
    
            return realpath($output);
        }
    }
    

    您可以在此处找到有关 ghostscript 的所有信息: http://www.ghostscript.com/doc/9.05/Use.htm

    【讨论】:

    • 开发人员说 (1,2,3) 没有 -dColorConversionStrategyForImages 开关。
    【解决方案4】:

    在 mac 上,您可以使用sips 命令。例如,

    sips --matchTo '/System/Library/ColorSync/Profiles/Generic RGB Profile.icc' CMYKinput.pdf --out RGBoutput.pdf
    

    RGB pdf 可以用同样的方法转换成 CMYK(把 'Generic RGB Profile.icc' 改成 'Generic CMYK Profile.icc')。

    在 OSX 10.12 上测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      • 2020-01-23
      • 2020-07-03
      相关资源
      最近更新 更多