> For the complete documentation index, see [llms.txt](https://olexsyn.gitbook.io/enote/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://olexsyn.gitbook.io/enote/progr/python/modules/borb.md).

# borb

* <https://github.com/jorisschellekens/borb>&#x20;
* <https://github.com/jorisschellekens/borb-examples>

```python
h_l_margin = 20  # горизонатальний лівий відступ
h_r_margin = 5   # горизонатльний правий відступ
v_t_margin = 5   # вертикальній верхній відступ
v_b_margin = 5   # вертикальній нижній відступ
r: Rectangle = Rectangle(
    Decimal(0 + h_l_margin),                    # x: лівий край
    Decimal(0 + v_b_margin),                    # y: нижній край
    Decimal(595 - (h_l_margin + h_r_margin) ),  # width: правий край
    Decimal(842 - (v_b_margin + v_t_margin) ),  # height верхній край
)
```

обо оформити функцією:

```python
# ------------------------------------------------------------------------------
def borb_rect_margins(h_l_margin, v_t_margin, h_r_margin, v_b_margin):
    return ( Decimal(0 + h_l_margin),
             Decimal(0 + v_b_margin),
             Decimal(595 - (h_l_margin + h_r_margin) ),
             Decimal(842 - (v_b_margin + v_t_margin) ) )
#

r: Rectangle = Rectangle(
    *borb_rect_margins(20, 5, 5, 5)  # "розпаковую" tuple (left, top, right, bottom)
)
```

A4 — формат паперу, визначений стандартом ISO 216, ґрунтується на метричній системі заходів. Його розміри – 210×297 мм, діагональ – 364 мм. Площа аркуша формату A4 приблизно = 1/16 м².

* 297 \* 2 = 594
* 210 \* 4 = 840

### Про відступи в borb

Можливо, заплутано, але a Page не має полів. А Page — це просто чисте полотно, на якому речі можна малювати або відтворювати. A PageLayout вирішує, де кожен LayoutElement (наприклад, Paragraph) закінчиться. Тому вам потрібно подивитися там, якщо ви хочете встановити поля. Коли я дивлюся MultiColumnLayout, наприклад, його конструктор приймає атрибут horizontal\_margin і vertical\_margin
