Pisa HTML và PDF

Bạn nên tạo chế độ xem sẽ chuyển đổi tệp PDF từ HTML. Để lưu trữ tạm thời tệp PDF của bạn, hãy sử dụng thư viện cStringIO sẽ cung cấp giao diện đối tượng giống như tệp hiệu quả. Đặt tệp HTML đầu ra phải được chuyển đổi thành PDF và tệp sẽ nhận kết quả cuối cùng. Sau đó, bạn nên đặt đối tượng HttpResponse có tiêu đề phù hợp và nhập lệnh sẽ nhận giá trị từ bộ đệm StringIO và hiển thị dưới dạng phản hồi

Cách chuyển đổi HTML sang PDF bằng Python với WeasyPrint

WeasyPrint là một công cụ hiển thị hình ảnh khác có thể xuất nội dung HTML/CSS sang PDF. Trọng tâm chính của nó là hỗ trợ các tiêu chuẩn web để in thêm. WeasyPrint là một công cụ miễn phí có sẵn để tải xuống và sử dụng theo giấy phép BSD. Giải pháp sử dụng các thư viện khác nhau nhưng không dựa trên một công cụ kết xuất cụ thể, chẳng hạn như Gecko hoặc Webkit. Công cụ bố trí CSS của WeasyPrint dựa trên Python và nó hỗ trợ 2. 7 và 3. 3 phiên bản Python trở lên. Điều đáng chú ý là công cụ này được tạo riêng cho các tác vụ phân trang. Ngoài ra, WeasyPrint hỗ trợ Django

Đặc trưng

The tool supports common HTML and CSS files, data URIs, FTP, and HTTP. It means that WeasyPrint supports HTTP redirects, but it does not support more complex features, such as authentication or cookies. The solution also supports CSS stylesheets both linked by the element and embedded in the element. When it comes to images, WeasyPrint supports various elements, such as , , and , and image formats, including:

  • JPEG,
  • GIF,
  • SVG,
  • và PNG

Tuy nhiên, công cụ này không rasterize hình ảnh SVG. Thay vào đó, nó hiển thị các hình ảnh đó dưới dạng vectơ trong tệp PDF đầu ra

Hơn nữa, WeasyPrint hỗ trợ tệp đính kèm, dấu trang và siêu liên kết. Công cụ hiển thị các siêu liên kết có thể nhấp được trong trường hợp bạn đang sử dụng trình xem PDF tiện lợi. WeasyPrint hỗ trợ cả neo nội bộ () và siêu liên kết bên ngoài. Công cụ này thường hiển thị dấu trang trong thanh bên và nhúng tệp đính kèm trong tệp PDF đã chuyển đổi

Cài đặt

Vì WeasyPrint chứa nhiều phần phụ thuộc nên bạn có thể dễ dàng cài đặt nó bằng cách chạy lệnh pip khi sử dụng Python để tạo PDF

________1_______

Sau đó, bạn nên làm cho công cụ có thể thực thi được bằng cách nhập mã sau sẽ hiển thị trong phiên bản WeasyPrint của bạn

________2_______

Tạo tệp PDF

Để chuyển đổi nội dung HTML/CSS thành PDF mà không có bất kỳ thay đổi nào, bạn chỉ cần nhập mã sau

________3_______

Nếu bạn cần thay đổi kiểu nội dung của mình trong tệp PDF trong tương lai, bạn phải đặt biểu định kiểu của mình

từ weasyprint nhập HTML, CSS

