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+
Cài đặt Xvfd
$ sudo apt-get install xvfb
Cài đặt phông chữ
$ sudo apt-get install xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic
Cài đặt wkhtmltopdf
$ sudo apt-get install wkhtmltopdf
Cài đặt flashplugin
$ sudo apt-get install flashplugin-nonfree
từ git
$ git clone git@github.com:qoda/python-wkhtmltopdf.git $ cd python-wkhtmltopdf $ python setup.py install
Sử dụng từ lớp
from wkhtmltopdf import WKHtmlToPdf wkhtmltopdf = WKHtmlToPdf[ url='//www.example.com', output_file='~/example.pdf', ] wkhtmltopdf.render[]
Sử dụng từ phương pháp
from wkhtmltopdf import wkhtmltopdf wkhtmltopdf[url='example.com', output_file='~/example.pdf']
Sử dụng từ dòng lệnh [đã cài đặt]
$ python -m wkhtmltopdf.main example.com ~/example.pdf
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['//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['//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