2016-04-23 102 views
0

我使用tcpdf将svg图像插入到pdf中。而tcpdf使用此命令使用php或任何命令或使用tcpdf将svg转换为cmyk

$pdf->ImageSVG 

rgb写的PDF,但我想将其转换为cmyk。所以我想我有2个办法做到这一点,

1)转换SVG为CMYK

为此,我试过这个命令

shell_exec("convert {$svgPath} -profile 'Canon_iPF_5000_-_iPF_8000_-_iPF_9000.icc' {$svgoppath}"); 

但不工作

2)在写作svg时将pdf转换为cmyk

我试图在google r egarding这,但没有适当的文件tcpdf强制写pdf在cmyk

有没有更好的办法来实现这一目标?

+0

https://www.w3.org/TR/SVG/color.html#ColorProfileElement – Kaiido

+0

@Kaiido感谢您通过我的情况,svg正在生成autoamtic,所以我应该附加或插入或更新什么代码SVG?我有许多元素在svg中,比如' \t \t 在此输入文字 \t''''''''''''' – hemsbhardiya

+0

好的,谢谢@Kaiido感谢。 – hemsbhardiya

回答

1

转换为色彩空间的PHP方法是使用iMagick的setimagecolorspace,这相当于exec(convert....。如果选项1)不起作用,则机会是setimagecolorspace也会失败。

确保imagemagick库&实用程序安装在服务器上,否则你会花几个小时调试没有损坏的代码。

+0

我已经在服务器上安装了imagick,并试着使用这段代码,'$ image = Config :: get('constants.paths.uploads.images.base')。“/ test.svg”; \t $ image2 = Config :: get('constants.paths.uploads.images.base')。“/ test_new。SVG“; \t \t $ IMagick =新IMagick(); \t \t $ IMagick->明确(); \t \t $ IMagick-> readImage($图像); \t \t $ icc_cmyk = LTRIM(配置::得到( 'constants.paths.uploads.images.base') '/ 1.icc', “/”);。 \t \t $ IMagick-> profileImage( 'ICC',$ icc_cmyk); \t \t //未设置( $ icc_cmyk); \t \t $ IMagick-> transformImageColorspace(12); \t \t $ IMagick-> writeImage($ image2) ;'但出错'ColorspaceColorProfileMismatch'icc'' – hemsbhardiya

+0

这里是错误链接https://www.printhubpro.co.uk/ajax/svgtest – hemsbhardiya

+0

'$ icc_cmyk = file_get_contents(.....)'而不仅仅是一个文件路径 –