HTML(‘http. //địa_chỉ_website_của_bạn. tổ chức/’). write_pdf(‘/path_for_storing_your_PDF/file_name. pdf',

stylesheets=[CSS(string=’body { font-color. màu đỏ }')])

Các ví dụ sử dụng WeasyPrint được đề cập dưới đây sẽ cho phép bạn chuyển đổi các tệp PDF, ngay cả khi một số thay đổi được yêu cầu

Được cấp phép theo Giấy phép Apache, Phiên bản 2. 0 ("Giấy phép"); bạn không được sử dụng tệp này trừ khi tuân thủ Giấy phép. Bạn có thể lấy một bản sao của Giấy phép tại

________0_______

Trừ khi luật hiện hành yêu cầu hoặc được đồng ý bằng văn bản, phần mềm được phân phối theo Giấy phép sẽ được phân phối trên CƠ SỞ "NGUYÊN TRẠNG", KHÔNG CÓ BẢO ĐẢM HAY ĐIỀU KIỆN DƯỚI BẤT KỲ HÌNH THỨC NÀO, rõ ràng hay ngụ ý. Xem Giấy phép để biết các quyền và giới hạn quản lý ngôn ngữ cụ thể theo Giấy phép

def pdf_workup(yêu cầu, pk). wu = get_object_or_404(mô hình. Làm việc, pk=pk) active_provider_type = get_object_or_404(ProviderType, pk=request. phiên ['clintype_pk']) nếu active_provider_type. staff_view. dữ liệu = {'làm việc'. wu} mẫu = get_template('workup/workup_body. html') html = mẫu. tệp kết xuất (dữ liệu) = Tệp tạm thời (chế độ = "w + b") pisa. TạoPDF(html. mã hóa ('utf-8'), tệp đích = tệp, mã hóa = 'utf-8'). tìm kiếm (0) pdf = tệp. Đọc tài liệu. close() viết tắt = ''. tham gia(tên[0]. upper() cho tên trong wu. bệnh nhân. tên(reverse=False, middle_short=False). split()) định dạng = '. '. tham gia([str(wu. ngày khám bệnh. ngày khám bệnh. tháng). zfill(2), str(wu. ngày khám bệnh. ngày khám bệnh. ngày). zfill(2), str(wu. ngày khám bệnh. ngày khám bệnh. năm)]) tên tệp = ''. tham gia([tên viết tắt, ' (', ngày định dạng, ')']) phản hồi = HttpResponse(pdf, 'application/pdf') phản hồi["Bố trí nội dung"] = "tệp đính kèm; tên tệp=%s. pdf" % (tên tệp,) trả về phản hồi khác. trả về HttpResponseRedirect(reverse('workup', args=(wu. Tôi,)))
def convert(self, document, format=None, output_filename=None, delete_on_close=True). nếu tài liệu. định dạng. = 'html'. nâng cao ConverterError(u'xhtml2pdf does not support %s input format' % document. định dạng) nếu định dạng. = 'pdf'. tăng ConverterError(u'xhtml2pdf không hỗ trợ định dạng đầu ra %s' % format) output_filename, format = Guess_format_and_filename(output_filename, format) input_file = document input_filename = document. tên đầu ra_tệp = mở(tên_tệp đầu ra, 'wb') kết quả = pisa. pisaDocument( input_file, output_file, path=input_filename, encoding='UTF-8', ) output_file. close() nếu kết quả. sai lầm. err_msg = 'Lỗi hiển thị %s. %s' % (tên_tệp đầu vào, kết quả. err) tăng ConverterError(err_msg) fd = Document(output_filename, mode='rb', delete_on_close=delete_on_close) return fd

Làm cách nào để chuyển đổi trang HTML sang PDF trong Django?

Mẫu HTML sang PDF ở Django .
Mở dự án Django của bạn hoặc tạo một dự án trống
Cài đặt tài liệu xhtml2pdf. .
Thêm một tiện ích. mô-đun py vào dự án của bạn
Viết hàm render_to_pdf. .
Sử dụng trong chế độ xem

Làm cách nào để chuyển đổi HTML sang PDF bằng Python?

Làm việc với PDFKit bằng Python .
# nhập các mô-đun cần thiết
nhập pdfkit
# định cấu hình pdfkit để trỏ đến cài đặt wkhtmltopdf của chúng tôi
cấu hình = pdfkit. cấu hình (wkhtmltopdf = r"C. \\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf. exe")
# chuyển đổi tập tin html sang tập tin pdf
pdfkit. from_file('mẫu. html', 'đầu ra

Làm cách nào để cài đặt xhtml2pdf trong Django?

Môi trường phát triển .
Tạo một virtualenv cho dự án. Điều này có thể nằm trong thư mục dự án, nhưng không thể kiểm soát phiên bản. .
Kích hoạt virtualenv của bạn. nguồn xhtml2pdfenv/bin/kích hoạt. .
Bước tiếp theo sẽ là cài đặt/nâng cấp các phụ thuộc từ các yêu cầu. tập tin txt. .
Chạy thử nghiệm để kiểm tra cấu hình của bạn

PISA ở Django là gì?

pisa là trình chuyển đổi html2pdf sử dụng Bộ công cụ ReportLab, HTML5lib và pyPdf . Nó hỗ trợ HTML5 và CSS2. 1 (và một số CSS 3). Nó được viết hoàn toàn bằng Python thuần túy nên nó độc lập với nền tảng.