2010-03-26 21 views
5

Usando php y TCPDF para generar un archivo pdf. Todo funciona muy bien, excepto cuando intento escribir una imagen EPS en el pdf usando ImageEPS(). Nada aparece. Sin errores (definitivamente puede encontrar el archivo). Simplemente aparece como espacio en blanco.imagen EPS (desde inkscape) no aparece en tcpdf

Las imágenes de trama (como PNG/JPG) funcionan muy bien.

Estoy usando Inkscape para guardar el archivo .eps. Cuando abro el archivo en cualquier otro programa, se abre bien. Es solo TCPDF con el que no aparece.

Respuesta

3

Tenía abierto mi archivo * .ai en Adobe Illustrator y guardo el archivo como versión "Illustrator 3" para solucionar ese problema. Cualquier versión más actual produjo los resultados que describes (excepto "Illustrator 8", que me dio la versión B & W de mi archivo * .ai).

+0

También estoy probando la biblioteca TCPDF y, por desgracia, me parece que solo funcionan los archivos de Illustrator 3. Puedo confirmar que cuando hago Illustrator 8, casi todo es negro (no aparece B & W, el texto marrón aparece, pero no hay ilustraciones vectoriales) e Illustrator 9 y superior no funcionan en absoluto. – Josh

2

Un poco tarde, pero tuve el mismo problema.

Para mí, la solución era exportar como PDF y reutilizar este PDF en TCPDF/FPDI con:

$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); 
0

La función ImageEPS en TCPDF (6.0.004) no se aplique plenamente y la documentación indica la siguiente:

/** 
* 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) comprueba un metadatos eps para su creador. Si el creador es Adobe Illustrator, se realiza una verificación de versión y si la versión está por encima de 8 se genera un error. Los creadores que no sean Adobe Illustrator no están marcados y la función puede continuar. No parece que TCPDF analice el prólogo de la PS y esta es probablemente una de las razones por las que no se admiten todas las versiones de AI. Esto es lo que dice acerca PostScript Language Reference la sección de prólogo:

  • El prólogo es un conjunto de definiciones de procedimientos específicos de la aplicación que una aplica- ción puede utilizar en la ejecución de su guión. Se incluye como la primera parte de cada archivo PostScript generado por la aplicación. Contiene definiciones que coinciden con las funciones de salida de la aplicación con las capacidades admitidas por el lenguaje PostScript .

Dado que el prólogo no se analiza, es problemático interpretar el archivo correctamente.

Inkscape (0.48.3.1 r9886) crea epses con el cairo y no se producirá ningún error y la función continuará. TCPDF interpretará parcialmente los eps, pero dado que no produce nada, probablemente la salida se elimine mediante algún tipo de tratamiento de errores. Pero eso es solo una suposición.

tuviera más éxito con la exportación de mis eps a un SVG con Inkscape -D --file = filename.eps --export-llanura-SVG = filename.svg y el uso de ImageSVG lugar. Nota: esta función tampoco está completamente implementada, por lo que no puedo garantizar que funcione. Solo he probado un eps bastante básico.