Функция ImageEPS в TCPDF (6.0.004) реализована не полностью, и в документации говорится следующее:
/**
* Embed vector-based Adobe Illustrator (AI) or AI-compatible EPS files.
* NOTE: EPS is not yet fully implemented, use the
* setRasterizeVectorImages() method to enable/disable rasterization of
* vector images using ImageMagick library.
* ...
*/
public function ImageEps(...){/*...*/}
TCPDF (6.0.004) проверяет метаданные eps для своего создателя. Если создатель - Adobe Illustrator, выполняется проверка версии, а если версия выше 8, генерируется ошибка.
Создатели, кроме Adobe Illustrator, не проверяются, и функция может продолжаться. Похоже, что TCPDF не анализирует пролог PS, и это, вероятно, одна из причин, по которой поддерживаются не все версии AI. Вот что Справочник по языку PostScript говорит о разделе пролога:
- Пролог - это набор определений процедур для конкретного приложения, которые
Это может использовать при выполнении его сценария. Это включено как первая часть каждого
Файл PostScript, сгенерированный приложением. Он содержит определения, которые соответствуют
выходные функции приложения с возможностями, поддерживаемыми
Язык PostScript.
Поскольку пролог не анализируется, проблематично правильно интерпретировать файл.
Inkscape (0.48.3.1 r9886) создает эпизоды с помощью cairo, ошибки не возникает и функция будет продолжена. TCPDF будет частично интерпретировать eps, но так как он ничего не выводит, выходные данные, вероятно, удаляются при обработке ошибок. Но это только предположение.
У меня был больший успех при экспорте моего EPS в SVG с
inkscape -D --file = filename.eps --export-plain-svg = filename.svg
и вместо этого используйте ImageSVG
. Примечание: эта функция также не полностью реализована, поэтому я не могу гарантировать, что она будет работать. Я только что протестировал довольно простой EPS.