Báo cáo trăn pdf

Trong một bài viết trước, chúng tôi đã nói về một số cách để đọc tệp PDF bằng Python. Bài đăng này sẽ bao gồm hai gói được sử dụng để tạo tệp PDF bằng Python, bao gồm PDFKit và Báo cáo. pdfkit và ReportLab

Tạo các tệp pdf với python và pdfkit

PDFKIT là thư viện đầu tiên của tôi được học để tạo các tệp PDF. Một tính năng hay của PDFKit là bạn có thể sử dụng nó để tạo tệp PDF từ URL. Để bắt đầu, bạn cần cài đặt nó cùng với một tiện ích gọi là wkhtmltopdf. Sử dụng PIP để cài đặt PDFKIT từ PYPI. là thư viện đầu tiên tôi học để tạo tệp PDF. Một tính năng hay của pdfkit là bạn có thể sử dụng nó để tạo tệp PDF từ URL. Để bắt đầu, bạn cần cài đặt nó cùng với tiện ích có tên wkhtmltopdf. Sử dụng pip để cài đặt pdfkit từ PyPI

pip install pdfkit

Khi bạn đã thiết lập, bạn có thể bắt đầu sử dụng pdfkit. Trong ví dụ dưới đây, chúng tôi tải xuống trang chính của Wikipedia, dưới dạng tệp PDF. Để làm cho pdfkit hoạt động, bạn cần thêm wkhtmltopdf vào đường dẫn của bạn hoặc định cấu hình pdfkit để chỉ ra nơi lưu trữ thực thi [tùy chọn sau được sử dụng bên dưới]. pdfkit. Trong ví dụ bên dưới, chúng tôi tải xuống trang chính của Wikipedia dưới dạng tệp PDF. Để pdfkit hoạt động, bạn cần thêm wkhtmltopdf vào PATH của mình hoặc định cấu hình pdfkit để trỏ đến nơi tệp thực thi được lưu trữ [tùy chọn thứ hai được sử dụng bên dưới]

Tải xuống một trang web dưới dạng PDF

# import package
import pdfkit

# configure pdfkit to point to our installation of wkhtmltopdf
config = pdfkit.configuration[wkhtmltopdf = r"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe"]

# download Wikipedia main page as a PDF file
pdfkit.from_url["//en.wikipedia.org/wiki/Main_Page", "sample_url_pdf.pdf", configuration = config]

Bạn có thể đặt đường dẫn đầu ra thành FALSE, sẽ trả lại phiên bản nhị phân của PDF thành Python, thay vì tải trang web vào tệp bên ngoài

pdfkit.from_url["//en.wikipedia.org/wiki/Main_Page", output_path = False, configuration = config]

Cách tạo PDF từ HTML

Một trong những tính năng đẹp nhất của PDFKIT là bạn có thể sử dụng nó để tạo các tệp PDF từ HTML, bao gồm từ các chuỗi HTML mà bạn truyền trực tiếp trong Python. pdfkit là bạn có thể sử dụng nó để tạo các tệp PDF từ HTML, kể cả từ các chuỗi HTML mà bạn chuyển trực tiếp bằng Python

s = """

Sample PDF file from HTML



First line...

Second line...

Third line...

""" pdfkit.from_string[s, output_path = "new_file.pdf", configuration = config]

Ngoài ra, PDFKit có thể tạo các tệp PDF bằng cách đọc các tệp HTML. pdfkit có thể tạo tệp PDF bằng cách đọc tệp HTML

pdfkit.from_file["sample_html_file.html", output_path = "new_file2.pdf", configuration = config]

Bạn cũng có thể tạo các tệp PDF với HTML / CSS phức tạp hơn. Bạn chỉ cần chuyển HTML dưới dạng chuỗi hoặc lưu trữ nó trong tệp có thể được chuyển cho PDFKit. Hãy cùng làm một ví dụ khác, nhưng lần này, chúng tôi sẽ tạo một bảng bằng HTML và CSS. pdfkit. Hãy làm một ví dụ khác, nhưng lần này, chúng ta sẽ tạo một bảng bằng HTML và CSS

