Hướng dẫn wkhtmltopdf windows - wkhtmltopdf windows

Trợ giúp

Odoo is the world's easiest all-in-one management software. It includes hundreds of business apps:
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Kế toán
  • Tồn kho
  • PoS
  • Project management
  • MRP

Take the tour

  • Tất cả diễn đàn
  • Chủ đề
  • Con người
  • Tag
  • Huy chương
  • Về chúng tôi

Hướng dẫn wkhtmltopdf windows - wkhtmltopdf windows

Thanks for your subscription!

Câu hỏi đã đóng với nguyên nhân: không liên quan hoặc hết hạn

bởi

Ermin Trevisan

trên 05/10/2021 20:29:4405/10/2021 20:29:44

How to install wkhtmltopdf in windows?

1Trả lời

On page https://wkhtmltopdf.org/downloads.html there's Windows Installer. Please specify the problem.

I'm trying to convert some HTML files stored locally on my computer to PDF format through a Python script, and I've tried xhtml2pdf but I ran into countless errors and decided to stop using it.

Nội dung chính ShowShow

  • Dẫn nhập
  • Lựa chọn pdfkit ?
  • Cài đặt thư viện
  • Cài đặt wkhtmltopdf
  • Cài đặt pdfkit.
  • Sử dụng pdfkit với Python
  • Sử dụng các các chức năng mặc định.
  • Convert một trang web sang pdf
  • Convert một file html sang pdf
  • Convert một đoạn text sang pdf
  • Thêm một chút nâng cao với pdfkit
  • Thay đổi các cấu hình mặc định.
  • Xử lý trường hợp không có quyền thiết lập $path
  • Convert nhiều nội dung và chung một file.

Đây là một tính năng khá hay của pdfkit. Dưới đây là một ví dụ, thực hiện nối ghép các trang web vào một file cuối cùng.

Các bạn có thể làm tương tự với các function

Collecting pdfkit
  Downloading pdfkit-0.6.1-py3-none-any.whl (12 kB)
Installing collected packages: pdfkit
Successfully installed pdfkit-0.6.1
8,
Collecting pdfkit
  Downloading pdfkit-0.6.1-py3-none-any.whl (12 kB)
Installing collected packages: pdfkit
Successfully installed pdfkit-0.6.1
9

Một bài viết ngắn giới thiệu một thư viện nho nhỏ. Cảm ơn các bạn đã đọc bài của tôi!Feb 4, 2012 at 21:50

I'm trying to convert some HTML files stored locally on my computer to PDF format through a Python script, and I've tried xhtml2pdf but I ran into countless errors and decided to stop using it. Amit

Nội dung chính Show1 gold badge2 silver badges7 bronze badges

Dẫn nhập

Lựa chọn pdfkit ?Aug 1, 2012 at 12:58

Cài đặt thư việnstuudent

Cài đặt wkhtmltopdf4 silver badges11 bronze badges

Cài đặt pdfkit.

  • Sử dụng pdfkit với Python
  • Sử dụng các các chức năng mặc định.

    def html_to_pdf():
       with tempfile.NamedTemporaryFile(suffix='.html', delete=False) as temp:
           temp.write(html.encode('windows-1252'))
           temp.seek(0)
           pdfkit.from_file(temp.name, 'out.pdf') 
           temp.close()
           pdf = open('out.pdf', 'r+b')
           response = HttpResponse(pdf.read(), content_type='application/pdf')
           response['Content-Disposition'] = 'attachment; filename=out.pdf'
           pdf.close()
           # remove the locally created pdf file.
           os.remove(temp.name)
           return response
    

Convert một trang web sang pdfMar 27, 2020 at 13:20

Dẫn nhập

Lựa chọn pdfkit ?

Lựa chọn pdfkit ?

Cài đặt thư viện

Cài đặt wkhtmltopdf

Cài đặt thư viện

Pdfkit sử dụng enginee do thư viện wkhtmltopdf cung cấp. Để sử dụng được pdfkit thì ta phải cài đặt wkhtmltopdf trước.

Cài đặt wkhtmltopdf

Đây là một opensoucce, chúng ta có thể download tại https://wkhtmltopdf.org/index.html, chú ý download đúng phiên bản tương ứng với hệ điều hành mà bạn đang sử dụng.

