масштабировать таблицу html перед печатью с помощью css

У меня есть таблица как весь контент HTML-документа (для целей законной таблицы... это данные таблицы, а не для макета). Некоторые ячейки имеют ширину и высоту, указанные (не через css, а используя старую калибровку inline в структуре таблицы), но общая таблица не имеет указанной ширины или высоты. Это довольно большая таблица, но при правильном масштабировании (около 70%) ее можно напечатать, чтобы она хорошо сочеталась на одном листе бумаги. Это можно сделать, используя функцию "масштабная страница" в настройках принтера IE, Firefox и Chrome. Есть ли способ масштабирования всей страницы (которая в моем случае является только этой таблицей) как часть таблицы стилей печати (я знаю о @media print {}, но там, где они игнорируются... проблема связана с правильными командами для масштабирования, а не с настройкой print css)? Я могу масштабировать экранное представление следующим образом:

body {
   transform: scale(.7);
}

однако при печати Chrome (и другие) игнорируют мой масштаб и автоматически масштабируют таблицу в соответствии с шириной бумаги, и это приводит к тому, что моя таблица разделяется на вторую страницу. Я пробовал применить это также без успеха:

table {page-break-inside: avoid;}

Ответы

Ответ 1

Я закончил переписывать всю таблицу с процентными размерами, применяемыми в качестве классов, а затем смог масштабировать страницу для печати. Не уверен, почему браузер игнорировал мои стили печати в отношении преобразования, но преобразование таблицы из фиксированных размеров в пропорциональные размеры позволило мне масштабировать ее с помощью CSS, и проблема исчезла.

Ответ 2

Вы должны использовать типы носителей

@media print {
    body {transform: scale(.7);}
    table {page-break-inside: avoid;}
}

Таким образом, эти стили будут применяться только в режиме предварительного просмотра. http://www.w3.org/TR/CSS21/media.html

Ответ 3

Я знаю, что поднимаю мертвых, но для ссылки на будущие результаты поиска:

У меня возникла проблема с суперширокими таблицами, из-за чего все браузеры неправильно вычисляли высоту и повторяли несколько раз на отдельных страницах - моим решением было применить масштабирование: 80% к телу (% зависит от ваших потребностей), что вынудило наша страница, чтобы эффективно подходить для печати, а thead затем правильно повторялась в верхней части каждой страницы. Возможно, попытка масштабирования будет работать там, где трансформация не изменилась.