Tạo bảng trong tệp PDF

table_html = """



table, th, td {
  border: 1px solid black;
}

table {
  width: 100%;
}




Sample Table

Field 1 Field 2
x1 x2
x3 x4
""" pdfkit.from_string[table_html, output_path = "sample_table.pdf", configuration = config]

Create the PDF files with Python and Report

Gói tiếp theo mà chúng tôi sẽ thảo luận là Báo cáo. Báo cáo là một trong những thư viện phổ biến nhất để tạo các tệp PDF. Báo cáoPhòng thí nghiệm. ReportLab là một trong những thư viện phổ biến nhất để tạo tệp PDF

Bạn có thể cài đặt Báo cáo bằng PIP. ReportLab sử dụng pip

pip install reportlab

Dưới đây, một ví dụ ban đầu để tạo PDF đơn giản với một dòng văn bản. First first of input code -module Canvas from Report. Sau đó, chúng tôi tạo ra một thể hiện của Layer Canvas [lưu ý Cap Caps lần này] với tên của tệp mà chúng tôi muốn tạo. Thứ ba, chúng tôi sử dụng dây rút để viết ra một dòng văn bản. [50, 800] là giới hạn để đặt văn bản [điều kiện này có thể mất một số thử nghiệm]. Cuối cùng, chúng tôi đã lưu tệp. Báo cáoPhòng thí nghiệm. Sau đó, chúng tôi tạo một phiên bản của lớp Canvas [lần này lưu ý chữ “C” viết hoa] với tên của tệp mà chúng tôi muốn tạo. Thứ ba, chúng tôi sử dụng drawString để viết ra một dòng văn bản. [50, 800] là tọa độ cho vị trí đặt văn bản [điều này có thể cần một số thử nghiệm]. Cuối cùng, chúng tôi lưu tệp

from reportlab.pdfgen import canvas

report = canvas.Canvas["first_test.pdf"]

report.drawString[50, 800, "**First PDF with ReportLab**"]
report.save[]

Thêm hình ảnh vào tệp PDF

Tiếp theo, hãy tạo một tệp PDF mẫu chứa hình ảnh. Ở đây, chúng tôi sẽ sử dụng thư viện gối để tạo một đối tượng hình ảnh. Trong ví dụ này, chúng tôi cần tạo một danh sách các yếu tố mà chúng tôi sẽ sử dụng để xây dựng tệp PDF [chúng tôi gọi danh sách này là thông tin bên dưới]. Đối với trường hợp này, danh sách sẽ chỉ chứa một phần tử - đối tượng hình ảnh đại diện cho hình ảnh mà chúng tôi sẽ đưa vào tệp PDF, nhưng như chúng tôi sẽ thấy trong ví dụ tiếp theo, chúng tôi cũng có thể . thư viện gối để tạo đối tượng Hình ảnh. Trong ví dụ này, chúng tôi cần tạo một danh sách các thành phần mà chúng tôi sẽ sử dụng để tạo tệp PDF [chúng tôi tham khảo danh sách này dưới dạng thông tin bên dưới]. Trong trường hợp này, danh sách sẽ chỉ chứa một phần tử – đối tượng Hình ảnh đặt lại hình ảnh mà chúng ta sẽ đưa vào tệp PDF, nhưng như chúng ta sẽ thấy trong ví dụ tiếp theo, chúng ta cũng có thể sử dụng danh sách này để lưu trữ các phần tử khác để đặt

Ngoài ra, hãy lưu ý ở đây chúng tôi đang sử dụng Layer SimpleDoctemplate, về cơ bản thực hiện những gì nó nghe - tạo ra một mẫu tài liệu đơn giản mà chúng tôi có thể sử dụng để điền thông tin. Điều này cung cấp nhiều cấu trúc hơn là sử dụng vải, như trên. Lớp SimpleDocTemplate, về cơ bản hoạt động giống như nó – tạo ra một mẫu tài liệu đơn giản mà chúng ta có thể sử dụng để điền thông tin. Điều này cung cấp nhiều cấu trúc hơn so với sử dụng canvas, như trên

