Làm cách nào để tải xuống pdf từ python?

Một cách phổ biến để tạo tệp PDF là lưu tệp Word dưới dạng. pdf, nhưng chúng ta cũng có thể tạo tệp PDF bằng Python

Ưu điểm? . Nhưng trước tiên, chúng ta sẽ xem cách tạo tệp PDF bằng Python

Trong hướng dẫn này, trước tiên chúng ta sẽ tạo một tệp PDF đơn giản và sau đó chúng ta sẽ tạo một tệp nâng cao hơn trông giống như tệp bên dưới

Hình ảnh của tác giảCách dễ dàng tạo tệp PDF bằng Python

Có nhiều cách khác nhau để tạo tệp PDF bằng Python, nhưng tôi thấy sử dụng các mẫu HTML là cách dễ nhất

Với tùy chọn này, chúng tôi có thể tạo các tệp PDF cơ bản và nâng cao trong vài phút

Cài đặt các thư viện

Để tạo file PDF chúng ta cần cài đặt các thư viện sau

pip install pdfkit
pip install jinja2

Trước khi chúng tôi sử dụng thư viện_______11_______, chúng tôi cần cài đặt wkhtmltopdf. Các bước cài đặt tùy thuộc vào hệ điều hành của bạn

# macOS (you need to install brew first)
brew install homebrew/cask/wkhtmltopdf
# Ubuntu
sudo apt-get install wkhtmltopdf

Trong trường hợp bạn đang dùng Windows, bạn có thể tải xuống bộ cài đặt tại đây

Bây giờ, hãy tạo một tệp PDF đơn giản bằng Python

Bước 1. Tạo một mẫu HTML với trình giữ chỗ

Trước tiên, chúng ta cần tạo một tài liệu HTML mà chúng ta sẽ sử dụng làm mẫu sau này

Để tạo tài liệu HTML này, chúng ta sẽ sử dụng một trang web có tên là HTML Editor. Trên trang web này, chúng tôi có thể nhập văn bản trong trình chỉnh sửa trực quan ở bên trái và tạo mã HTML của nó trong trình chỉnh sửa nguồn ở bên phải

Đây là văn bản tôi đã giới thiệu trong trình chỉnh sửa (có thể tìm thấy tệp này trên GitHub của tôi)

Lưu ý các trình giữ chỗ tôi đã tạo bằng cách sử dụng {{}}. Sau này chúng ta sẽ giới thiệu các giá trị bên trong các dấu ngoặc nhọn này bằng Python

Đây là mã HTML được tạo bởi trình soạn thảo HTML

Chúng tôi cần sao chép mã HTML này, tạo một tệp HTML trong thư mục làm việc của chúng tôi và dán mã vào đó

Bước 2. Tạo một biến Python cho mỗi trình giữ chỗ

Đầu tiên, chúng tôi nhập jinja2 và pdfkit. Tôi có một trình giữ chỗ có tên là {{today_date}}, vì vậy tôi cũng nhập

# macOS (you need to install brew first)
brew install homebrew/cask/wkhtmltopdf
# Ubuntu
sudo apt-get install wkhtmltopdf
0 để lấy ngày hôm nay

Sau đó, chúng tôi tạo một biến Python cho mỗi trình giữ chỗ trong tài liệu HTML của mình và chúng tôi tạo một từ điển ghép các trình giữ chỗ với các biến Python

Lưu ý rằng tôi đã đặt tên cho mỗi biến Python là trình giữ chỗ, nhưng chúng có thể có các tên khác nhau

Bước 3. Tạo môi trường cho mẫu của chúng tôi và xuất PDF

Bây giờ là lúc sử dụng jinja2 để tạo môi trường cho mẫu của chúng tôi

template_loader = jinja2.FileSystemLoader(‘./’)
template_env = jinja2.Environment(loader=template_loader)

Sau đó, chúng tôi chỉ định mẫu nào chúng tôi đang sử dụng. Trong trường hợp của tôi, tôi đặt tên tệp HTML là

# macOS (you need to install brew first)
brew install homebrew/cask/wkhtmltopdf
# Ubuntu
sudo apt-get install wkhtmltopdf
1. Sau đó, chúng tôi hiển thị từ điển mà chúng tôi đã tạo ở bước 2

template = template_env.get_template(‘basic-template.html’)
output_text = template.render(context)

Tiếp theo, chúng tôi thêm wkhtmltopdf vào cấu hình pdfkit. Để làm như vậy, chúng ta cần chỉ định đường dẫn mà wkhtmltopdfđã được cài đặt

Đây là lệnh bạn cần chạy để có được đường dẫn này

# macOS/Linux
>>> which wkhtmltopdf
'/usr/local/bin/wkhtmltopdf'
# Windows
>>> where wkhtmltopdf
'C:\Program Files\wkhtmltopdf'

Cuối cùng, chúng tôi xuất tệp PDF bằng phương pháp

# macOS (you need to install brew first)
brew install homebrew/cask/wkhtmltopdf
# Ubuntu
sudo apt-get install wkhtmltopdf
5

Lưu ý rằng tôi đã thêm một tham số CSS vào phương thức

# macOS (you need to install brew first)
brew install homebrew/cask/wkhtmltopdf
# Ubuntu
sudo apt-get install wkhtmltopdf
5. Đây là tùy chọn, nhưng tôi thấy cần phải làm cho kích thước phông chữ của các đoạn trong tệp PDF của chúng tôi lớn hơn

Tôi đã tạo một tệp

# macOS (you need to install brew first)
brew install homebrew/cask/wkhtmltopdf
# Ubuntu
sudo apt-get install wkhtmltopdf
7 trong thư mục làm việc của mình và viết mã bên dưới

p { font-size: 24px; }
li { font-size: 24px; }

Đó là nó. Đây là tệp PDF chúng tôi đã tạo bằng Python

Mã chúng tôi đã viết và các tệp được sử dụng trong hướng dẫn này có thể được tìm thấy trên GitHub của tôi

Bây giờ để tạo một tệp PDF nâng cao hơn như hóa đơn bên dưới, chúng tôi cần tải xuống mẫu HTML và tạo một số trình giữ chỗ. Trong video hướng dẫn này, tôi chỉ cho bạn cách thực hiện

Tự động hóa cuộc sống của bạn với Python. Nhận bảng cheat tự động hóa MIỄN PHÍ của tôi bằng cách tham gia danh sách email của tôi với hơn 10 nghìn người

Nếu bạn thích đọc những câu chuyện như thế này và muốn hỗ trợ tôi với tư cách là một nhà văn, hãy cân nhắc đăng ký để trở thành thành viên Medium. Đó là 5 đô la một tháng, cho phép bạn truy cập không giới hạn vào hàng nghìn hướng dẫn về Python và các bài báo về Khoa học dữ liệu. Nếu bạn đăng ký bằng liên kết của tôi, tôi sẽ kiếm được một khoản hoa hồng nhỏ mà bạn không phải trả thêm phí