load project
This commit is contained in:
53
samples/create_sample_template.py
Normal file
53
samples/create_sample_template.py
Normal file
@@ -0,0 +1,53 @@
|
||||
"""Create a sample .docx template with Jinja2 variables for testing."""
|
||||
|
||||
from docx import Document
|
||||
from docx.shared import Pt
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def set_cell_text(cell, text: str) -> None:
|
||||
cell.text = ""
|
||||
cell.paragraphs[0].add_run(text)
|
||||
|
||||
|
||||
output = Path(__file__).parent / "invoice_template.docx"
|
||||
|
||||
doc = Document()
|
||||
|
||||
title = doc.add_paragraph()
|
||||
run = title.add_run("Invoice Document")
|
||||
run.bold = True
|
||||
run.font.size = Pt(18)
|
||||
|
||||
doc.add_paragraph("Client: {{ client_name }}")
|
||||
doc.add_paragraph("Date: {{ invoice_date }}")
|
||||
doc.add_paragraph("Invoice #: {{ invoice_number }}")
|
||||
|
||||
doc.add_paragraph()
|
||||
doc.add_paragraph("Description:")
|
||||
doc.add_paragraph("{{ description }}")
|
||||
|
||||
doc.add_paragraph()
|
||||
doc.add_paragraph("Items:")
|
||||
|
||||
table = doc.add_table(rows=2, cols=3)
|
||||
table.style = "Table Grid"
|
||||
|
||||
hdr = table.rows[0].cells
|
||||
set_cell_text(hdr[0], "Product")
|
||||
set_cell_text(hdr[1], "Quantity")
|
||||
set_cell_text(hdr[2], "Price")
|
||||
|
||||
data_row = table.rows[1].cells
|
||||
set_cell_text(data_row[0], "{%tr for item in items %}{{ item.product }}")
|
||||
set_cell_text(data_row[1], "{{ item.qty }}")
|
||||
set_cell_text(data_row[2], "{{ item.price }}{%tr endfor %}")
|
||||
|
||||
doc.add_paragraph()
|
||||
doc.add_paragraph("Total: {{ total_amount }}")
|
||||
|
||||
doc.add_paragraph()
|
||||
doc.add_paragraph("Prepared by: {{ author_name }}")
|
||||
|
||||
doc.save(str(output))
|
||||
print(f"Created: {output}")
|
||||
BIN
samples/invoice_template.docx
Normal file
BIN
samples/invoice_template.docx
Normal file
Binary file not shown.
BIN
samples/test_diplomform.docx
Normal file
BIN
samples/test_diplomform.docx
Normal file
Binary file not shown.
Reference in New Issue
Block a user