2008-12-02 46 views
11

Tôi đang tạo phiếu giảm giá dựa trên đầu vào động và hình ảnh bị cắt và tôi đang hiển thị phiếu giảm giá bằng ntml và css ngay bây giờ, vấn đề là, việc in ấn này đã trở thành vấn đề do cách hình nền biến mất khi in ấn và các vấn đề khác, vì vậy tôi nghĩ giải pháp tốt nhất là có thể tạo ra một hình ảnh dựa trên html, hoặc thiết lập một số mẫu có chuỗi và hình ảnh, và tạo ra một hình ảnh bằng cách sử dụng hình ảnh cho ăn dưới dạng nền và đặt thông tin phiếu giảm giá ở trên cùng.Hiển thị HTML dưới dạng Hình ảnh

Có điều gì đã thực hiện việc này chưa?

Đây là trang web ASP.NET 3.5 C#!

Xin cảm ơn trước.

chỉnh sửa: Thật tuyệt vời nếu đầu ra có thể dựa trên đầu vào HTML, vì phiếu giảm giá được thiết kế bằng cách thao tác DOM bằng jQuery và kéo công cụ xung quanh, tất cả đều hoạt động tốt, chỉ khi nói đến in (đến giấy) nó có vấn đề lập chỉ mục z.

Trả lời

10

Việc bạn có thể làm là tạo trang aspx thay đổi loại phản hồi thành định dạng bạn muốn và sau đó đưa hình ảnh vào luồng. Tôi tạo ra một máy phát điện mã vạch mà làm một điều tương tự. Nếu loại trừ tất cả các thủ tục tạo hình ảnh, bạn sẽ Page_Load sẽ trông giống như sau:

Bitmap FinalBitmap = new Bitmap(); 
MemoryStream msStream = new MemoryStream(); 

strInputParameter == Request.Params("MagicParm").ToString() 

// Magic code goes here to generate your bitmap image. 
FinalBitmap.Save(msStream, ImageFormat.Png); 

Response.Clear(); 
Response.ContentType = "image/png"; 

msStream.WriteTo(Response.OutputStream); 

if ((FinalBitmap != null)) FinalBitmap.Dispose(); 

và thế là xong! Sau đó, tất cả những gì bạn phải làm trong hình ảnh của bạn là thiết lập URL giống như RenderImage.aspx? MagicParm = WooHoo hoặc bất cứ thứ gì bạn cần. Bằng cách đó bạn có thể làm cho nó hiển thị bất cứ điều gì bạn muốn chỉ định.

+0

vì vậy điều này sẽ cho phép được tự động tạo ra một hình ảnh như là một nền với văn bản trên đầu, lấy từ một cơ sở dữ liệu? Nếu vậy nó nghe có vẻ lộng lẫy! – Tablet

+0

Có. Bạn có thể tạo toàn bộ phiếu giảm giá dưới dạng hình ảnh trong trình kết xuất của bạn và trả lại. Hoặc nếu bạn muốn đặt văn bản trên đầu trang của nó, bạn sẽ phải làm những điều một chút phức tạp hơn và tạo ra một div hoặc một bảng với renderer làm nền cho nó. –

+0

mã ma thuật là gì ?? – user287745

0

Có một thư viện tạo hình ảnh rất mạnh được gọi là GD mà tôi thường sử dụng với PHP.

Tôi được cho là có một trình bao bọc cho thư viện này mà các lập trình viên ASP có thể sử dụng. Try this

0

Trừ khi "các sự cố khác" khá nghiêm trọng, bạn không thể chỉ dẫn người dùng bật Hình nền khi in?

Trong mọi trường hợp, tôi sẽ mặc định phân phối PDF chứ không phải hình ảnh, gấp đôi vì nó được thiết kế để in.

+0

Tôi có thể tạo tệp PDF bằng HTML không? Nếu nó "In" sang PDF, nó sẽ chỉ gây ra cùng một vấn đề tôi đang có với z-indexing – Tablet

1

Hãy thử PDFSharp ... không chính xác là "lấy HTML này và tạo PDF" nhưng với một chút không quan trọng bạn có thể dễ dàng tạo một tệp PDF ra khỏi thông tin bạn đang sử dụng để tạo HTML.

+4

số lượng nhỏ có thể là một cách nói nhỏ ở đó; D –

3

Bạn có thể hiển thị html thành bitmap bằng cách sử dụng điều khiển WebBrowser trong ứng dụng biểu mẫu hoặc bảng điều khiển.

Một ví dụ về điều này có thể được tìm thấy ở đây: http://www.wincustomize.com/articles.aspx?aid=136426&c=1

Ví dụ trên có thể được sửa đổi để chạy trong ASP.Net bằng cách tạo ra một STAThread mới và thực hiện một Application.Run vào nó để bắt đầu một vòng lặp thông điệp mới.

3

PHP/Ruby Alternative


Nếu bạn đã truy cập câu hỏi này và đang thực sự tìm kiếm soething rằng sẽ làm việc mà không cần Windows, bạn có thể thử các thư viện KHTML: http://wiki.goatpr0n.de/projects/khtmld

Trang web này có một tên vô lý tôi thừa nhận, nhưng tôi có thể đảm bảo với bạn nó là chính hãng. Các trang liên quan khác là: trang sourceforge http://khtml2png.sourceforge.net/

0

Chỉ cần thiết lập css của bạn đúng cách để bạn có tệp css được nhắm mục tiêu ở phương tiện in. Nó là khá dễ dàng để đảm bảo rằng phiếu giảm giá sẽ luôn luôn dễ đọc, mà không đáng lo ngại về việc liệu họ có hình ảnh bg trên hay không. Việc di chuyển kim sang một hình ảnh không có ý nghĩa gì, trừ khi có một số lý do bạn không muốn nó trở thành máy có thể đọc được.

0

Tôi chưa thử bản thân mình, nhưng bạn có thể hiển thị HTML thành hình ảnh bằng cách sử dụng điều khiển WebBrowser và phương thức DrawToBitmap() được kế thừa từ lớp Điều khiển cơ sở.

CẬP NHẬT: Tôi đã thử bản thân mình và có một số cảnh báo. Điều khiển WebBrowser dường như không hiển thị trang web cho đến khi điều khiển được hiển thị, do đó WebBrowser cần phải ở trong Biểu mẫu và Biểu mẫu phải được hiển thị để HTML được hiển thị và sự kiện DocumentCompleted được nâng lên.

1

Markup CHỈ GIẢI PHÁP ALTERNATE

Sử dụng SVG và XSLT để chuyển đổi dữ liệu html vào một hình ảnh có thể được trả lại/lưu/etc.

Tôi sẽ thừa nhận rằng lúc đầu nó đã tẻ nhạt nhận được điều này để làm việc vì tất cả các tọa độ, nhưng cũng có giá trị nỗ lực khi nó đang chạy.

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