如何将PDF从CMYK转换为RGB,以便在iPad上显示?
根据这一问题: 由于颜色不在RGB中,某些PDF不能正确显示在iOS设备上。还提到可以使用ghostscript自动将PDF从CMYK转换为RGB。有人知道实际命令的样子吗?据我所知,ghostscript只能转换光栅图像中的颜色空间 豆荚色 能够转换矢量对象 您可以尝试通过以下方式将黑白非彩色页面、cmyk转换为灰度:如何将PDF从CMYK转换为RGB,以便在iPad上显示?,ipad,pdf,rgb,ghostscript,cmyk,Ipad,Pdf,Rgb,Ghostscript,Cmyk,根据这一问题: 由于颜色不在RGB中,某些PDF不能正确显示在iOS设备上。还提到可以使用ghostscript自动将PDF从CMYK转换为RGB。有人知道实际命令的样子吗?据我所知,ghostscript只能转换光栅图像中的颜色空间 豆荚色 能够转换矢量对象 您可以尝试通过以下方式将黑白非彩色页面、cmyk转换为灰度: podofocolor grayscale input.pdf output.pdf 如果二进制文件不在存储库中,不幸的是您需要自己构建。然而,我只是尝试用 gs -sOut
podofocolor grayscale input.pdf output.pdf
如果二进制文件不在存储库中,不幸的是您需要自己构建。然而,我只是尝试用
gs -sOutputFile=output.pdf -sDEVICE=pdfwrite -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray -dCompatibilityLevel=1.4 input.pdf < /dev/null
预印飞行前检查说它变成了灰度,所以,也许我说gs只能转换pdf中光栅内容的颜色空间是错误的,因为我的pdf是矢量化的当从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
我在这里通过将-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的所有信息:
在mac上,您可以使用命令。比如说,
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上测试。Thx,我想试试,但我在Ubuntu 10.04上,它没有podofo包。你知道我在哪里可以找到它吗?我更新了我的答案,在尝试将包含向量元素的pdf的颜色空间转换为灰度后,这应该可以工作。但是,由于pdfwrite设备默认使用-dColorConversionStrategy=/sRGB和-dProcessColorModel=/DeviceRGB,因此不需要在命令行中声明它,尽管它也不会造成损害。另一种情况是,如果您希望将PDF颜色转换为CMYK,则需要-dColorConversionStrategy=/CMYK和-dProcessColorModel=/DeviceCMYK…开发人员说,,,只是没有-dColorConversionStrategyForImages开关。