Tôi đã tạo một canvas bằng cách sử dụng js vải, nơi người dùng có thể tạo danh thiếp đó. Bây giờ tôi đang đấu tranh để tạo ra hình ảnh có thể mở rộng/có thể in được (SVG & PNG).Cách tạo ảnh SVG và PNG ở phía máy chủ (PHP) bằng cách sử dụng dữ liệu toSVG của vải js
Tôi đang thử một số cách để tạo hình ảnh SVG và PNG ở phía máy chủ bằng cách sử dụng dữ liệu toSVG của vải jS. Vì vậy, sau đó người dùng có thể sử dụng SVG đó để in thẻ đó.
Tôi đã cố gắng bên dưới tùy chọn (sau đây tất cả các liên kết được đề cập đến câu hỏi của tôi trong SO mà tôi đã yêu cầu phải tìm một cách thích hợp):
1) Generate SVG on php side using Canvas JSON
Không thành công
2) Using raw svg data generate png on server side
Thành công một phần: Đối mặt với các vấn đề như gói Word, Phông chữ Vấn đề, v.v. Cũng không thể tải hình ảnh có thể in được. (Nếu sử dụng cao hơn DPI thì vấn đề xuất hiện như gắn SS) Kiểm tra dưới đây SS:
3) Generate Printable PDF using SVG raw data
phần: Không thể để có được in PDF
4) generate svg using raw data of svg in imagick
Không thành công: Không thể tạo hình ảnh svg (vấn đề BG, vấn đề hình ảnh).
5) Trực tiếp tạo SVG sử dụng dữ liệu thô
$file_name = uniqid($prefix).".svg";
$file_handle = fopen("$folder_name/".$file_name, 'w');
fwrite($file_handle, $raw_svg);
fclose($file_handle);
NO Success: Font không tải, không thể mở rộng (có nghĩa là chất lượng in)
Vì vậy, câu hỏi của tôi là cách tốt nhất để là gì tạo SVG & PNG làm cho hình ảnh BG, Hình ảnh đã tải lên, khác biệt. phông chữ vv với chất lượng in được.
Lưu ý: Tôi tập trung nhiều hơn vào SVG vì khách hàng thích điều đó, nếu tôi có thể nhận được chất lượng in trong PNG nó cũng có thể hoạt động. Ngoài ra tôi đã sử dụng imagick để đạt được SVG để PNG cuộc hội thoại. Nhưng không thể có được chất lượng in được (khi vấn đề DPI cao hơn như trên xảy ra SS).
Tôi đã cố gắng bao gồm tất cả các nghiên cứu của tôi và những gì tôi đã thử cho đến nay. Vì vậy, nếu có bất kỳ thay thế xin vui lòng cho tôi biết. như thay thế imagemagick hoặc bất kỳ phương pháp nào. Vì vậy, tôi có thể đạt được sản lượng mong muốn của tôi. – DS9
Tôi không chắc về khả năng SVG, nhưng bạn có thể sử dụng PhantomJS trên máy chủ. Về cơ bản, nó là trình duyệt WebKit không đầu có thể hiển thị nội dung giống như trình duyệt của người dùng. Và sau đó bạn có thể hiển thị hình ảnh đó (PNG) cũng như PDF. Bạn cũng có thể thực thi Mã JS của riêng bạn, có thể mở ra nhiều khả năng hơn nữa. Có lẽ đó là một lựa chọn? Bạn vẫn có thể tích hợp vào PHP bằng shell_exec và tương tự. – matths
vấn đề với dữ liệu toSVG thực tế là gì? là một SVG thực tế. Để chuyển đổi SVG thành PNGs imagemagick là không tốt? – AndreaBogazzi