使用php和TCPDF生成pdf文件。除非我尝试使用ImageEPS()
将EPS图像写入pdf,否则一切都很有效。什么都没有出现。没有错误(它肯定能找到文件)。它只是显示为空白区域。
光栅图像(如PNG / JPG)工作正常。
我正在使用Inkscape来保存.eps文件。当我在任何其他程序中打开文件时,它打开就好了。它唯一没有出现的TCPDF。
答案 0 :(得分:3)
我在Adobe Illustrator中打开了我的* .ai文件并将文件另存为“Illustrator 3”版本以克服该问题。任何更新的版本都会产生你描述的结果(“Illustrator 8”除外,它给了我* .ai文件的B& W版本)。
答案 1 :(得分:2)
有点晚了,但我遇到了同样的问题。
对我来说,解决方法是导出为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);
答案 2 :(得分:0)
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 Language Reference关于序言部分的内容:
由于未解析prolog,因此正确解释文件很麻烦。
Inkscape(0.48.3.1 r9886)使用cairo创建epses,不会发生错误,该函数将继续。 TCPDF将部分解释eps,但由于它不输出任何内容,输出可能会被某些错误处理删除。但这只是猜测。
我将eps导出到svg时取得了更大的成功
inkscape -D --file = filename.eps --export-plain-svg = filename.svg
并使用ImageSVG
代替。注意:此功能也未完全实现,因此我无法保证它能够正常工作。我只测试了一个非常基本的eps。