使用 php 和TCPDF生成 pdf 文件。一切都很好,除非我尝试使用ImageEPS()
. 什么都没有出现。没有错误(它肯定可以找到文件)。它只是显示为空白。
光栅图像(如 PNG/JPG)工作得很好。
我正在使用Inkscape保存 .eps 文件。当我在任何其他程序中打开文件时,它打开得很好。它唯一没有出现的 TCPDF。
我在 Adobe Illustrator 中打开了我的 *.ai 文件并将文件保存为“Illustrator 3”版本以解决该问题。任何最新版本都会产生您描述的结果(“Illustrator 8”除外,它为我提供了我的 *.ai 文件的黑白版本)。
有点晚了,但我遇到了同样的问题。
对我来说,解决方法是导出为 PDF 并在 TCPDF/FPDI 中重用此 PDF:
$num_pages = $pdf->setSourceFile(path_to_file);
$template_id = $pdf->importPage(1); //if the grafic is on page 1
$pdf->useTemplate($template_id,$x,$y,$width,$height);
TCPDF (6.0.004) 中的 ImageEPS 功能未完全实现,文档说明如下:
/**
* 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 语言参考关于序言部分的说明:
由于prolog没有被解析,所以正确解释文件很麻烦。
Inkscape (0.48.3.1 r9886) 使用 cairo 创建 epses,不会发生错误,功能将继续。TCPDF 将部分解释 eps,但由于它不输出任何内容,因此输出可能会被一些错误处理删除。但这只是一个猜测。
使用 inkscape -D --file=filename.eps --export-plain-svg=filename.svg 将我的 eps 导出到 svg 并改为使用时,我取得了更大的成功ImageSVG
。注意:这个功能也没有完全实现,所以我不能保证它会起作用。我只测试了一个非常基本的 eps。