Wkhtmltopdf ví dụ python

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách chuyển đổi HTML sang pdf bằng cách sử dụng wkhtmltopdf trong Django hoặc python. Đây là tệp pdf mà tôi đang tạo trong hướng dẫn này. Đầu tiên, chúng ta sẽ tìm hiểu cách cài đặt wkhtmltopdf và thiết lập cái này cho dự án Django hoặc python của bạn

wkhtmltopdf là gì?

wkhtmltopdf là trình bao bọc để chuyển đổi tệp HTML thành PDF

Yêu cầu

1. Truy cập trang web sau https. //wkhtmltopdf. tổ chức/tải xuống. html và tải xuống trình cài đặt wkhtmltopdf. Tôi đang tải xuống trình cài đặt wkhtmltopdf 64 bit vì tôi đang sử dụng máy Windows. Tập tin wkhtmltox. exe sẽ được tải xuống bằng cách nhấp vào 64 bit (hoặc bất kỳ)

2. Chạy wkhtmltox. exe để khởi chạy cài đặt. Trong tình huống của tôi, tôi đang thiết lập các tệp tại C/Program Files/wkhtmltopdf

3. Bây giờ điều hướng đến thư mục C/Program Files/wkhtmltopdf/bin. Sao chép wkhtmltopdf. exe và dán nó vào thư mục gốc của dự án Django của bạn.  

4. cài đặt pdfkit. pip cài đặt pdfkit

Tạo PDF từ HTML

Thêm tệp HTML vào thư mục mẫu dự án Django mà bạn muốn chuyển đổi thành pdf. Tệp HTML của tôi là pdf_template. html. Bạn có thể tải về từ đây

Đầu ra của tệp HTML trên sẽ như thế này

Wkhtmltopdf ví dụ python

Lượt xem. py

Bây giờ trong quan điểm của bạn. py thêm mã để chuyển đổi HTML sang PDF

# views.py
from django.conf import settings
from django.template.loader import get_template
from django.http import HttpResponse
import os
import pdfkit


# path to your wkhtmltopdf.exe file
wkhtml_to_pdf = os.path.join(
    settings.BASE_DIR, "wkhtmltopdf.exe")


def resume_pdf(request, *args, **kwargs):
    options = {
        'page-size': 'A4',
        'page-height': "13in",
        'page-width': "10in",
        'margin-top': '0in',
        'margin-right': '0in',
        'margin-bottom': '0in',
        'margin-left': '0in',
        'encoding': "UTF-8",
        'no-outline': None
    }

    template_path = 'pdf_template.html'
    template = get_template(template_path)
    
    context = {"name": "Areeba Seher"}
    html = template.render(context)

    config = pdfkit.configuration(wkhtmltopdf=wkhtml_to_pdf)

    pdf = pdfkit.from_string(html, False, configuration=config, options=options)

    # Generate download
    response = HttpResponse(pdf, content_type='application/pdf')

    response['Content-Disposition'] = 'attachment; filename="resume.pdf"'
    # print(response.status_code)
    if response.status_code != 200:
        return HttpResponse('We had some errors 
' + html + '
') return response

url. py

Thêm URL của chế độ xem trong url. py

# urls.py

from django.urls import path
from .views import resume_pdf

urlpatterns = [
    ......
    path('resume-pdf', resume_pdf, name="resume-pdf"),
    ......
]

Bây giờ hãy truy cập localhost/sơ yếu lý lịch-pdf. Tệp HTML của bạn sẽ được chuyển đổi và tải xuống thành pdf

Ghi chú. Đối với wkhtmltopdf, tôi thích sử dụng HTML CSS tùy chỉnh hơn. Nhưng bạn cũng có thể sử dụng bootstrap

Cách thêm ngắt trang trong wkhtmltopdf

Bạn có thể sử dụng các lớp CSS này để thêm dấu ngắt trang và giữ nội dung lại với nhau

.keep-together {
    page-break-inside: avoid;
}

.break-before {
    page-break-before: always;
}

.break-after {
    page-break-after: always;
}

I am heading on 2nd page

Nguồn. StackOverflow

Đó là tất cả. Nếu bạn thấy nó hữu ích thì hãy thể hiện tình yêu và sự ủng hộ bằng cách vỗ tay hoặc mua cà phê cho tôi. Và đừng quên chia sẻ nó với bạn bè của bạn. Trong trường hợp có bất kỳ vấn đề gì, bạn có thể bình luận tại đây hoặc bạn cũng có thể liên hệ trực tiếp với tôi thông qua LinkedIn của tôi

Những bài viết liên quan

HTML sang hình ảnh trong Django/Python

Tôi sẽ rất cảm kích nếu bạn đăng ký kênh YouTube của tôi, Let's Code More

⋅  6 bình luận đã được đăng

    Tháng một. 27, 2023, 11. 44p. m. - hochzeit

    Wow, bố cục blog tuyệt vời. Bạn đã viết blog được bao lâu rồi? . Giao diện tổng thể của trang web của bạn thật tuyệt vời, chưa nói đến nội dung

    Hồi đáp

    Tháng một. 28, 2023, 10. 24 giờ. m. – Areeba Seher

    Tôi rât cảm kich; . Vui lòng cho tôi biết nếu bạn muốn mua chủ đề này

    Hồi đáp

    Tháng một. 11, 2023, 8. 22 một. m. -nupcias

    ¡Me encanta este post. Leo tu blog muy a menudo y siempre ofreces grandes textos. Lo compartí en Facebook y a mis seguidores les encantó. ¡Seguid con el buen trabajo

    Hồi đáp

    Tháng một. 11, 2023, 8. 26 một. m. – Areeba Seher

    Cảm ơn bạn rất nhiều vì đã đánh giá cao và chia sẻ bài đăng trên blog của tôi trên Facebook của bạn. ❤️

    Hồi đáp

    Tháng mười hai. 23, 2022, 9 a. m. - hochzeitszeremonie

    Đó thực sự là một thông tin thú vị và hữu ích. Tôi hài lòng rằng bạn chỉ cần chia sẻ thông tin hữu ích này với chúng tôi. Hãy giữ cho chúng tôi được cập nhật như thế này. Cám ơn vì đã chia sẻ

    Làm cách nào để chuyển đổi nội dung HTML sang PDF bằng Python?

    # chuyển đổi tập tin html sang tập tin pdf. pdfkit. from_file('mẫu. html', 'đầu ra. .
    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 url sang file pdf

    Làm thế nào để sử dụng wkhtml?

    Mở cửa sổ nhắc lệnh. Cú pháp sử dụng công cụ khá đơn giản, nhập tên wkhtmltopdf, theo sau là URL của trang web và tên tệp PDF bạn muốn tạo, like so. Let's say you want to save a copy of a website, this is what the command will look like.