Hướng dẫn python create pdf from template - python tạo pdf từ mẫu

Giới thiệu

Các mẫu là các tài liệu được xác định trước [như hóa đơn, biểu mẫu thuế, v.v.], trong đó mỗi phần tử [văn bản, dòng, mã vạch, v.v.] có một vị trí cố định [x1, y1, x2, y2], kiểu [phông chữ, kích thước, v.v. ] và một văn bản mặc định.

Các yếu tố này có thể đóng vai trò là người giữ chỗ, vì vậy chương trình có thể thay đổi văn bản mặc định "điền" tài liệu.

Ngoài ra, các phần tử có thể được xác định trong tệp CSV hoặc trong cơ sở dữ liệu, do đó người dùng có thể dễ dàng điều chỉnh biểu mẫu với nhu cầu in ấn của mình.

Một mẫu được sử dụng giống như một dict, đặt giá trị của các mục của nó.

Chi tiết - Định nghĩa mẫu

Một mẫu bao gồm một tiêu đề và một danh sách các yếu tố.

Tiêu đề chứa định dạng trang, tiêu đề của tài liệu và siêu dữ liệu khác.

Các phần tử có các thuộc tính sau [các cột trong CSV, các trường trong cơ sở dữ liệu]:

  • Tên: Nhận dạng người giữ chỗ
  • Loại: 'T': Texts, 'L': Lines, 'I': Hình ảnh, 'B': Hộp, 'BC': Mã vạch
  • x1, y1, x2, y2: tọa độ trên cùng bên trái [tính bằng mm]
  • Phông chữ: ví dụ: "Arial"
  • Kích thước: Kích thước văn bản tính theo điểm, ví dụ: 10
  • in đậm, in nghiêng, gạch chân: kiểu văn bản [không trống để kích hoạt]
  • Tiền cảnh, nền: văn bản và màu sắc điền, ví dụ: 0xffffff
  • Căn chỉnh: Căn chỉnh văn bản, 'l': trái, 'r': phải, 'c': trung tâm
  • Văn bản: Chuỗi mặc định, có thể được thay thế khi chạy
  • Ưu tiên: Z-order
  • Multiline: Không có cho dòng đơn [mặc định], đúng với Multicells [nhiều dòng], trang bị sai để phù hợp chính xác với không gian được xác định

Cách tạo mẫu

Một mẫu có thể được tạo theo 3 cách:

  • Bằng cách xác định mọi thứ theo cách thủ công theo cách được mã hóa cứng
  • Bằng cách sử dụng một định nghĩa mẫu trong tài liệu CSV và phân tích CSV bằng mẫu.parse_dict []
  • Bằng cách xác định mẫu trong cơ sở dữ liệu [điều này áp dụng cho tích hợp Web2Py]

Lưu ý sau đây, định nghĩa của một mẫu sẽ chứa các yếu tố. Tiêu đề sẽ được đưa ra trong quá trình khởi tạo [ngoại trừ phương thức cơ sở dữ liệu].

Ví dụ - mã hóa cứng


from fpdf import Template

