Это, вероятно, https://en.wikipedia.org/wiki/XY_problem
Вы можете просто подписаться на изменения формы управления и выполнить там функцию:
[114 ] this.form.get('answers').valueChanges.subscribe(val => {
// check the condition and execute the function
});
Не точно, но можно использовать таблицу стилей печати:
<link rel="stylesheet" type="text/css" media="print" href="print.css" />
Установить размеры шрифта, дополнения, и т.д. к физическим единицам измерения как 'pt' (который никогда не должен использоваться в экранной таблице стилей!) так, чтобы это закончило тем, что было более или менее страницей A4 при рендеринге в типичном браузере, с типичными шрифтами, со следующим ветром. Ничто не гарантируется, но можно оптимизировать для общего падежа.
В печати Вы не должны волноваться так о предпочтениях размера шрифта или настройках точек на дюйм, но Вы все еще не можете управлять полями использование браузера, или фактический размер страницы (американская Буква меньше, чем A4), так оставьте хорошую сумму пространства для маневра и теста на главных браузерах.
Нет. Вы не можете управлять уровнем масштабирования пользователя, параметрами принтера, формат бумаги (он использует лист А4 в Европе или законный в США?) и все различные другие вещи, которые влияют на вывод принтера с помощью HTML.
Лучшее, которое можно сделать с HTML, делают очень простую "благоприятную для принтера" страницу и сохраняют содержание коротким. Кроме того, можно создать PDF, который разработан, чтобы позволить Вам управлять, как он печатается.
Можно использовать CSS, чтобы разработать страницу и установить его на определенную высоту / ширина... Здесь существует хорошее учебное руководство.
Используйте PDF. Можно вызвать много вещей как размер шрифта, тип шрифта и много других параметров, но любой браузер может решить, что они не заботятся и используют то, что они хотят и тем самым нарушают предпосылки или решения. HTML не (повторение после меня: не), язык презентации.
Во многих случаях это будет главным образом работать, но ничто не бесспорно.
Нет, но можно сделать представление печати намного более гладким при помощи специализированного файла CSS для печатных СМИ, как предложенный выше.
Затем Вы могли, например, по крайней мере, препятствовать тому, чтобы таблица охватила более чем 2 страницы при помощи "page-break-before: всегда";.
И наконец Вы могли также использовать "display:none;" на элементах, которые являются ненужными как реклама, военно-морские панели, и т.д. для хранения самой страницы короче (достаточно короткой для единственной страницы, надо надеяться).
Никакие гарантии, все же.
Конечно. У Вас есть несколько возможностей:
Нет нет пути, поскольку Вы не могли возможно знать тип принтера или формат бумаги во время рендеринга HTML.
Мое единственное предложение состояло бы в том, чтобы установить свойства принтера для масштабирования содержания для установки одной странице во время печати.