В ag-grid
есть встроенная функция для работы с отзывчивостью, основанная на размере экрана (в основном ширина), называемая gridApi.sizeColumnsToFit()
, которая подходит для всех столбцов в зависимости от указанной ширины. Но этого не произойдет, если мы попытаемся напечатать .
Вещи, которые я пробовал, которые не сработали:
- Попытка вызова
gridApi.sizeColumnsToFit()
для функции windows.onBeforePrint
. - Попытка использования тайм-аута для
windows.print()
, так что ag-grid перерисовывается. - Попытка выполнения
windows.resizeTo()
с двумя вышеупомянутыми , но поскольку он не поддерживает новые браузеры, или, может быть, это работает, только если вы открыли окно с помощью windows.open()
и затем используете его. - Попытался установить ширину контейнера ag-grid на
@media print
css, по-прежнему не работает, поскольку не выполняет повторную визуализацию таблицы. - Попытка сделать таблицу не отвечающей на запросы перед печатью, чтобы мы могли предоставить подходящие значения ширины для столбцов на основе печати ширина, но такой функции для отменить
gridApi.sizeColumnsToFit()
.
нет. Вот фрагмент той же проблемы, который я предоставил на странице g-grid на g-grid относительно этой же темы. Ссылка: https://github.com/ag-grid/ag-grid/issues/3689
Создан пример, который должен повторить проблему,
Plunker Link: https://next.plnkr.co/edit/6TIdd8Vzi3121G5E
В plunker, go для предварительного просмотра, нажмите кнопку «Открыть предварительный просмотр в отдельном окне», которая находится в верхней правой части предварительного просмотра. Затем нажмите кнопку печати.
Вот ссылка для предварительного просмотра, если она работает: https://run.plnkr.co/preview/ck71wblt7000c3b69k4ho00cl/
Текущее поведение : все столбцы не видно в печати (но видно в пользовательском интерфейсе). Если количество столбцов больше или разрешение экрана больше (например, 1080p и выше), разница становится более заметной.
Ожидаемое поведение: Как и в пользовательском интерфейсе, ag-grid должен Будьте отзывчивы и в печати, она не должна просто копировать то, что находится в DOM, и печатать все, что умещается в области печати. При щелчке на печать, либо он должен реагировать в формате печати, либо должна быть какая-то особенность, которую мы могли бы обеспечить определенной шириной c всех столбцов самостоятельно. (например, такие функции как gridApi.sizeColumnsToFit () должны работать при печати)
Среда: Windows 10, код Visual Studio
ag- Версия сетки: ^ 19.1.2 Браузер: Chrome, Mozilla
Язык: Angular 4+, TypeScript / JavaScript, HTML5