我需要将PDF转换为不同的ICC颜色配置文件。通过不同的搜索和测试,我找到了一种方法:
-
首先,我将我的PDF转换为PS文件:
.gswin64c.exe -dNOPAUSE -dBATCH -sDEVICE=ps2write -sOutputFile="test.ps" "test.pdf"
-
然后我使用以下方法将PS转换回PDF(这是为了生成有效的PDF/X-3文件(:
.gswin64c.exe -dPDFX -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sColorConversionStrategy=/UseDeviceIndependentColor -sProcessColorModel=DeviceCMYK -dColorAccuracy=2 -dRenderIntent=0 -sOutputICCProfile="WebCoatedSWOP2006Grade5.icc" -dDeviceGrayToK=true -sOutputFile="final.pdf" test_PDFX_def.ps test.ps
ICC配置文件是嵌入式的,一切都完美运行。唯一的问题是整个最终的PDF被栅格化了。在这里,我丢失了起始文件中的所有路径和其他矢量元素质量。我需要使它们保持矢量化,因为此 PDF 将具有特定的应用程序。
第一步不要转换为PostScript!!
如果这样做,任何透明的标记操作都必须呈现,因为PostScript不支持透明度。其他功能也会丢失,所以真的,不要这样做。Ghostscript 的输入端和输出端或多或少是独立的;pdfwrite设备不知道输入是PDF还是PostScript,也不关心。因此,在将PDF文件作为输入发送之前,您无需将其转换为PostScript。
您可以将原始 PDF 文件输入到第二个命令行中,以代替 PostScript 文件。
只要您正在制作PDF/X-3或更高版本,那么透明度就会被保留。确保您使用的是最新版本的 Ghostscript。