public function pdf(Mypdf $fpdf, $count, $answered = false) { $text_parts = explode("<>", $this->text); //части текста между селектами $parse = explode("%", $this->variants); $variants = explode("<>", $parse[0]); $num_slot = count($variants); $text = ''; $fpdf->SetFont('TimesNewRomanPSMT', 'U', 12); $fpdf->Cell(20, 10, iconv('utf-8', 'windows-1251', 'Вопрос ' . $count . '.'), 0, 0); $fpdf->Cell(7, 10, iconv('utf-8', 'windows-1251', 'Заполните пропуски в тексте'), 0, 1); $fpdf->SetFont('TimesNewRomanPSMT', '', 12); if ($answered) { // пдф с ответами $answers = explode(";", $this->answer); for ($i = 1; $i <= $num_slot; $i++) { $text .= $text_parts[$i - 1] . '(' . $i . ' ' . $answers[$i - 1] . ') '; //формируем текст вопроса без пропущенных слов } $fpdf->Write(5, iconv('utf-8', 'windows-1251', $text)); // вывод текста $fpdf->Ln(5); for ($i = 1; $i <= $num_slot; $i++) { // вывод верных ответов $fpdf->Write(5, iconv('utf-8', 'windows-1251', $i . ': ' . $answers[$i - 1])); $fpdf->Ln(5); } } else { // без ответов for ($i = 1; $i <= $num_slot; $i++) { $text .= $text_parts[$i - 1] . $i . '_______________'; //формируем текст вопроса } $parse_group_variants = []; $group_variants = []; $num_var = []; for ($i = 0; $i < count($variants); $i++) { $parse_group_variants[$i] = explode(";", $variants[$i]); //варинаты каждого селекта $group_variants[$i] = QuestionController::mixVariants($parse_group_variants[$i]); //перемешиваем варианты $num_var[$i] = count($group_variants[$i]); } $fpdf->Write(5, iconv('utf-8', 'windows-1251', $text)); // вывод текста $fpdf->Ln(5); for ($i = 1; $i <= $num_slot; $i++) { // вывод вариантов $fpdf->Write(5, iconv('utf-8', 'windows-1251', $i . ': ')); for ($j = 0; $j < $num_var[$i - 1] - 1; $j++) { $fpdf->Write(5, iconv('utf-8', 'windows-1251', $group_variants[$i - 1][$j] . ', ')); } $fpdf->Write(5, iconv('utf-8', 'windows-1251', $group_variants[$i - 1][$j] . '.')); // вывод последнего варианта $fpdf->Ln(5); } } }