Yermek68 commited on
Commit
b4f7ed9
·
verified ·
1 Parent(s): d936fab

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -10
app.py CHANGED
@@ -117,30 +117,32 @@ def save_docx(summary_text: str) -> str:
117
 
118
  def save_pdf(summary_text: str) -> str | None:
119
  """
120
- Сохраняет резюме в PDF и возвращает путь к файлу.
121
- Если шрифт не найден или не подключился — возвращает None,
122
- чтобы не падать с Unicode ошибкой.
123
  """
 
 
 
 
 
124
  if not os.path.exists(FONT_PATH):
125
- # Шрифт не найден лучше вернуть None, чем падать
126
  return None
127
 
 
128
  filename = f"summary_{datetime.now().strftime('%Y%m%d_%H%M%S')}.pdf"
129
 
130
  pdf = FPDF()
131
  pdf.add_page()
132
 
133
- # Регистрируем Unicode-шрифт
134
  try:
135
  pdf.add_font(FONT_FAMILY, "", FONT_PATH, uni=True)
 
136
  except Exception as e:
137
- # Если даже тут что-то пошло не так — не ломаем всё приложение
138
- print(f"Ошибка подключения шрифта для PDF: {e}")
139
  return None
140
 
141
- pdf.set_font(FONT_FAMILY, size=12)
142
-
143
- # Пишем текст резюме
144
  for line in summary_text.split("\n"):
145
  pdf.multi_cell(0, 8, line)
146
  pdf.ln(0.5)
@@ -149,6 +151,7 @@ def save_pdf(summary_text: str) -> str | None:
149
  return filename
150
 
151
 
 
152
  # ===== ОСНОВНАЯ ФУНКЦИЯ ДЛЯ GRADIO =====
153
 
154
  def summarize_file(file) -> tuple[str, str | None, str | None]:
 
117
 
118
  def save_pdf(summary_text: str) -> str | None:
119
  """
120
+ Создаёт PDF и возвращает путь к файлу.
 
 
121
  """
122
+
123
+ FONT_PATH = "DejaVuSans.ttf"
124
+ FONT_FAMILY = "DejaVu"
125
+
126
+ # Проверяем что шрифт точно есть
127
  if not os.path.exists(FONT_PATH):
128
+ print("‼ Шрифт не найден в корне проекта.")
129
  return None
130
 
131
+ # Формируем имя файла
132
  filename = f"summary_{datetime.now().strftime('%Y%m%d_%H%M%S')}.pdf"
133
 
134
  pdf = FPDF()
135
  pdf.add_page()
136
 
137
+ # Подключаем Unicode-шрифт
138
  try:
139
  pdf.add_font(FONT_FAMILY, "", FONT_PATH, uni=True)
140
+ pdf.set_font(FONT_FAMILY, size=12)
141
  except Exception as e:
142
+ print(f"Ошибка подключения шрифта: {e}")
 
143
  return None
144
 
145
+ # Записываем текст
 
 
146
  for line in summary_text.split("\n"):
147
  pdf.multi_cell(0, 8, line)
148
  pdf.ln(0.5)
 
151
  return filename
152
 
153
 
154
+
155
  # ===== ОСНОВНАЯ ФУНКЦИЯ ДЛЯ GRADIO =====
156
 
157
  def summarize_file(file) -> tuple[str, str | None, str | None]: