Tôi muốn chuyển HTML được tạo bởi trang CFM của tôi sang PDF và yêu cầu người dùng nhắc với lời nhắc "Lưu dưới dạng" chuẩn khi điều hướng đến trang của tôi.Làm cách nào để chuyển trang ColdFusion thành tệp PDF tải xuống?
Trả lời
Bạn nên sử dụng thẻ cfdocument (có định dạng = "PDF") để tạo tệp PDF bằng cách đặt nó xung quanh trang bạn đang tạo. Bạn sẽ muốn chỉ định thuộc tính tên tệp, nếu không, tài liệu sẽ chỉ truyền trực tiếp tới trình duyệt của bạn.
Sau khi bạn đã lưu nội dung dưới dạng PDF, hãy sử dụng kết hợp đầu mục và cfcontent để kết xuất tệp PDF dưới dạng tệp đính kèm ("Lưu dưới dạng") và thêm tệp vào luồng phản hồi. Tôi cũng đã thêm deletefile = "Yes" trên thẻ cfcontent để giữ cho hệ thống tệp sạch các tệp.
<cfdocument format="PDF" filename="file.pdf" overwrite="Yes">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Hello World</title>
</head>
<body>
Hello World
</body>
</html>
</cfdocument>
<cfheader name="Content-Disposition" value="attachment;filename=file.pdf">
<cfcontent type="application/octet-stream" file="#expandPath('.')#\file.pdf" deletefile="Yes">
Là một sang một bên: Tôi chỉ sử dụng file.pdf cho tên tập tin trong ví dụ dưới đây, nhưng bạn có thể muốn sử dụng một số ngẫu nhiên hoặc phiên chuỗi tạo ra cho tên tập tin để tránh các vấn đề phát sinh từ điều kiện chủng tộc.
Tôi không quen thuộc với ColdFusion, nhưng những gì bạn cần làm là đặt Loại nội dung của trang khi người dùng yêu cầu nó là ứng dụng/octet-stream. Điều này sẽ nhắc họ tải xuống mỗi lần.
Hy vọng điều này sẽ hữu ích!
Nếu bạn muốn tránh lưu trữ tệp PDF, sử dụng cfdocument không có tên tệp sẽ gửi bản pdf (của flashpaper) trực tiếp tới trình duyệt mà không cần sử dụng cfheader và cfcontent.
Lưu ý: Cũng giống như việc sử dụng cfheader/cfcontent, bạn cần thực hiện việc này trước khi bộ nhớ cache được chuyển sang trình duyệt, vì cơ bản là làm điều tương tự mà không phải lưu trữ tệp.
Để lấy nội dung, tôi có thể sử dụng cfsavecontent được bao quanh cùng một cuộc gọi/bao gồm/v.v. tạo ra trang, với hai ngoại lệ chính. cfdocument dường như có vấn đề với bảng định kiểu bên ngoài, do đó, việc sử dụng bao gồm để đặt kiểu trực tiếp vào tài liệu có thể là một ý tưởng hay. Bạn có thể thử sử dụng @import để thay thế - nó hoạt động cho một số người. Ngoài ra, tôi sẽ cẩn thận về các liên kết tương đối với hình ảnh, vì đôi khi chúng có thể bị hỏng.
Cách tiếp cận <cfdocument>
là cách bị xử phạt để hoàn thành, tuy nhiên nó không cung cấp mọi thứ có thể có trong cách thao tác các tài liệu PDF hiện có. Tôi đã có một dự án mà tôi cần để tạo phiếu giảm giá dựa trên mẫu PDF có độ phân giải in được thiết kế sẵn. <cfdocument>
sẽ cho phép tôi ước lượng đầu ra, nhưng chỉ với hình ảnh bitmap được nhúng trong HTML. Đúng, tôi có thể in ra độ phân giải giả bằng cách tạo ra một hình ảnh lớn và mở rộng nó bằng HTML, nhưng bản gốc là một tệp hình ảnh vector đẹp, sạch sẽ và tôi muốn sử dụng nó thay thế.
Tôi đã sử dụng bản sao <cfx_pdf>
để hoàn thành công việc. (Developer's Site, CF Tag Store) Đây là trình bao bọc CF xung quanh thư viện Java PDF cho phép bạn thao tác các tài liệu PDF hiện có, bao gồm điền biểu mẫu PDF, đặt quyền, hợp nhất tệp, vẽ đồ họa vector, bảng và văn bản, sử dụng phông chữ tùy chỉnh, v.v. Nếu bạn sẵn sàng làm việc với nó, bạn có thể nhận được một số kết quả khá ngoạn mục.
Một nhược điểm là có vẻ như nhà phát triển đã để sản phẩm này ra ngoài đồng cỏ trong một thời gian dài. Trang web dành cho nhà phát triển vẫn là bản quyền năm 2003 và không đề cập đến bất kỳ điều gì trong quá khứ ColdFusion MX 6.1. Tôi đã phải phá vỡ một số mẫu mã hóa để sửa một vài lỗi và làm cho nó hoạt động như tôi cần. Nontheless, nó là một công cụ mạnh mẽ.
- 1. Tạo trang tải xuống trong ColdFusion 8
- 2. Cách tải xuống tệp PDF bằng Jersey?
- 3. Làm cách nào để in đồ họa R thành nhiều trang PDF và nhiều tệp PDF?
- 4. HTML: buộc tải xuống PDF
- 5. Tải xuống tệp pdf từ wikipedia
- 6. Làm thế nào để tải lên một tệp PDF nhiều trang và chuyển đổi nó thành JPEG với Paperclip?
- 7. tải xuống tệp bằng cách gọi .ashx trang
- 8. Làm cách nào để tự động tải xuống tệp javascript?
- 9. php - Làm cách nào để tải xuống tệp?
- 10. Nhúng PDF trên trang web và ngăn tải xuống
- 11. Force Tải xuống tệp PDF, tệp bị hỏng
- 12. Làm cách nào để tải xuống tệp zip trong C#?
- 13. Xem tệp PDF bằng HTML không tải xuống tệp
- 14. Tải xuống pdf theo lập trình
- 15. Làm cách nào để buộc grails tải xuống tệp csv?
- 16. Làm cách nào để tải xuống Tệp từ EC2
- 17. Nhắc người dùng tải xuống tệp PDF thay vì mở
- 18. Cách tạo tệp PDF có thể tải xuống với pdfbox (PDF bị hỏng)?
- 19. Chuyển đổi UIImage thành Tệp PDF
- 20. Làm cách nào để tải xuống jQuery?
- 21. Làm cách nào để chuyển đổi các tệp Word thành PDF theo lập trình?
- 22. Tôi làm cách nào để trình bày tệp để tải xuống từ bộ điều khiển MVC?
- 23. Cách tải xuống tệp zip từ trang web (trăn)
- 24. Tải xuống pdf không đồng bộ
- 25. Cách tải tệp xuống WP7?
- 26. Cách dễ nhất để tải xuống tệp?
- 27. Trong Java và HtmlUnit, làm cách nào để đợi trang kết quả tải xuống và tải xuống dưới dạng HTML?
- 28. Làm cách nào để hợp nhất nhiều tệp PDF thành một tệp duy nhất?
- 29. Sử dụng php để bắt buộc tải xuống bản pdf
- 30. Làm cách nào để chuyển đổi bản trình bày S5 thành PDF?