Skip to content

Commit 79cb29f

Browse files
А4
1 parent 4cfc8b9 commit 79cb29f

File tree

1 file changed

+52
-1
lines changed

1 file changed

+52
-1
lines changed

source/tutorials/installing-packages.rst

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,55 @@
1-
.. _installing-packages:
1+
from reportlab.lib.pagesizes import A4
2+
from reportlab.pdfgen import canvas
3+
from reportlab.lib.colors import black, white
4+
import math
5+
6+
# Путь для сохранения PDF
7+
pdf_path = "piramida_mafia.pdf"
8+
c = canvas.Canvas(pdf_path, pagesize=A4)
9+
width, height = A4
10+
11+
# Размер стороны треугольника
12+
side = 150
13+
h = side * math.sqrt(3) / 2
14+
15+
def draw_face(x, y):
16+
# Вершины треугольника
17+
points = [(x, y), (x + side, y), (x + side/2, y + h)]
18+
19+
# Рисуем треугольник
20+
path = c.beginPath()
21+
path.moveTo(points[0][0], points[0][1])
22+
path.lineTo(points[1][0], points[1][1])
23+
path.lineTo(points[2][0], points[2][1])
24+
path.close()
25+
c.setFillColor(black)
26+
c.setStrokeColor(white)
27+
c.setLineWidth(1)
28+
c.drawPath(path, stroke=1, fill=1)
29+
30+
# Центр
31+
cx = sum(p[0] for p in points)/3
32+
cy = sum(p[1] for p in points)/3
33+
34+
# Цифра 1
35+
c.setFillColor(white)
36+
c.setFont("Helvetica-Bold", 32)
37+
c.drawCentredString(cx, cy, "1")
38+
39+
# Логотип
40+
c.setFont("Helvetica-Bold", 12)
41+
c.drawCentredString(cx, cy - 25, "Mafia VIP")
42+
43+
# Размещение 4 граней
44+
draw_face(200, 400) # нижняя
45+
draw_face(200, 400 - h) # верхняя
46+
draw_face(200 - side, 400) # левая
47+
draw_face(200 + side, 400) # правая
48+
49+
c.showPage()
50+
c.save()
51+
52+
print(f"Файл сохранён как {pdf_path}").. _installing-packages:
253

354
===================
455
Installing Packages

0 commit comments

Comments
 (0)