def test_position(): repr(HorizontalSpace(size='20pt', star=False)) repr(VerticalSpace(size="20pt", star=True)) # Test alignment environments center = Center() center.append("append") repr(center) right = FlushRight() right.append("append") repr(right) left = FlushLeft() left.append("append") repr(left) minipage = MiniPage(width=r"\textwidth", height="10pt", pos='t', align='r', content_pos='t', fontsize="Large") minipage.append("append") repr(minipage) textblock = TextBlock(width="200", horizontal_pos="200", vertical_pos="200", indent=True) textblock.append("append") textblock.dumps() repr(textblock)
def create(self): try: self.status['text'] = 'Загрузка, подождите' self.root.update() # Настройки отступов, языка geometry_options = { "tmargin": "2cm", "lmargin": "3cm", "rmargin": "1.5cm", "bmargin": "2cm" } doc = Document(geometry_options=geometry_options) doc.packages.add( Package('grffile', options=['encoding', 'filenameencoding=utf8'])) doc.packages.add(Package('babel', options=['russian'])) # Вставляем логотип МИРЭА image_filename = os.path.join(os.path.dirname(__file__), 'логотип.png') with doc.create(Figure(position='h!')) as logo: logo.add_image(image_filename, width='80px') # Обложка doc.change_length(r"\TPHorizModule", "1mm") doc.change_length(r"\TPVertModule", "1mm") with doc.create(MiniPage(width=r"\textwidth")) as page: # Центральная часть обложки with page.create(TextBlock(180, 0, 0)): page.append(Command('centering')) page.append('МИНОБРНАУКИ РОССИИ\n') page.append( 'Федеральное государственное бюджетное образовательное учреждение высшего образования\n' ) page.append( MediumText( bold( '«МИРЭА - Российский Технологический Университет»\n' ))) page.append(LargeText(bold('РТУ МИРЭА\n'))) page.append(LineBreak()) page.append( MediumText( bold( 'Институт комплексной безопасности и специального приборостроения\n' ))) page.append(LineBreak()) page.append( 'Кафедра КБ-8 «Информационное Противоборство»\n') page.append(LineBreak()) page.append(LineBreak()) page.append(LineBreak()) page.append(LargeText('Отчёт\n')) page.append(f'{str(self.entry1.get())}\n') # Правая часть обложки with page.create(TextBlock(80, 88, 120)): if self.your_var.get() == 0: page.append('Выполнил:\n') page.append( f'Студент {str(self.entry2.get())} курса\n') else: page.append('Выполнила:\n') page.append( f'Студентка {str(self.entry2.get())} курса\n') page.append(f'Группа {str(self.entry3.get())}\n') page.append(f'Шифр {str(self.entry4.get())}\n') page.append(f'{str(self.entry5.get())}\n') page.append(LineBreak()) page.append(LineBreak()) if self.var.get() == 0: page.append('Проверил:\n') else: page.append('Проверила:\n') page.append(f'{str(self.entry6.get())}\n') # Нижний колонтитул header = PageStyle("header") with header.create(Foot("C")): header.append(f'Москва, {time.now().timetuple().tm_year}\n') doc.preamble.append(header) doc.change_document_style("header") doc.generate_pdf("title", clean_tex=False) self.status['text'] = 'Готово!' except FileNotFoundError as e: self.status['text'] = str(e)
from pylatex import Document, MiniPage, TextBlock, MediumText, HugeText, \ SmallText, VerticalSpace, HorizontalSpace from pylatex.utils import bold geometry_options = {"margin": "0.5in"} doc = Document(indent=False, geometry_options=geometry_options) doc.change_length("\TPHorizModule", "1mm") doc.change_length("\TPVertModule", "1mm") with doc.create(MiniPage(width=r"\textwidth")) as page: with page.create(TextBlock(100, 0, 0)): page.append("**** Ten Thousand Dollars") with page.create(TextBlock(100, 0, 30)): page.append("COMPANY NAME") page.append("\nSTREET, ADDRESS") page.append("\nCITY, POSTAL CODE") with page.create(TextBlock(100, 150, 40)): page.append(HugeText(bold("VOID"))) with page.create(TextBlock(80, 150, 0)): page.append("DATE") page.append(MediumText(bold("2016 06 07\n"))) page.append(HorizontalSpace("10mm")) page.append(SmallText("Y/A M/M D/J")) with page.create(TextBlock(70, 150, 30)): page.append(MediumText(bold("$***** 10,000.00"))) page.append(VerticalSpace("100mm"))