#this will define the ELEMENTS that will compose the template. 
elements = [
    { 'name': 'company_logo', 'type': 'I', 'x1': 20.0, 'y1': 17.0, 'x2': 78.0, 'y2': 30.0, 'font': None, 'size': 0.0, 'bold': 0, 'italic': 0, 'underline': 0, 'foreground': 0, 'background': 0, 'align': 'I', 'text': 'logo', 'priority': 2, },
    { 'name': 'company_name', 'type': 'T', 'x1': 17.0, 'y1': 32.5, 'x2': 115.0, 'y2': 37.5, 'font': 'Arial', 'size': 12.0, 'bold': 1, 'italic': 0, 'underline': 0, 'foreground': 0, 'background': 0, 'align': 'I', 'text': '', 'priority': 2, },
    { 'name': 'box', 'type': 'B', 'x1': 15.0, 'y1': 15.0, 'x2': 185.0, 'y2': 260.0, 'font': 'Arial', 'size': 0.0, 'bold': 0, 'italic': 0, 'underline': 0, 'foreground': 0, 'background': 0, 'align': 'I', 'text': None, 'priority': 0, },
    { 'name': 'box_x', 'type': 'B', 'x1': 95.0, 'y1': 15.0, 'x2': 105.0, 'y2': 25.0, 'font': 'Arial', 'size': 0.0, 'bold': 1, 'italic': 0, 'underline': 0, 'foreground': 0, 'background': 0, 'align': 'I', 'text': None, 'priority': 2, },
    { 'name': 'line1', 'type': 'L', 'x1': 100.0, 'y1': 25.0, 'x2': 100.0, 'y2': 57.0, 'font': 'Arial', 'size': 0, 'bold': 0, 'italic': 0, 'underline': 0, 'foreground': 0, 'background': 0, 'align': 'I', 'text': None, 'priority': 3, },
    { 'name': 'barcode', 'type': 'BC', 'x1': 20.0, 'y1': 246.5, 'x2': 140.0, 'y2': 254.0, 'font': 'Interleaved 2of5 NT', 'size': 0.75, 'bold': 0, 'italic': 0, 'underline': 0, 'foreground': 0, 'background': 0, 'align': 'I', 'text': '200000000001000159053338016581200810081', 'priority': 3, },
]

#here we instantiate the template and define the HEADER
f = Template[format="A4", elements=elements,
             title="Sample Invoice"]
f.add_page[]

#we FILL some of the fields of the template with the information we want
#note we access the elements treating the template instance as a "dict"
f["company_name"] = "Sample Company"
f["company_logo"] = "pyfpdf/tutorial/logo.png"

#and now we render the page
f.render["./template.pdf"]

Xem Template.py hoặc Web2py để biết ví dụ hoàn chỉnh.

Ví dụ - các phần tử được xác định trong tệp CSV

Bạn xác định các phần tử của mình trong tệp CSV "mycsvfile.csv" sẽ trông giống như:

line0;T;20.0;13.0;190.0;13.0;times;10.0;0;0;0;0;65535;C;;0
line1;T;20.0;67.0;190.0;67.0;times;10.0;0;0;0;0;65535;C;;0
name0;T;21;14;104;25;times;16.0;0;0;0;0;0;C;;2
title0;T;64;26;104;30;times;10.0;0;0;0;0;0;C;;2

Hãy nhớ rằng mỗi dòng đại diện cho một phần tử và mỗi trường đại diện cho một trong các thuộc tính của phần tử theo thứ tự sau: ['tên', 'loại', 'x1', 'y1', 'x2', 'y2', 'font ',' kích thước ',' in đậm ',' in nghiêng ',' gạch chân ',' tiền cảnh ',' nền ',' align ',' text ',' ưu tiên ',' multiline ']

Sau đó, bạn có thể sử dụng tệp như thế này:

def test_template[]:
    f = Template[format="A4",
                 title="Sample Invoice"]
    f.parse_csv["mycsvfile.csv"]
    f.add_page[]
    f["company_name"] = "Sample Company"
    response.headers['Content-Type'] = 'application/pdf'
    return f.render["./template.pdf", dest='S']

Thư viện này bao gồm một chương trình designer.py để sửa đổi trực quan các thiết kế của một mẫu [ví dụ: hóa đơn, báo cáo, v.v.].

Các tệp đầu vào là bảng tính CSV mô tả thiết kế [xem ở trên]. Sau khi mở, nhà thiết kế hiển thị mẫu với các yếu tố như cách chúng sẽ được định vị.

Thanh công cụ có nút cho:

  • Mở, lưu và in [xem trước] mẫu
  • Thêm, xóa và sao chép
  • Tìm các mục theo tên hoặc bằng văn bản
  • Tìm và thay thế [sửa đổi các phần tử đã chọn, chủ yếu là di chuyển x/y]