Riêng với hệ điều hành Windows, khi cài đặt các bạn nhớ lưu ý đường dẫn đến vị trí cài đặt của của wkhtmltopdf (thường là C:\Program Files\wkhtmltopdf). Sau đó, thực hiện mở thư mục chứa đường dẫn này vào vào thư mục con sâu hơn là \bin (

pip install pdfkit
6) vào class-path của windows. Việc cài đặt PATH, các bạn có thể tìm kiếm trên google nhé.

Sau khi cài đặt & set class path xong, bạn hãy mở windows terminal (mở cmd mới nhé) ra và gõ vào dòng lệnh sau:

pip install pdfkit
7

wkhtmltopdf 0.12.5 (with patched qt)

Nếu có dữ liệu như trên thì có nghĩa là việc cài đặt wkhtmltopdf đã thành công.

Với hệ điều hành Linux, nếu user của bạn không phải là root, hãy thực hiện set đường dẫn đến thư mục chứa class của wkhtmltopdf để có thể sử dụng wkhtmltopdf trên commandline nhé.

Cài đặt pdfkit.

Sử dụng câu lệnh sau để cài đặt pdfkit

pip install pdfkit

Kết quả hiện ra:

Collecting pdfkit
  Downloading pdfkit-0.6.1-py3-none-any.whl (12 kB)
Installing collected packages: pdfkit
Successfully installed pdfkit-0.6.1

Sử dụng pdfkit với Python

Thư viện pdfkit cung cấp khá đầy đủ các sample, các bạn có thể tham khảo thêm tại: https://pypi.org/project/pdfkit/

Sử dụng các các chức năng mặc định.

Convert một trang web sang pdf

Mở terminal, di chuyển đến một thư mục ... "dễ nhớ"và thực hiện một số dòng lệnh sau: (Nhớ chuyển từ terminal sang mode python bằng cách gõ

pip install pdfkit
8 trước nhé)

>>> import pdfkit
>>> pdfkit.from_url("https://viblo.asia/newest", "url2pdf.pdf")

Sau đó đợi thư viện làm việc và phản hồi lại.

