/ examples / flex.ts
flex.ts
 1  import { writeFile } from "node:fs/promises";
 2  import { div, font, Fonts, page, pdf, text } from "pagiko";
 3  
 4  const times = font(Fonts.TimesRoman);
 5  
 6  const file = pdf()
 7    .author("Mikkel")
 8    .font(times)
 9    .child(
10      page()
11        .child(
12          div()
13            .flex()
14            .h(100)
15            .child(
16              div()
17                .flex()
18                .w(50)
19                .child(div().bg(0x00000).w(20))
20                .child(div().bg(0x000ff).grow1())
21            )
22            .child(
23              div()
24                .flex()
25                .w(50)
26                .child(div().bg(0x00000).w(20))
27                .child(div().bg(0x0ff00).grow1())
28            )
29            .child(
30              div()
31                .flex()
32                .w(50)
33                .child(div().bg(0x00000).w(20))
34                .child(div().bg(0xff0ff).grow1())
35            )
36        )
37        .child(
38          div()
39            .flex()
40            .h(100)
41            .child(div().w(100).shrink0().bg(0x00ff00))
42            .child(
43              div()
44                .flex()
45                .flexCol()
46                .justifyCenter()
47                .grow1()
48                .bg(0xff00ff)
49                .child(
50                  text(
51                    "hey!hello, world! hello, world! hello, world! hello, world! hello, world! hello, world! hello, world! hello, world!hello, world!hello, world!hello, world!hello, world!hello, world!hello, world!hello, world!hello, world!hello, world!hello, world!"
52                  )
53                    .font(times)
54                    .textRight()
55                )
56              // .child(text("hello world :)"))
57            )
58          // .child(div().wFull().bg(0x0000ff))
59        )
60    );
61  
62  await writeFile("a4.pdf", await file.renderToBytes());