том числе, PDF.
Многие из них (особенно, старые) не поддерживали создание документа на основе html+css верстки.
Следовательно, приходится, ваять что то вроде:
$h1Text = $object->name + '.';
$descriptionText = 'мама мыла раму';
$file->AddPage();
$file->SetFont('Arial', '', 16);
$file->WriteText($h1Text);
$file->WriteText($descriptionText);
$file->Ln(35);
$file->addTable();
$file->Cell($width, $height, $cellText);
итд итп
В итоге получается простыня на пару сотен строк кода, где шаблон затруднительно отделить от бизнес логики.
Захотелось как то упорядочить это дело. Пришла в голову идея, для каждого смысловго блока документа завести отдельный метод, вроде:
showH1()
showH3()
showDescription()
итд
Каждый из методов в итоге будет инкапсулировать информацию о получении контента для него, о настройках шрифтов, расчеты отступов итд. В основном методе построения при этом будет просто последовательный вызов десятка методов.
Но минус в том, что при изменении в шаблоне документа придётся править класс сервиса и добавлять/изменять эти методы.
Подскажите, пожалуйста, какие еще варианты есть, как сделать код более читаемыи. Может быть, уже выработаны бест практисы / паттерны для таких случаев?
чота многабукв. возьми mpdf и не мучайся
Не, не, долгая история, но mpdf не подходит (не поддерживает PDF/A-1a - как то тоже поднимал эту тему. В итоге подошла только старая добрая FPDF). Нужно как то научиться жить в текущих условиях) Саму задачу генерации файла решил. Теперь думаю о рефакторинге для приведения кода в адекватный вид.
ааа ты все еще мудохаешься с этим говном A-1a ((
Обсуждают сегодня