Ag-grid не отвечает в формате PRINT на весь экран - PullRequest
1 голос
/ 28 февраля 2020

В ag-grid есть встроенная функция для работы с отзывчивостью, основанная на размере экрана (в основном ширина), называемая gridApi.sizeColumnsToFit(), которая подходит для всех столбцов в зависимости от указанной ширины. Но этого не произойдет, если мы попытаемся напечатать .

Вещи, которые я пробовал, которые не сработали:

  1. Попытка вызова gridApi.sizeColumnsToFit() для функции windows.onBeforePrint.
  2. Попытка использования тайм-аута для windows.print(), так что ag-grid перерисовывается.
  3. Попытка выполнения windows.resizeTo() с двумя вышеупомянутыми , но поскольку он не поддерживает новые браузеры, или, может быть, это работает, только если вы открыли окно с помощью windows.open() и затем используете его.
  4. Попытался установить ширину контейнера ag-grid на @media print css, по-прежнему не работает, поскольку не выполняет повторную визуализацию таблицы.
  5. Попытка сделать таблицу не отвечающей на запросы перед печатью, чтобы мы могли предоставить подходящие значения ширины для столбцов на основе печати ширина, но такой функции для отменить 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

1 Ответ

0 голосов
/ 28 февраля 2020

Если # 5 (делая сетку «не отвечающей» и устанавливая ширину столбцов соответствующим образом для печати), работает для вас так, чтобы получить то, что вы хотите при печати, вы можете «отменить», либо вызвав columnApi.resetColumnState(), если вы хотеть - это состояние сетки, как определено в columnDefs, или вы можете сохранить размеры столбцов (см. columnApi.getColumnState()) перед тем, как установить их для режима печати, а затем снова установить их на эти значения.

...