Trên một phần tử, nhấp chuột trái sẽ mở hộp thoại để chỉnh sửa văn bản của nó và nhấp chuột phải mở hộp thoại với cửa sổ Thuộc tính. Bạn có thể chọn nhiều mục bằng cách giữ Shift và nhấp chuột trái chúng. Để di chuyển các phần tử, bạn có thể sử dụng các phím mũi tên hoặc kéo các phần tử.

Để chạy nó, chỉ cần đi đến thư mục và chạy:

python designer.py

[Bạn cần cài đặt WX].

Nếu bạn gặp sự cố khi nó hoạt động, hãy thay đổi nhập vào tệp Designer.py thành phần sau [nó sẽ được sửa trong phiên bản tiếp theo]:

import os, sys
import wx
import wx.lib
import wx.lib.ogl as ogl
try:
    from wx.lib.wordwrap import wordwrap
except ImportError:
    wordwrap = lambda text, width, dc: text

try:
    from template import Template
except ImportError:
    # we are frozen?
    from fpdf.template import Template

Ví dụ, ảnh chụp màn hình sau đây hiển thị trình thiết kế trực quan, với tệp hóa đơn mẫu.csv mở và phần tử 'logo' được chọn, chỉnh sửa các thuộc tính của nó:

Làm cách nào để tạo PDF tự động trong Python?

Tạo PDFS với Thư viện Python - PDFKit Bạn có thể chạy lệnh trong bảng điều khiển để tạo PDFS. Để sử dụng dòng lệnh trong Python, Jazzcore đã phát triển PDFKit-một gói cho tiện ích wkhtmltopdf. Khi wkhtmltopdf và pdfkit được cài đặt, bước tiếp theo là tạo tệp python để tạo pdf từ URL.run the command in the console to generate PDFs. To use the command-line in Python, JazzCore developed PDFKit – a wrapper for wkhtmltopdf utility. Once wkhtmltopdf and PDFKit are installed, the next step is to create a Python file to generate a PDF from a URL.

FPDF trong Python là gì?

FPDF là gì?PYFPDF là một thư viện trong Python, nó được sử dụng để tạo tài liệu tệp PDF.Nếu chúng ta nói về tính năng thì chúng ta có thể tùy chỉnh như chúng ta có thể sửa đổi định dạng trang, lề, đơn vị, ngắt dòng tự động và nhiều hơn nữa.a library in Python, it is used for pdf file document generation. If we talk about the feature then we can customize like we can modify the page format, margin, unit, automatic line break and more.

Làm thế nào để bạn tạo một báo cáo pdf?

Cách tạo tệp PDF:..
Mở Acrobat và chọn các công cụ trên mạng
Chọn loại tệp bạn muốn tạo PDF từ: một tệp, nhiều tệp, quét hoặc tùy chọn khác ..
Nhấp vào Tạo Tạo các trò chơi hay hoặc tiếp theo tùy thuộc vào loại tệp ..
Thực hiện theo lời nhắc để chuyển đổi sang PDF và lưu đến vị trí mong muốn của bạn ..

Làm cách nào để tạo PDF Auto?

Tạo PDF trên PC Windows trong Windows 10, nhấp vào menu thả xuống máy in, sau đó chọn tùy chọn Lưu dưới dạng PDF.Đây là một máy in ảo của các loại và nó tạo ra một tệp pdf.Chọn cách định dạng tài liệu của bạn, như được hiển thị ở trên, sau đó nhấp vào Lưu và Windows sẽ hỏi nơi bạn muốn lưu tệp PDF.In Windows 10, click the Printer dropdown menu, then select the Save as PDF option. This is a virtual printer of sorts, and it makes a PDF file. Choose how to format your document, as shown above, then click Save, and Windows will ask where you want to save the PDF file.

Bài Viết Liên Quan

Chủ Đề