2010-03-26 46 views
5

Sử dụng php và TCPDF để tạo tệp pdf. Mọi thứ hoạt động tốt trừ khi tôi cố gắng viết một hình ảnh EPS lên pdf bằng cách sử dụng ImageEPS(). Không có gì xuất hiện. Không có lỗi (nó chắc chắn có thể tìm thấy tập tin). Nó chỉ hiển thị như là không gian màu trắng.eps hình ảnh (từ inkscape) không hiển thị trong tcpdf

Hình ảnh quét (như PNG/JPG) hoạt động tốt.

Tôi đang sử dụng Inkscape để lưu tệp .eps. Khi tôi mở tập tin trong bất kỳ chương trình nào khác, nó sẽ mở ra tốt. TCPDF duy nhất của nó mà nó không hiển thị với.

Trả lời

3

Tôi đã mở tệp * .ai của mình trong Adobe Illustrator và lưu tệp dưới dạng phiên bản "Illustrator 3" để khắc phục sự cố đó. Bất kỳ phiên bản hiện tại nào khác cũng tạo ra kết quả bạn mô tả (ngoại trừ "Illustrator 8", cho tôi phiên bản B & W của tệp * .ai).

+0

Tôi cũng đang thử nghiệm thư viện TCPDF và thật đáng buồn, tôi thấy rằng chỉ có các tệp Illustrator 3 hoạt động. Tôi có thể xác nhận rằng khi tôi làm Illustrator 8, nó gần như tất cả các màu đen (không phải B & W, văn bản màu nâu đi qua, nhưng không có màu sắc nghệ thuật vector) và Illustrator 9 và ở trên không làm việc ở tất cả. – Josh

2

Hơi muộn một chút, nhưng tôi cũng gặp phải vấn đề tương tự.

Đối với tôi, cách giải quyết là để xuất khẩu dưới dạng PDF và tái sử dụng PDF này trong TCPDF/FPDI với:

$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

Các ImageEPS chức năng trong TCPDF (6.0.004) không được thực hiện đầy đủ và các tài liệu khẳng định sự như sau:

/** 
* 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) kiểm tra siêu dữ liệu eps cho người tạo. Nếu người sáng tạo là Adobe Illustrator, một phiên bản kiểm tra được thực hiện và nếu phiên bản trên 8 lỗi được tạo ra. Người sáng tạo không phải Adobe Illustrator không được chọn và chức năng này được phép tiếp tục. Nó không có vẻ như TCPDF phân tích cú pháp PS prolog và đây có lẽ là một lý do tại sao không phải tất cả các phiên bản AI đều được hỗ trợ. Đây là những gì PostScript Language Reference nói về phần prolog:

  • Các prolog là một tập hợp các định nghĩa thủ tục ứng dụng cụ thể mà một tion applica- có thể sử dụng trong việc thực hiện kịch bản của nó. Nó được bao gồm như là phần đầu tiên của mỗi tệp PostScript do ứng dụng tạo ra. Nó chứa các định nghĩa khớp với các chức năng đầu ra của ứng dụng với các khả năng được hỗ trợ bởi ngôn ngữ PostScript .

Vì prolog không được phân tích cú pháp, việc giải thích tệp chính xác là khó khăn.

Inkscape (0,48.3.1 r9886) tạo ra epses với cairo và không có lỗi nào xảy ra và chức năng sẽ tiếp tục. TCPDF một phần sẽ giải thích các eps, nhưng vì nó không xuất ra bất cứ điều gì, đầu ra có thể được loại bỏ bởi một số xử lý lỗi. Nhưng đó chỉ là một phỏng đoán.

tôi đã thành công hơn với xuất khẩu eps của tôi đến một svg với inkscape -D --file = filename.eps --export-plain-svg = filename.svg và sử dụng ImageSVG để thay thế. Lưu ý: chức năng này chưa được triển khai đầy đủ, vì vậy tôi không thể đảm bảo rằng nó sẽ hoạt động. Tôi đã chỉ thử nghiệm một eps khá cơ bản.

Các vấn đề liên quan