________số 8

Tạo các đoạn văn bản của văn bản

Mã hóa tổng thể của chúng tôi ở trên, chúng tôi có thể thêm một vài đoạn văn bản, tiếp theo là một mẫu ảnh

from reportlab.platypus import Paragraph

doc = SimpleDocTemplate["more_text.pdf"]

p1 = "This is the first paragraph..."
p2 = "This is the second paragraph..."
p3 = "This is the third paragraph..."
p4 = "





" image_file = "sample_plot.png" im = Image[image_file, 3*inch, 3*inch] info = [] info.append[Paragraph[p1]] info.append[Paragraph[p2]] info.append[Paragraph[p3]] info.append[Paragraph[p4]] info.append[im] doc.build[info]

Cách điều chỉnh phông chữ

Để điều chỉnh các loại phông chữ, chúng tôi có thể điều chỉnh ví dụ báo cáo đầu tiên của chúng tôi ở trên để sử dụng phương thức SetFont. Ví dụ ReportLab ở trên để sử dụng phương thức setFont

# import package
import pdfkit

# configure pdfkit to point to our installation of wkhtmltopdf
config = pdfkit.configuration[wkhtmltopdf = r"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe"]

# download Wikipedia main page as a PDF file
pdfkit.from_url["//en.wikipedia.org/wiki/Main_Page", "sample_url_pdf.pdf", configuration = config]

0

Create PDF with many pages

Tiếp theo, hãy chọn cách tạo PDF với nhiều trang. Đây là một nhiệm vụ phổ biến và hữu ích để có thể thực hiện. Để xử lý việc tạo nhiều trang, chúng tôi sẽ sửa đổi ví dụ để tạo PDF với ba trang riêng biệt. Một cách để nói với Báo cáo Nội dung trên một trang duy nhất được kết thúc là sử dụng phương thức ShowPage, như bên dưới. Bất kỳ nội dung nào bạn tạo sau đó sẽ được thêm vào trang tiếp theo. Sau đó, chúng ta có thể gọi lại phương thức ShowPage để tạo trang thứ ba. ReportLab nội dung trên một trang xong là dùng phương thức showPage như bên dưới. Mọi nội dung bạn tạo sau đó sẽ được thêm vào trang tiếp theo. Sau đó, chúng ta có thể gọi lại phương thức showPage để tạo trang thứ ba

# import package
import pdfkit

# configure pdfkit to point to our installation of wkhtmltopdf
config = pdfkit.configuration[wkhtmltopdf = r"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe"]

# download Wikipedia main page as a PDF file
pdfkit.from_url["//en.wikipedia.org/wiki/Main_Page", "sample_url_pdf.pdf", configuration = config]

1

Một cách khác để tạo lỗi trang bằng cách sử dụng SimpleDoctemplate từ trước đó trong bài viết là như thế này. SimpleDocTemplate từ trước đó trong bài là như thế này

# import package
import pdfkit

# configure pdfkit to point to our installation of wkhtmltopdf
config = pdfkit.configuration[wkhtmltopdf = r"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe"]

# download Wikipedia main page as a PDF file
pdfkit.from_url["//en.wikipedia.org/wiki/Main_Page", "sample_url_pdf.pdf", configuration = config]

2

Kết luận

That is it for this post. Nếu bạn thích đọc sách, xin vui lòng chia sẻ bài viết này với bạn bè của bạn. Kiểm tra thêm về Báo cáo bằng cách nhấp vào đây. Tài liệu cho pdfkit ở đây. ReportLab bằng cách nhấp vào đây. Tài liệu cho pdfkit ở đây

Chủ Đề