2012-01-05 40 views
9

Có cách nào để tạo lập trình (phía máy khách hoặc máy chủ (PHP)) một hình ảnh từ một trang DIV cụ thể hoặc trang hoàn chỉnh (web) không? Tôi hiện đang tạo trang web cho phiếu giảm giá miễn phí và ý tưởng là khi người dùng cuối nhấp vào nút "In", ứng dụng sẽ mở tab/cửa sổ mới với tất cả các phiếu giảm giá đã chọn dưới dạng một hình ảnh (JPG, PNG hoặc vv ..) ở định dạng A4 sẵn sàng để in. Mỗi phiếu giảm giá có dữ liệu riêng của nó (tên bài viết, giá, mô tả vv ..) vì vậy tôi cần nó được thực hiện programmaticaly trên một phiếu giảm giá-mẫu tôi thiết kế.Lập trình tạo hình ảnh từ trang web hoặc một DIV duy nhất

Tôi không yêu cầu bạn viết mã cho tôi, chỉ để đề xuất giải pháp tôi có thể sử dụng/phát triển. Nếu chưa tồn tại, tôi sẽ tải lên/xuất bản miễn phí :)

Cập nhật: Tôi đã làm với thư viện GD PHP :) Vẫn không hài lòng với ý tưởng sử dụng Hình ảnh thay vì PDF, vì mỗi kết quả in với khác nhau Kích thước phiếu giảm giá (hình ảnh) trên các máy tính khác nhau. Đó là lý do tại sao PDF có thể là một giải pháp tốt hơn. Bạn có thể xem/kiểm tra nó trên demo.svikuponi.ba - Chỉ cần chọn một vài Phiếu giảm giá và nhấp vào nút PRINTAJ ở trên.

+3

Sẽ tốt hơn (và dễ dàng hơn) để xuất tệp PDF thay vì hình ảnh; có rất nhiều phương pháp thực hiện nó hoặc từ PHP hoặc bằng cách chuyển đổi HTML. – Viruzzo

+0

Các trang web nên đơn giản như nó có thể nhận được, tôi thiết kế nó để người lớn tuổi (không hết hạn) có thể làm các bước đơn giản: lựa chọn và in phiếu giảm giá. Thats lý do tại sao tôi thích định dạng hình ảnh (PDF sẽ cần phải có Adobe cài đặt và cuối cùng, trình duyệt sẽ mang lại popup tải xuống (belive tôi, tôi đã xem vài người bị mất bởi tất cả những điều đó :)). – AlenBer

+0

Linh hồn hình ảnh sẽ chỉ là: Nhấn: Control + P – AlenBer

Trả lời

4

Bạn không thể tạo hình ảnh từ div cho chắc chắn nhưng có, bạn có thể tạo hình ảnh động trong php bằng cách sử dụng thư viện gd của nó. liên kết sau đây sẽ giúp:

http://php.net/manual/en/function.imagecreate.php

http://phptutorial.info/learn/create_images/

+0

Tôi sẽ cung cấp cho các liên kết đầu tiên một thử, nó có vẻ là một giải pháp đơn giản :) Cảm ơn tất cả các câu trả lời tuyệt vời. – AlenBer

+0

Chúc mừng bạn đời. :) –

2

Trong php, có nhiều chức năng liên quan đến hình ảnh như imagettftext() trong GD Thư viện để biết chi tiết, kiểm tra này ra http://php.net/manual/en/book.image.php nếu GD là không đủ, bạn có thể thử imagick cũng

cho mẫu, bạn có thể thử tạo ra một màu sắc thực sự xử lý trong php từ tập tin của bạn (hình ảnh) và thêm một phần văn bản hoặc một cái gì đó khác với tất cả các loại hiệu ứng và mã vạch vv ..

nhưng trong trường hợp của bạn, tôi sẽ đề nghị tạo PDF động vì nó sẽ tốt hơn với định dạng thay vì hình ảnh đơn giản, pdf lib: http://www.fpdf.org/

+0

Điều đó có nghĩa là người dùng cuối sẽ phải cài đặt Adobe PDF! Tôi đã tìm kiếm một định dạng hình ảnh chỉ vì nó không cần phải cài đặt bất cứ thứ gì để chạy trình duyệt, và chiều rộng/chiều cao của trang cũng sẽ được tạo tự động để người dùng cuối không lo lắng về việc priting nó một cách chính xác. – AlenBer

+1

Tôi tin rằng PDF là một định dạng được sử dụng rộng rãi và rất ít máy tính không có trình đọc PDF, giống như flash. nhưng dù sao, bạn vẫn có thể sử dụng đề xuất của tôi trên mẫu hình ảnh GD + phần – tom91136

4

Đây là một cách tuyệt vời để bạn có thể tạo ra hình ảnh trên các mặt hàng: http://smus.com/screen-capture-for-chrome-os

Bạn có thể thực hiện việc này và tạo ra một ứng dụng web mà sẽ làm việc độc đáo trên webkit (đối với các trình duyệt khác - Tôi sẽ xem xét JS polyfills).

1

bạn có thể dễ dàng có hình nền của mã thông báo/phiếu thưởng và phủ văn bản bằng một số biến số php.

tôi tin rằng có thể tạo một mã vạch duy nhất với hình ảnh php.

+0

Tôi đã có ý tưởng tương tự, có mẫu mặc định và chỉ cần vượt qua dữ liệu văn bản trên đó. Nó là một thực hành tốt hơn để làm việc xử lý ở phía máy chủ hoặc bằng cách nào đó ở phía khách hàng! – AlenBer

+0

phía máy khách sẽ giảm tải máy chủ, nhưng sau đó tất cả người dùng cần đáp ứng "yêu cầu phía khách hàng" như một số applet java – tom91136

+0

chỉ dựa vào khách hàng không phải lúc nào cũng là ý tưởng hay, không đảm bảo về javascript. phía máy chủ có tải nhiều hơn, nhưng đối với nhu cầu của bạn, điều này sẽ không mất nhiều thời gian vì nó chỉ lặp lại các biến trên màn hình và có thể tạo ra một hình ảnh. trừ khi chứng từ của bạn sẽ được tải xuống bởi hàng triệu tôi sẽ bỏ phiếu cho phía máy chủ. – ChelseaStats

1

Có thể nhận được screenshot từ trang web, nhưng điều này khá phức tạp. Bạn cần khởi động trình duyệt web để hiển thị trang và nhận ảnh chụp màn hình từ đó.

Bạn có thể tốt hơn bằng cách phân tích cú pháp một số đặc điểm kỹ thuật và cho nó vào một vài hàm GD hoặc Imagick. Điều này ít linh hoạt hơn nhưng dễ quản lý hơn.

4

Có ai đề cập đến html2canvas và/hoặc jsfeedback?

Nó tạo một ảnh chụp màn hình trang hoàn toàn bằng javascript, sau đó bạn có thể gửi đến máy chủ qua ajax ..

Rõ ràng, hỗ trợ CSS thiếu một số thứ.

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