access pygenpdf_json in a pythonic way (the pygenpdf-json library is a PDF generator)
Project description
pygenpdf
pygenpdf is the Pythonic way to create PDFs with pygenpdf_json(https://gitlab.com/numaelis/pygenpdf_json)
from pygenpdf import *
doc = Document()
doc.set_default_font( "/usr/share/fonts/truetype/liberation", "LiberationSans")
doc.set_title("report genpdf")
doc.set_paper_size(Size().A4())
doc.set_head_page(Paragraph("report genpdf-rs from python").aligned(Alignment.RIGHT).styled(Style().bold().italic().with_font_size(8)))
doc.set_margins(Margins().trbl(7,10,10,10))
# doc.add_font("/usr/share/fonts/truetype/noto", "NotoSans")
doc.set_line_spacing(1.0)
details = [["1", "Cafe", "1", "1000", "$1000"],
["3", "Chocolate", "2", "2000", "$4000"],
["5", "Medialuna salada", "2", "1500", "$3000"],
["2", "Factura crema", "2", "1500", "$3000"],
["8", "Chipa 100 gramos", "2", "3000", "$6000"]]
layout = VerticalLayout().framed(LineStyle().with_thickness(.1)).padded(1)
layout.push(
Paragraph("Invoice").styled(Style().bold().with_font_size(25)).aligned(Alignment.CENTER)
)
layout.push(
Break(1)
)
doc.push(layout)
doc.push(
Break(2)
)
doc.push(
Paragraph("details").styled(Style().bold().with_font_size(12)).aligned(Alignment.CENTER)
)
#table
table = TableLayout([1,2,1,1,1]).styled(Style())
#table.set_cell_decorator(FrameCellDecorator(True, True, True))
table.set_cell_decorator(FrameCellDecorator().with_line_style(True, True, True, LineStyle().with_thickness(.2).with_color(Color().rgb(210, 105, 30))))
table.push_row([
Paragraph("code").styled(Style().bold().italic()).aligned(Alignment.CENTER),
Paragraph("name").styled(Style().bold().italic()).aligned(Alignment.CENTER),
Paragraph("unit").styled(Style().bold().italic()).aligned(Alignment.CENTER),
Paragraph("count").styled(Style().bold().italic()).aligned(Alignment.CENTER),
Paragraph("total").styled(Style().bold().italic()).aligned(Alignment.CENTER),
])
total = 0.0
for item in details:
table.push_row([
Paragraph(item[0]).aligned(Alignment.CENTER),
Paragraph(item[1]).aligned(Alignment.LEFT).padded(Margins().vh(0,1)),
Paragraph(item[2]).aligned(Alignment.CENTER),
Paragraph(item[3]).aligned(Alignment.CENTER),
Paragraph(item[4]).aligned(Alignment.RIGHT),
])
total += float(item[2]) * float(item[3])
doc.push(table)
doc.push(
Break(2)
)
layout_horizontal = HorizontalLayout([4,1])
layout_horizontal.push(
Paragraph("Total").styled(Style().bold().with_font_size(14)).aligned(Alignment.RIGHT).padded(Margins().vh(0, 3))
)
layout_horizontal.push(
Paragraph("$"+str(total)).styled(Style().bold().with_font_size(14)).aligned(Alignment.RIGHT)\
.framed(LineStyle().with_thickness(.3).with_color(Color().rgb(210, 105, 30)))
)
doc.push(layout_horizontal)
doc.render_json_file("invoice.pdf")
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pygenpdf-0.1.0.tar.gz
(19.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
pygenpdf-0.1.0-py3-none-any.whl
(19.0 kB
view details)
File details
Details for the file pygenpdf-0.1.0.tar.gz.
File metadata
- Download URL: pygenpdf-0.1.0.tar.gz
- Upload date:
- Size: 19.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b6453ca0fdc4a33981324fa66e6d237ca86182222ef88c14d32bdbfd9431581
|
|
| MD5 |
0785176288158aa6f9dfbbb7fe97285e
|
|
| BLAKE2b-256 |
9b975a92cbd2c0b5d58524718a9a517f2090751d2d38e1ba0768b4e8eb67917c
|
File details
Details for the file pygenpdf-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pygenpdf-0.1.0-py3-none-any.whl
- Upload date:
- Size: 19.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8821295c497256b62c9fe63572b82b5d4a48cbff198c503815b1b258da166fe2
|
|
| MD5 |
2fb22a4024f4841f86f1034d1827b379
|
|
| BLAKE2b-256 |
984e066aa19676530c0c4627540172fa34ff6fbf4ea0cd4375ca23f5fe62fc13
|