-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcompile_report.py
33 lines (29 loc) · 1.88 KB
/
compile_report.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import os
import subprocess
import shutil
# Функция для компиляции LaTeX файла в PDF
def compile_latex_to_pdf(tex_filename, output_directory, pdf_destination):
try:
# Проверяем, существует ли папка для выходных файлов, и создаём её, если она не существует
if not os.path.exists(output_directory):
os.makedirs(output_directory)
if not os.path.exists(pdf_destination):
os.makedirs(pdf_destination)
# Вызываем pdflatex для компиляции .tex файла в PDF
with open(os.devnull, 'w') as FNULL:
# Компилируем LaTeX файл, указывая папку для выходных файлов, подавляя вывод
subprocess.run(["pdflatex",f"-output-directory={output_directory}", tex_filename],
stdout=FNULL, stderr=FNULL, check=True)
# Определяем базовое имя файла (без расширения)
base_filename = os.path.splitext(os.path.basename(tex_filename))[0]
pdf_filename = base_filename + ".pdf"
# Полный путь к PDF-файлу в папке output
pdf_filepath = os.path.join(output_directory, pdf_filename)
# Проверяем, существует ли PDF файл и перемещаем его в папку назначения
if os.path.exists(pdf_filepath):
destination_filepath = os.path.join(pdf_destination, pdf_filename)
shutil.move(pdf_filepath, destination_filepath)
else:
print(f"PDF файл {pdf_filename} не найден в папке {output_directory}")
except subprocess.CalledProcessError:
print(f"Ошибка при компиляции {tex_filename}")