Cảnh báo. Phiên bản trong kho debian/ubuntu bị giảm chức năng [vì nó được biên dịch mà không có bản vá QT wkhtmltopdf], chẳng hạn như thêm đường viền, đầu trang, chân trang, TOC, v.v. Để sử dụng tùy chọn này, bạn nên cài đặt nhị phân tĩnh từ trang web wkhtmltopdf hoặc bạn có thể sử dụng tập lệnh này
Cách sử dụngĐối với các nhiệm vụ đơn giản
import pdfkit async def f[]: await pdfkit.from_url['//google.com', 'out.pdf'] await pdfkit.from_file['test.html', 'out.pdf'] await pdfkit.from_string['Hello!', 'out.pdf']
Bạn có thể chuyển một danh sách có nhiều URL hoặc tệp
await pdfkit.from_url[['google.com', 'yandex.ru', 'engadget.com'], 'out.pdf'] await pdfkit.from_file[['file1.html', 'file2.html'], 'out.pdf']
Ngoài ra, bạn có thể chuyển một tệp đã mở
with open['file.html'] as f: await pdfkit.from_file[f, 'out.pdf']
Nếu bạn muốn tiếp tục xử lý tệp PDF được tạo, bạn có thể đọc nó thành một biến
# Use False instead of output path to save pdf to a variable pdf = await pdfkit.from_url['//google.com', False]
Bạn có thể chỉ định tất cả các tùy chọn wkhtmltopdf. Bạn có thể thả '--' vào tên tùy chọn. Nếu tùy chọn không có giá trị, hãy sử dụng Không có, Sai hoặc '' cho giá trị chính tả. Đối với các tùy chọn có thể lặp lại [bao gồm. allow, cookie, custom-header, post, postfile, run-script, replace], bạn có thể sử dụng danh sách hoặc bộ dữ liệu. Với tùy chọn cần nhiều giá trị [e. g. --custom-header Bí mật ủy quyền], chúng tôi có thể sử dụng 2-tuple [xem ví dụ bên dưới]
options = { 'page-size': 'Letter', 'margin-top': '0.75in', 'margin-right': '0.75in', 'margin-bottom': '0.75in', 'margin-left': '0.75in', 'encoding': "UTF-8", 'custom-header' : [ ['Accept-Encoding', 'gzip'] ] 'cookie': [ ['cookie-name1', 'cookie-value1'], ['cookie-name2', 'cookie-value2'], ], 'no-outline': None } await pdfkit.from_url['//google.com', 'out.pdf', options=options]
Theo mặc định, PDFKit sẽ hiển thị tất cả đầu ra
$ sudo apt-get install wkhtmltopdf3. Nếu bạn không muốn, bạn cần vượt qua tùy chọn
$ sudo apt-get install wkhtmltopdf4
options = { 'quiet': '' } await pdfkit.from_url['google.com', 'out.pdf', options=options]
Do cú pháp lệnh wkhtmltopdf, các tùy chọn TOC và Cover phải được chỉ định riêng. Nếu bạn cần bảo hiểm trước TOC, hãy sử dụng tùy chọn
$ sudo apt-get install wkhtmltopdf5
toc = { 'xsl-style-sheet': 'toc.xsl' } cover = 'cover.html' await pdfkit.from_file['file.html', options=options, toc=toc, cover=cover] await pdfkit.from_file['file.html', options=options, toc=toc, cover=cover, cover_first=True]
Bạn có thể chỉ định các tệp CSS bên ngoài khi chuyển đổi tệp hoặc chuỗi bằng tùy chọn css
Cảnh báo Đây là một cách giải quyết cho lỗi này trong wkhtmltopdf. Bạn nên thử tùy chọn --user-style-sheet trước
$ sudo apt-get install wkhtmltopdf0
Bạn cũng có thể chuyển bất kỳ tùy chọn nào thông qua thẻ meta trong HTML của mình
$ sudo apt-get install wkhtmltopdf1Cấu hình
Mỗi lệnh gọi API có một tham số cấu hình tùy chọn. Đây phải là một phiên bản của lệnh gọi API
$ sudo apt-get install wkhtmltopdf6. Nó lấy các tùy chọn cấu hình làm tham số ban đầu. Các tùy chọn có sẵn là
$ sudo apt-get install wkhtmltopdf
3 - vị trí của nhị phân$ sudo apt-get install wkhtmltopdf
3. Theo mặc định,$ sudo apt-get install wkhtmltopdf
9 sẽ cố gắng xác định vị trí này bằng cách sử dụng$ brew install caskroom/cask/wkhtmltopdf
0 [trên các hệ thống loại UNIX] hoặc$ brew install caskroom/cask/wkhtmltopdf
1 [trên Windows]$ brew install caskroom/cask/wkhtmltopdf
2 - tiền tố cho$ sudo apt-get install wkhtmltopdf
9 thẻ meta cụ thể - theo mặc định, đây là$ brew install caskroom/cask/wkhtmltopdf
4
Ví dụ - khi
$ sudo apt-get install wkhtmltopdf3 không có trên
$ brew install caskroom/cask/wkhtmltopdf6
$ sudo apt-get install wkhtmltopdf2Xử lý sự cố
$ brew install caskroom/cask/wkhtmltopdf
7Đảm bảo rằng bạn có wkhtmltopdf trong $PATH hoặc được đặt qua cấu hình tùy chỉnh [xem phần trước]. nơi wkhtmltopdf trong Windows hoặc wkhtmltopdf nào trên Linux sẽ trả về đường dẫn thực tế thành nhị phân
$ brew install caskroom/cask/wkhtmltopdf
8Lỗi này có nghĩa là PDFKit không thể xử lý đầu vào. Bạn có thể thử chạy trực tiếp một lệnh từ thông báo lỗi và xem lỗi nào gây ra lỗi [trên một số phiên bản wkhtmltopdf, điều này có thể do lỗi phân đoạn]