Làm cách nào để sử dụng xhtml2pdf trong python?

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. kiên 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. nhận dạng,)))
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

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ố cục 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

pip install Weasyprint

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

weasyprint --version

Tạo 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

weasyprint http://your_website_address.org ./path_for_storing_your_PDF/file_name.pdf

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

Lịch sử

Đây là những cột mốc quan trọng và những người duy trì dự án

  • 2000-2007, dự án thương mại, Spirito. de, được viết bởi Dirk Holtwich

  • 2007-2010 Dirk Holtwich (dự án tên là “Pisa”, dự án được phát hành dưới dạng GPL)

  • 2010-2012 Dirk Holtwick (dự án có tên “xhtml2pdf”, đổi giấy phép thành Apache)

  • 2012-2015 Chris Glass (@chrisglass)

  • 2015-2016 Benjamin Bach (@benjaoming)

  • 2016-2018 Sam Spencer (@LegoStormtroopr)

  • 2018-Hiện tại Luis Zarate (@luisza)

Để biết thêm lịch sử, hãy xem CHANGELOG. tập tin txt

xhtml2pdf trong Python là gì?

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

Việc sử dụng xhtml2pdf là gì?

xhtml2pdf cho phép người dùng tạo tài liệu PDF từ nội dung HTML một cách dễ dàng và với khả năng kiểm soát luồng tự động, chẳng hạn như phân trang và giữ văn bản cùng nhau . Mô-đun Python có thể được sử dụng trong mọi môi trường Python, kể cả Django. Công cụ dòng lệnh là một chương trình độc lập có thể được thực thi từ dòng lệnh.

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 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 html sang tệp 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