5

使用 php 和TCPDF生成 pdf 文件。一切都很好,除非我尝试使用ImageEPS(). 什么都没有出现。没有错误(它肯定可以找到文件)。它只是显示为空白。

光栅图像(如 PNG/JPG)工作得很好。

我正在使用Inkscape保存 .eps 文件。当我在任何其他程序中打开文件时,它打开得很好。它唯一没有出现的 TCPDF。

4

3 回答 3

3

我在 Adob​​e Illustrator 中打开了我的 *.ai 文件并将文件保存为“Illustrator 3”版本以解决该问题。任何最新版本都会产生您描述的结果(“Illustrator 8”除外,它为我提供了我的 *.ai 文件的黑白版本)。

于 2011-03-02T18:41:17.553 回答
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);
于 2011-12-07T16:17:42.047 回答
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 元数据。如果创建者是 Adob​​e Illustrator,则会进行版本检查,如果版本高于 8,则会生成错误。不检查 Adob​​e Illustrator 以外的创作者,并允许该功能继续。TCPDF 似乎没有解析 PS 序言,这可能是并非所有 AI 版本都受支持的原因之一。以下是PostScript 语言参考关于序言部分的说明:

  • 序言是一组特定于应用程序的过程定义,应用程序可以在其脚本的执行中使用它们。它作为应用程序生成的每个 PostScript 文件的第一部分包含在内。它包含将应用程序的输出功能与 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。

于 2013-03-22T11:26:16.250 回答