Làm cách nào để sử dụng bình wkhtmltopdf?

Trình bao bọc python đơn giản cho lib wkhtmltopdf (http. //mã số. Google. com/p/wkhtmltopdf/) có hỗ trợ flash

  • Xvfd
  • wkhtmltopdf
  • flashplugin-không miễn phí
  • con trăn 2. 5+

  1. Cài đặt Xvfd

    $ sudo apt-get install xvfb
    
  2. Cài đặt phông chữ

    $ sudo apt-get install xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic
    
  3. Cài đặt wkhtmltopdf

    $ sudo apt-get install wkhtmltopdf
    
  4. Cài đặt flashplugin

    $ sudo apt-get install flashplugin-nonfree
    

  1. từ git

    $ git clone [email protected]:qoda/python-wkhtmltopdf.git
    $ cd python-wkhtmltopdf
    $ python setup.py install
    

  1. Sử dụng từ lớp

    from wkhtmltopdf import WKHtmlToPdf
    
    wkhtmltopdf = WKHtmlToPdf(
        url='http://www.example.com',
        output_file='~/example.pdf',
    )
    wkhtmltopdf.render()
    
  2. Sử dụng từ phương pháp

    from wkhtmltopdf import wkhtmltopdf
    
    wkhtmltopdf(url='example.com', output_file='~/example.pdf')
    
  3. Sử dụng từ dòng lệnh (đã cài đặt)

    $ python -m wkhtmltopdf.main example.com ~/example.pdf
    
  4. Sử dụng api (đã cài đặt)

    ________số 8_______

  • url - url để chuyển sang pdf
  • output_file - tệp pdf mà bạn muốn tạo

  • screen_độ phân giải (mặc định. [1024, 768])
  • color_deep (mặc định. 24 (bit))
  • flash_plugin (mặc định. Thật)
  • disable_javascript (mặc định. Sai)
  • độ trễ (mặc định. 0 (mili giây))
  • định hướng (mặc định. Chân dung)
  • dpi (mặc định. 100)
  • no_background (mặc định. Sai)
  • thang độ xám (mặc định. Sai)
  • http_username (mặc định. Không có)
  • http_password (mặc định. Không có)
  • header_html (mặc định. Không có)
  • footer_html (mặc định. Không có)

Có nhiều cách tiếp cận để tạo PDF trong python. pdfkit là một trong những cách tiếp cận tốt hơn vì nó biến HTML thành PDF với nhiều định dạng hình ảnh, biểu mẫu HTML và các tài liệu có thể in phức tạp khác

cài đặt pdfkit. Bạn có thể cài đặt nó với pip bằng lệnh sau

pip install pdfkit

Để làm cho pdfkit hoạt động hoàn hảo, chúng tôi phải cài đặt wkhtmltopdf xử lý hình ảnh và những thứ phức tạp khác. Để biết thêm về wkhtmltopdf, vui lòng truy cập http. //wkhtmltopdf. tổ chức/

Cách sử dụng cơ bản của pdfkit

Chúng ta có thể tạo một tài liệu PDF bằng pdfkit theo 3 cách. Họ là 1. từ URL, 2. từ một tệp html và 3. từ chuỗi

1. Tạo PDF từ URL. Tập lệnh sau cung cấp cho chúng tôi tệp pdf từ URL trang web

import pdfkit
pdfkit.from_url('http://micropyramid.com', 'micro.pdf')

2. Tạo PDF từ tệp. Đoạn script sau cung cấp cho chúng tôi tệp pdf từ tệp HTML

import pdfkit
pdfkit.from_file('micropyramid.html', 'micro.pdf')

3. Tạo PDF từ chuỗi. Đoạn script sau cung cấp cho chúng tôi tệp pdf từ chuỗi

import pdfkit
pdfkit.from_string('MicroPyramid', 'micro.pdf')

Cách sử dụng nâng cao của pdfkit

Chúng ta có thể chuyển một số tùy chọn cho chức năng tạo tệp pdf pdfkit kiểm soát kích thước trang, lề và nhiều tùy chọn khác. Đây là một ví dụ về cách chúng tôi vượt qua các tùy chọn

options = {
'page-size': 'A4',
'margin-top': '0.75in',
'margin-right': '0.75in',
'margin-bottom': '0.75in',
'margin-left': '0.75in',
}
pdfkit.from_url('http://micropyramid.com', 'micro.pdf', options=options)

Vui lòng truy cập http. //wkhtmltopdf. org/cách sử dụng/wkhtmltopdf. txt, để biết nhiều tùy chọn khác

Cách sử dụng pdfkit của Django. Chúng tôi cũng có thể sử dụng pdfkit để tạo các tệp pdf trong Django. Sau đây là tập lệnh mẫu để tạo tệp pdf từ HTML trong Django

from django.template.loader import get_template 
from django.template import Context
import pdfkit
template = get_template("output_pdf.html")
context = Context({"data": data}) # data is the context data that is sent to the html file to render the output.
html = template.render(context) # Renders the template with the context data.
pdfkit.from_string(html, 'out.pdf')
pdf = open("out.pdf")
response = HttpResponse(pdf.read(), content_type='application/pdf') # Generates the response as pdf response.
response['Content-Disposition'] = 'attachment; filename=output.pdf'
pdf.close()
os.remove("out.pdf") # remove the locally created pdf file.
return response # returns the response.

Đôi khi trên máy chủ, chúng tôi có thể gặp sự cố wkhtmltopdf. không thể kết nối với máy chủ X. Điều này là do cài đặt tiêu chuẩn của wkhtmltopdf, yêu cầu xserver. Bạn nên tải xuống một phiên bản biên dịch sẵn. Nếu bạn thực hiện các dòng sau trên trình bao của mình, nó sẽ được sửa