Loading pages (1/6)
Counting pages (2/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
Done
True

Như này là kết quả đã thành công, mở thư mục vừa di chuyển đến, ta sẽ thấy file url2pdf.pdf

Convert một file html sang pdf

Trước tiên, thực hiện tạo ra một file .html và đặt nó vào một thư mục, trong ví dụ này, tôi dùng file có tên

pip install pdfkit
9.

Mở terminal và thực hiện di chuyển đến thưc mục chứa file

pip install pdfkit
9, sau đó chuyển sang mode nhập code python

>>> import pdfkit
>>> pdfkit.from_file('report.html', 'report.pdf')

Chờ một chút để hệ thống xử lý và đưa ra thông báo.

Loading pages (1/6)
Counting pages (2/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
Done
True

Sau đó ta có thể mở file report.pdf để xem kết quả convert:

Lưu ý: để có thể convert đúng dữ liệu unicode thì là file .html phải có thẻ

Collecting pdfkit
  Downloading pdfkit-0.6.1-py3-none-any.whl (12 kB)
Installing collected packages: pdfkit
Successfully installed pdfkit-0.6.1
1 với nội dung như bên dưới đặt tại thẻ
Collecting pdfkit
  Downloading pdfkit-0.6.1-py3-none-any.whl (12 kB)
Installing collected packages: pdfkit
Successfully installed pdfkit-0.6.1
2

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Convert một đoạn text sang pdf

>>> import pdfkit
>>>  pdfkit.from_string("convert dữ liệu string sang pdf", "string.pdf")

Chờ một chút để hệ thống xử lý và đưa ra thông báo.

Loading pages (1/6)
Counting pages (2/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
Done
True

Sau đó ta có thể mở file report.pdf để xem kết quả convert:

Lưu ý: để có thể convert đúng dữ liệu unicode thì là file .html phải có thẻ

Collecting pdfkit
  Downloading pdfkit-0.6.1-py3-none-any.whl (12 kB)
Installing collected packages: pdfkit
Successfully installed pdfkit-0.6.1
1 với nội dung như bên dưới đặt tại thẻ
Collecting pdfkit
  Downloading pdfkit-0.6.1-py3-none-any.whl (12 kB)
Installing collected packages: pdfkit
Successfully installed pdfkit-0.6.1
2

pip install pdfkit
0

Convert một đoạn text sang pdf

Sau đó ta có thể mở file string.pdf để xem kết quả convert --> Lỗi font chữ unicode

Để giải quyết việc này, pdfkit cho phép các bạn thực hiện khai báo thêm một số "cấu hình".

Kết quả thu được:

pdfkit cung cấp khá nhiều các tham số cấu hình khác dựa trên bộ tham số của wkhtmltopdf. Chúng ta sẽ làm quen với một số tham số ở phần tiếp theo.

pip install pdfkit
1

Thêm một chút nâng cao với pdfkit

Thay đổi các cấu hình mặc định.

Pdfkit cung cấp việc thay đổi một số tham số cầu hình thường gặp giống như lúc chúng ta cấu hình in một văn bản ra máy in văn phòng:

Collecting pdfkit
  Downloading pdfkit-0.6.1-py3-none-any.whl (12 kB)
Installing collected packages: pdfkit
Successfully installed pdfkit-0.6.1
3: Khổ giấy của file pdf sau khi convert. Mặc định là A4, có thể thay đổi thành cách giá trị Letter, A5,...

Collecting pdfkit
  Downloading pdfkit-0.6.1-py3-none-any.whl (12 kB)
Installing collected packages: pdfkit
Successfully installed pdfkit-0.6.1
4: Mặc định là khổ giấy xoay dọc (Portrait), có thể thay đổi sang xoay ngang (Landscape)

Collecting pdfkit
  Downloading pdfkit-0.6.1-py3-none-any.whl (12 kB)
Installing collected packages: pdfkit
Successfully installed pdfkit-0.6.1
5: Hiển thị log trong quá trình convert sang pdf. Giá trị ưng với các level đặt log (INFO, WARNING,...). Thường đặt '' trên production để tránh lỗi hiển thị terminal.

pip install pdfkit
2

Collecting pdfkit Downloading pdfkit-0.6.1-py3-none-any.whl (12 kB) Installing collected packages: pdfkit Successfully installed pdfkit-0.6.1 6: Dots Per Inch - Độ đậm nét của ký tự trên file pdf. Mặc định là 96. Tham số này không nên thay đổi. Với Windows, UNIX thì wkhtmltopdf sẽ reset về 96pdi, nếu chuyển qua convert trên máy OSX thì mới có thể tăng số lượng dpi lên được.

Collecting pdfkit
  Downloading pdfkit-0.6.1-py3-none-any.whl (12 kB)
Installing collected packages: pdfkit
Successfully installed pdfkit-0.6.1
7: Giãn cách từ vị trí các mép tương ứng đến phần dữ liệu đầu tiên của nội dung của file. Tùy theo nhu cầu mà chúng ta thay đổi hoặc giữ nguyên mặc định.

Các tham số khác (enable/disable css, javascript, ...), các bạn có thể tham khảo thêm từ help của wkhtmltopdf

pip install pdfkit
3

Xử lý trường hợp không có quyền thiết lập $path

Đôi khi bạn không có quyền thực hiện set $PATH trên hệ thống mà vẫn muốn dùng luôn pdfkit, pdfkit sẽ cung cấp một tham số để bạn thực hiện trỏ đường dẫn đến vị trí cài đặt wkhtmltopdf.

pip install pdfkit
4

Để xem đường dẫn của thư viện wkhtmltopdf, trên Unix, bạn gõ

/usr/local/bin/wkhtmltopdf

Trên windows thì dùng tính năng search để tìm xem file wkhtmltopdf.exe ở đâu. Sao chép đường

Việc trỏ config trực tiếp này sẽ giúp chúng ta ignore được các lỗi:

pip install pdfkit
5

Các bạn có thể làm tương tự với các function

Collecting pdfkit
  Downloading pdfkit-0.6.1-py3-none-any.whl (12 kB)
Installing collected packages: pdfkit
Successfully installed pdfkit-0.6.1
8,
Collecting pdfkit
  Downloading pdfkit-0.6.1-py3-none-any.whl (12 kB)
Installing collected packages: pdfkit
Successfully installed pdfkit-0.6.1
9


Một bài viết ngắn giới thiệu một thư viện nho nhỏ. Cảm ơn các bạn đã đọc bài của tôi!