2016-04-23 3 views
0

Я вставляю svg-изображение в pdf с помощью tcpdf. И tcpdf пишет PDF в rgb с помощью этой командыконвертировать svg в cmyk с помощью php или любой команды или с помощью tcpdf

$pdf->ImageSVG 

Но я хочу, чтобы преобразовать его в cmyk. Так я думал, что у меня есть 2 способа сделать это,

1) конвертировать SVG в CMYK

Для этого я попробовал эту команду

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

Но не работает

2) конвертировать pdf в cmyk во время записи svg

Я попытался найти в google r если учесть это, но нет надлежащей документации tcpdf, чтобы заставить писать pdf в cmyk

Есть ли лучший способ достичь этого?

+0

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

+0

@Kaiido спасибо за то, что я прошел через мою ситуацию, svg генерирует autoamtic, поэтому какой код мне нужно добавить или вставить или обновить в SVG? У меня есть много элементов в svg, например ' \t \t Введите текст здесь \t 'который имеет свойство' fill' в 'rgb'. – hemsbhardiya

+0

ОК спасибо @Kaiido ценю. – hemsbhardiya

ответ

1

PHP способ конвертировать в цветовое пространство - использовать iMagick's 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 (Config :: получить ('constants.paths.uploads.images.base') '/ 1.icc', "/");. \t \t $ IMagick-> profileImage ('МЦХ', $ 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 (.....)', а не только путь к файлу –