Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from reportlab.lib import colors
- from reportlab.lib.colors import *
- from reportlab.lib.pagesizes import A4
- from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph
- from reportlab.lib.styles import ParagraphStyle, TA_LEFT, ListStyle, TA_CENTER
- from reportlab.lib.enums import TA_RIGHT, TA_CENTER
- from reportlab.pdfgen.canvas import Canvas
- from reportlab.pdfbase import pdfmetrics
- from reportlab.pdfbase.ttfonts import TTFont
- from reportlab.lib.styles import getSampleStyleSheet
- # ['Courier', 'Courier-Bold', 'Courier-BoldOblique', 'Courier-Oblique',
- # 'Helvetica', 'Helvetica-Bold', 'Helvetica-BoldOblique', 'Helvetica-Oblique',
- # 'Symbol',
- # 'Times-Roman', 'Times-Bold', 'Times-BoldItalic', 'Times-Italic',
- # 'ZapfDingbats']
- st_n9 = ParagraphStyle(
- 'st',
- fontName='Times-Roman',
- # parent='Times New Roman',
- fontSize=9,
- leading=8, # Разстояние между редовете в параграфа
- leftIndent=0, # Отстъп на параграфа на дясно от лявата страна на клетката
- rightIndent=0, # Отстъп на параграфа на ляво от дясната страна на клетката
- firstLineIndent=0, # Избутване на вътре на първия ред от параграфа
- alignment=TA_LEFT,
- spaceBefore=10,
- spaceAfter=0,
- # bulletFontName='Arial',
- # bulletFontSize=10,
- bulletIndent=0,
- textColor=black,
- backColor='yellow',
- wordWrap=10,
- borderWidth=0.2,
- borderPadding=2,
- borderColor='blue',
- borderRadius=None,
- allowWidows=0,
- allowOrphans=0,
- textTransform=None, # 'uppercase' | 'lowercase' | None
- endDots=None,
- splitLongWords=1,
- )
- # ['Courier', 'Courier-Bold', 'Courier-BoldOblique', 'Courier-Oblique',
- # 'Helvetica', 'Helvetica-Bold', 'Helvetica-BoldOblique', 'Helvetica-Oblique',
- # 'Symbol',
- # 'Times-Roman', 'Times-Bold', 'Times-BoldItalic', 'Times-Italic',
- # 'ZapfDingbats']
- if __name__ == '__main__':
- balance = Canvas('Balance.pdf', pagesize=A4) # balance е целият обект - pdf файла.
- print(balance.getAvailableFonts())
- pdfmetrics.registerFont(TTFont('Times', 'Times.ttf', 'UTF-8'))
- import codecs # Python standard library
- codecs.encode("UTF-8")
- # pdfmetrics.registerFont(TTFont('Times','Times.ttf', 'UTF-8'))
- pdfmetrics.registerFont(TTFont('Timesbd','Timesbd.ttf', 'UTF-8'))
- pdfmetrics.registerFont(TTFont('Timesbi','Timesbi.ttf', 'UTF-8'))
- pdfmetrics.registerFont(TTFont('Timesi','Timesi.ttf', 'UTF-8'))
- data = [[Paragraph('<font face=Timesbi>Астрой</font>'), Paragraph('<para alignment="right"><font face=Timesbd>255</font></para>'),'255'],
- [Paragraph('Астрой, Александ\nърхххххххььььхх, Астрой', st_n9), Paragraph('555'), '666'],
- [Paragraph('<font face=Times>Астрой</font>'), '25', '889'],
- [' '],
- [' '],
- ['Date: 19.06.2022g.']]
- ts = TableStyle([
- #('GRID', (1, 1), (-2, -2), 0, colors.black), # Линия от ляво и дясно, без първи и последен ред
- # ('BOX', (0, 0), (-1, -1), 0, colors.blue, None, (2, 2, 1)), # Линия около цялата таблица
- ('TOPPADDING', (0, 0), (-1, -1), 0),
- ('BOTTOMPADDING', (0, 0), (-1, -1), 0),
- ('LEFTPADDING', (0, 0), (1, 0), 0),
- ('RIGHTPADDING', (0, 0), (-1, -1), 3),
- # ('INNERGRID', (0, 0), (-1, -1), 0.25, colors.red), # Линии вътре в таблицата - решетка
- ('LINEABOVE', (0, 0), (0, 2), 0.25, colors.black), # Линия само отгоре на клетките
- ('LINEBELOW', (0, 1), (0, 2), 2, colors.green), # Линия само отдолу на клетките
- ('LINEBEFORE', (0, 0), (0, -1), 0.5, colors.green), # Линия само отдолу на клетките
- ('LINEAFTER', (0, 0), (-1, -1), 0.25, colors.blue) # Линия само отдолу на клетките
- ])
- table = Table(data, colWidths=None, rowHeights=None, style=ts, splitByRow=1, repeatRows=0, repeatCols=0,
- rowSplitRange=None, spaceBefore=None, spaceAfter=None, cornerRadii=None)
- table.wrapOn(balance, 100, 600) # Ширина, y
- table.drawOn(balance, 300, 600)
- balance.showPage() # saves current page
- balance.save() # stores the file and close the canvas
Add Comment
Please, Sign In to add comment