Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from reportlab.lib import colors
- from reportlab.platypus import Paragraph, Frame, Table, TableStyle, KeepInFrame, BaseDocTemplate, PageTemplate
- data_table_a = [ # MAX 45 ROWS per Sheet !!
- ['АКТИВ', '', ''], # Антетка 5 реда
- ['РАЗДЕЛИ, ГРУПИ, СТАТИИ', 'Сума (хил.лв)', ''], # Антетка
- ['', 'Тек.\nгодина', 'Предх.\nгодина'], # Антетка
- ['', '', ''], # Антетка
- ['a', '1', '2'], # Антетка
- ['А. Записан, но невнесен капитал', '255', '355'],
- ['Б. Нетекущи активи', '', ''],
- ['I. Нематериални активи', '', ''],
- ['1. Продукти от развойна дейност', '255', '355'],
- ['2. Програмни продукти и други подобни\nправа и активи', '23', f'{9550:_}'.replace('_', ' ')],
- ['', '', ' '],
- ['3. Търговска репутация', '23', f'{9550:_}'.replace('_', ' ')],
- ['4. Предоставени аванси и нематериални\nактиви в процес на изграждане', '23', f'{9550:_}'.replace('_', ' ')],
- ['', '', ''],
- ['Общо за група I:', '23', f'{9550:_}'.replace('_', ' ')], #ляво, наклонено, bd
- ['II. Дълготрайни материални активи', '', ''],
- ['1. Земи и сгради, в т.ч.:', '255', '355'],
- [' - земи', '255', '355'],
- [' - сгради', '255', '355'],
- ['2. Машини, производствено оборудване и апаратура', '23', f'{9550:_}'.replace('_', ' ')],
- ['', '', ' '],
- ['3. Съоръжения и други', '23', f'{9550:_}'.replace('_', ' ')],
- ['4. Предоставени аванси и дълготрайни материални\nактиви в процес на изграждане', '23', f'{9550:_}'.replace('_', ' ')],
- ['', '', ''],
- ['Общо за група II:', '23', f'{9550:_}'.replace('_', ' ')], #ляво, наклонено, bd
- ['III. Дългосрочни финансови активи', '', ''],
- ['1. Акции и дялове в предприятия от групата', '255', '355'],
- ['2. Предоставени заеми на предприятия от групата', '23', f'{9550:_}'.replace('_', ' ')],
- ['', '', ' '],
- ['3. Акции и дялове в асоциирани и смесени предприятия', '23', f'{9550:_}'.replace('_', ' ')],
- ['4. Предоставени заеми, свързани с асоциирани и\nсмесени предприятия', '23', f'{9550:_}'.replace('_', ' ')],
- ['', '', ''],
- ['5. Дългосрочни инвестиции (инвестиционни имоти)', '255', '355'],
- ['6. Други инвестиции', '255', '355'],
- ['7. Изкупени собствени акции', '255', '355'],
- ['- с ном. стойност: ..... хил.лв.', 'x', 'x'],
- ['Общо за група III:', '23', f'{9550:_}'.replace('_', ' ')], #ляво, наклонено, bd
- ['IV. Отсрочени данъци', '223', '45'],
- ['Общо за раздел Б:', '23', f'{9550:_}'.replace('_', ' ')], #ляво, наклонено, bd
- ['В. Текущи активи', '', ''], # Balance_1
- ['I. Материални запаси', '', ''],
- ['1. Суровини и материали', '255', '355'],
- ['2. Незавършено производство', '23', f'{9550:_}'.replace('_', ' ')],
- ['3. Продукция и стоки, в т.ч.:', '23', f'{9550:_}'.replace('_', ' ')],
- [' - продукция', '255', '355'],
- [' - стоки', '255', '355'],
- ['4. Предоставени аванси', '23', f'{9550:_}'.replace('_', ' ')],
- ['Общо за група I:', '23', f'{9550:_}'.replace('_', ' ')], #ляво, наклонено, bd
- ['II. Взземания', '', ''],
- ['1. Вземания от клиенти и доставчици, в т.ч.:', '255', '355'],
- [' - над 1 година', '255', '355'],
- ['2. Вземания от предприятия от група, в т.ч.:', '23', f'{9550:_}'.replace('_', ' ')],
- [' - над 1 година', '255', '355'],
- ['3. Вземания, свързани с асоциирани и смесени предприятия, в т.ч.:', '23', f'{9550:_}'.replace('_', ' ')],
- [' - над 1 година', '255', '355'],
- ['4. Други вземания, в т.ч.:', '23', f'{9550:_}'.replace('_', ' ')],
- [' - над 1 година', '255', '355'],
- ['Общо за група II:', '23', f'{9550:_}'.replace('_', ' ')], #ляво, наклонено, bd
- ['III. Инвестиции', '', ''],
- ['1. Акции и дялове в предприятия от групата', '255', '355'],
- ['2. Изкупени собствени акции', '23', f'{9550:_}'.replace('_', ' ')],
- ['- с ном. стойност: ..... хил.лв.', 'x', 'x'],
- ['3. Други инвестиции', '23', f'{9550:_}'.replace('_', ' ')],
- ['Общо за група III:', '23', f'{9550:_}'.replace('_', ' ')], #ляво, наклонено, bd
- ['IV. Парични средства, в т.ч.:', '223', '45'],
- [' - в брой', '255', '355'],
- [' - в безсрочни сметки(депозити)', '255', '355'],
- ['Общо за раздел В:', '23', f'{9550:_}'.replace('_', ' ')], #ляво, наклонено, bd
- ['Г. Разходи за бъдещи периоди', '', ''],
- ['СУМА НА АКТИВА', '255', '355'],
- ]
- list_style_a = TableStyle([
- ('GRID',(0,0),(-1,-1),0.5,colors.blue),
- ('FONT', (0,0),(2,-1),'Times',9),
- ('ALIGN', (0, 0), (2, 4), 'CENTER'), # Център по X
- ('BACKGROUND', (0, 0), (2, 4), colors.lightgoldenrodyellow),
- ('SPAN', (0, 0), (2, 0)),
- ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'), # Център по Y
- ('SPAN', (1, 1), (2, 1)),
- ('SPAN', (1, 2), (1, 3)),
- ('SPAN', (2, 2), (2, 3)),
- ('SPAN', (0, 1), (0, 3)),
- ('RIGHTPADDING', (0, 5), (2, -1), 3), # Залепя числото на дясно
- ('ALIGN', (1, 5), (2, -1), 'RIGHT'),
- ('SPAN', (0, 6), (2, 6)),
- ('SPAN', (0, 7), (2, 7)),
- ('BACKGROUND', (0, 6), (2, 7), colors.lightgoldenrodyellow),
- ('SPAN', (0, 9), (0, 10)),
- ('SPAN', (1, 9), (1, 10)),
- ('SPAN', (2, 9), (2, 10)),
- ('SPAN', (0, 12), (0, 13)),
- ('SPAN', (1, 12), (1, 13)),
- ('SPAN', (2, 12), (2, 13)),
- ('ALIGN', (0, 14), (0, 14), 'RIGHT'), # Център по X
- ('FONT', (0,14),(0,14),'Timesbi',9),
- ('FONT', (1,14),(2,14),'Timesbd',9),
- #('COLWIDTHS', ) #colWidths
- #('ROWWIDTHS', ) #rowWidths
- ])
- # [('LINEABOVE', (0,0), (-1,0), 0.1, colors.green),
- # ('RIGHTPADDING', (0, 0), (3, -2), 1),
- # ('TEXTCOLOR', (1,1), (-2,-2), colors.red),
- # #('GRID', (1, 1), (-2, -2), 0.25, colors.red),
- # ('BOX', (0, 0),(-1, -1), 0.1, colors.blue, None, (2,2,1)),
- # ('INNERGRID', (0,0), (-1,-1), 0.25, colors.blue),
- # #('RIGHTPADDING', (1, 5), (2, 5), 1),
- # ('BACKGROUND', (0, 0), (2, 4), colors.lightgrey), # (col, row), (col, row) от колона 0 до 2 от ред 1 до ред 2
- # #('NOSPLIT', (0, 0), (0, 0))]
- # # ('ROUNDEDCORNERS', [None, None, None, None])]; ('ROUNDEDCORNERS', [5, 10, 20, 30]) радиуси на дъгите
- # # ('spitfirst'), # за 1-ви ред само
- # # ('spitlast'),] # за последен ред само
- # # ('FONT', (0,1),(len(topiclist)-1,1),'Helvetica-Bold',12),
- # # ('FONTSIZE', (0,1),(-1,-1), 10),
- # # LEFTPADDING - takes an integer, defaults to 6.
- # ('RIGHTPADDING', (1, 8), (2, -1), 1), # - takes an integer, defaults to 6.
- # ('BOTTOMPADDING', (0, 4), (2, -1), 0)] # - takes an integer, defaults to 3.
- # # TOPPADDING - takes an integer, defaults to 3.
- # # ROWBACKGROUNDS - takes a list of colors to be used cyclically.
- # # COLBACKGROUNDS - takes a list of colors to be used cyclically.
- # # VALIGN - takes one of TOP, MIDDLE or the default BOTTOM
- # # LEADING - takes leading in points.
- # Title
- # ('LEFTPADDING', (0, 0), (1, 0), 0),
- # ('RIGHTPADDING', (0, 0), (1, 0), 0),
- # ('VALIGN', (0, 0), (1, 0), 'TOP'),
- # ('ALIGN', (0, 0), (1, 0), 'CENTRE'),
- # # DataTable
- # ('ALIGN', (0, 1), (1, -1), 'CENTRE'),
- # ('SIZE', (0, 1), (-1, -1), 7), # Размер на шрифта
- # ('LEADING', (0, 1), (-1, -1), 8.4), #8.4 допълнително разсточние под текста и клетката
- # ('VALIGN', (0, 1), (-1, -1), 'MIDDLE'),
- # ('TOPPADDING', (0, 1), (-1, -1), 2.6),
- # ('BOTTOMPADDING', (0, 1), (-1, -1), 2.6),
- # ('LINEBELOW', (0, 1), (-1, -1), 0.3, colors.red), # Линия на таблицата само отдолу на редовете
- # ПАСИВ
- data_table_p = [ # MAX 45 ROWS per Sheet without Odit!!
- ['ПАСИВ', '', ''], # Антетка 5 реда
- ['РАЗДЕЛИ, ГРУПИ, СТАТИИ', 'Сума (хил.лв)', ''], # Антетка
- ['', 'Тек.\nгодина', 'Предх.\nгодина'], # Антетка
- ['', '', ''], # Антетка
- ['a', '1', '2'], # Антетка
- ['А. Собствен капитал', '', ''],
- ['I. Записан капитал', '130', '150'],
- ['II. Премии от емисии', '10', '10'],
- ['III. Резерв от последваща оценка', '20', '15'],
- ['IV. Резерви', '', ''],
- ['1. Законови резерви', '255', '355'],
- ['2. Резерв, свързан с изкупени собствени акции', '23', f'{9550:_}'.replace('_', ' ')],
- ['3. Резерв съгласно учредителен акт', '23', f'{9550:_}'.replace('_', ' ')],
- ['4. Други резерви', '23', f'{9550:_}'.replace('_', ' ')],
- ['Общо за група IV:', '23', f'{9550:_}'.replace('_', ' ')], # ляво, наклонено, bd
- ['V. Натрупана печалба(загуба) от минали години, в т.ч.:', '23', f'{9550:_}'.replace('_', ' ')], # ляво, наклонено, bd
- [' - неразпределена печалба', '255', '355'],
- [' - непокрита загуба', '255', '355'],
- ['VI. Текуща печалба(загуба)', '23', f'{9550:_}'.replace('_', ' ')],
- ['Общо за раздел А:', '23', f'{9550:_}'.replace('_', ' ')], # ляво, наклонено, bd
- ['Б. Провизии и сходни задължения', '', ''],
- ['1. Провизии за пенсии и други подобни задължения', '255', '355'],
- ['2. Провизии за данъци, в т.ч.:', '23', f'{9550:_}'.replace('_', ' ')],
- [' - отсрочени данъци', '255', '355'],
- ['3. Други провизии и сходни задължения', '23', f'{9550:_}'.replace('_', ' ')],
- ['Общо за раздел Б:', '23', f'{9550:_}'.replace('_', ' ')], # ляво, наклонено, bd
- ['В. Задължения', '', ''], # Balance_1
- ['1. Облигационни заеми, в т.ч.:', '255', '355'],
- [' - конвертируеми', '255', '355'],
- [' - до 1 година', '255', '355'],
- [' - над 1 година', '255', '355'],
- ['2. Задължения към финансови предприятия, в т.ч.:', '255', '355'],
- [' - до 1 година', '255', '355'],
- [' - над 1 година', '255', '355'],
- ['3. Получени аванси, в т.ч.:', '255', '355'],
- [' - до 1 година', '255', '355'],
- [' - над 1 година', '255', '355'],
- ['4. Задължения към доставчици, в т.ч.:', '255', '355'],
- [' - до 1 година', '255', '355'],
- [' - над 1 година', '255', '355'],
- ['5. Задължения по полици, в т.ч.:', '255', '355'],
- [' - до 1 година', '255', '355'],
- [' - над 1 година', '255', '355'],
- ['6. Задължения към предприятия от група, в т.ч.:', '255', '355'],
- [' - до 1 година', '255', '355'],
- [' - над 1 година', '255', '355'],
- ['7. Задължения, свързани с асоциирани и смесени предприятия, в т.ч.:', '255', '355'],
- [' - до 1 година', '255', '355'],
- [' - над 1 година', '255', '355'],
- ['', '', ' '],
- ['8. Други задължения, в т.ч.:', '255', '355'],
- [' - до 1 година', '255', '355'],
- [' - над 1 година', '255', '355'],
- [' - към персонала, в т.ч.:', '255', '355'],
- [' - до 1 година', '255', '355'],
- [' - над 1 година', '255', '355'],
- [' - осигурителни задължения, в т.ч.:', '255', '355'],
- [' - до 1 година', '255', '355'],
- [' - над 1 година', '255', '355'],
- [' - данъчни задължения, в т.ч.:', '255', '355'],
- [' - до 1 година', '255', '355'],
- [' - над 1 година', '255', '355'],
- ['Общо за раздел В:', '23', f'{9550:_}'.replace('_', ' ')], #ляво, наклонено, bd
- [' - до 1 година', '255', '355'],
- [' - над 1 година', '255', '355'],
- ['Г. Финансирания и приходи за бъдещи периоди, в т.ч.:', '', ''],
- [' - финансирания', '255', '355'],
- [' - приходи за бъдещи периоди', '255', '355'],
- ['СУМА НА ПАСИВА', '255', '355'],
- ]
- if __name__ == '__main__':
- from reportlab.lib.units import mm
- from balance_2 import top_f, top_m, ta
- from reportlab.lib.pagesizes import A4
- count_data_rows = len(data_table_a) # Брой редове в таблицата
- print(count_data_rows) # 37
- print(mm)
- y1 = A4[1] - top_m - top_f - count_data_rows * 4 * mm
- print(y1)
- w, h = ta.wrap(0, 0) # Дава размерите на таблицата
- print(w, ' ', h) # 240.94488188976382 419.52755905511816
Add Comment
Please, Sign In to add comment