【发布时间】:2010-03-26 18:17:01
【问题描述】:
使用php和TCPDF生成pdf文件。一切都很好,除非我尝试使用ImageEPS() 将 EPS 图像写入 pdf。什么都没有出现。没有错误(它肯定可以找到文件)。它只是显示为空白。
光栅图像(如 PNG/JPG)工作正常。
我使用Inkscape 来保存.eps 文件。当我在任何其他程序中打开文件时,它打开得很好。它唯一没有出现的 TCPDF。
【问题讨论】:
使用php和TCPDF生成pdf文件。一切都很好,除非我尝试使用ImageEPS() 将 EPS 图像写入 pdf。什么都没有出现。没有错误(它肯定可以找到文件)。它只是显示为空白。
光栅图像(如 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(...){/*...*/}
TCPPDF (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。
【讨论】: