170 похожих чатов

Привет, ребята! Наверняка многие использовали либы для генерации различных документов, в

том числе, 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()
итд

Каждый из методов в итоге будет инкапсулировать информацию о получении контента для него, о настройках шрифтов, расчеты отступов итд. В основном методе построения при этом будет просто последовательный вызов десятка методов.

Но минус в том, что при изменении в шаблоне документа придётся править класс сервиса и добавлять/изменять эти методы.

Подскажите, пожалуйста, какие еще варианты есть, как сделать код более читаемыи. Может быть, уже выработаны бест практисы / паттерны для таких случаев?

3 ответов

5 просмотров

чота многабукв. возьми mpdf и не мучайся

Sergio-K. Автор вопроса
Дмитрий Щербаков
чота многабукв. возьми mpdf и не мучайся

Не, не, долгая история, но mpdf не подходит (не поддерживает PDF/A-1a - как то тоже поднимал эту тему. В итоге подошла только старая добрая FPDF). Нужно как то научиться жить в текущих условиях) Саму задачу генерации файла решил. Теперь думаю о рефакторинге для приведения кода в адекватный вид.

Sergio K.
Не, не, долгая история, но mpdf не подходит (не по...

ааа ты все еще мудохаешься с этим говном A-1a ((

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
Кто создает тут ботов для телеграмм групп ?
Antskup
8
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
14
Я хочу запустить свой проект в тг. Что-то между пирамидой и майнилкой. Еще подобного ничего не было. Уникальная идея. Нужен именно не бот, а приложение. С ввод, выводом тон...
Павел А.
6
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
How to create an OS in C? what to study?
Linus
18
Карта сайта