2015-02-27 12 views
6

Mam tabelę jako całą zawartość dokumentu HTML (dla legalnych celów tabelowych ... jest to tabela danych, a nie dla układu). Niektóre komórki mają określone szerokości i wysokości (nie poprzez css, ale przy użyciu starej tabeli wymiarowania w strukturze tabeli), ale ogólna tabela nie ma określonej szerokości ani wysokości. Jest to dość duży stół, ale przy odpowiednim skalowaniu (około 70%) można go wydrukować tak, by pasował ładnie na pojedynczym arkuszu papieru. Można to osiągnąć za pomocą funkcji "skali strony" w ustawieniach drukarki IE, Firefox i Chrome. Czy istnieje sposób skalowania całej strony (która w moim przypadku jest właśnie tą tabelą) jako część arkusza stylów drukowania (wiem o @media print {}, ale instrukcje tam są ignorowane ... problem jest z odpowiednimi poleceniami do skalowania, a nie do konfiguracji drukowania css)? Mogę skalowania widoku na ekranie z tym:Skala tabeli html przed wydrukowaniem za pomocą css

body { 
    transform: scale(.7); 
} 

jednak podczas drukowania, Chrome (i inni) lekceważyć moją skalę i automatycznie przeskalować tabeli w celu dopasowania do szerokości papieru i że wyniki w moim stole zostaje rozszczepiony na drugiej stronie. Próbowałem stosowania tego również bez powodzenia:

table {page-break-inside: avoid;} 
+0

Nigdy nie próbowano coś w rodzaju skalowania tabel w druku, ale wydaje się, że może być potrzebne zapytanie o nośnik wydruku, aby zastąpić domyślny styl drukowania dla tabel. '@media print {body {transform: scale (.7); }} ' –

Odpowiedz

5

Skończyłem przepisywanie całej tabeli z procentowymi rozmiarami stosowanymi jako klasy, a następnie był w stanie skalować stronę do drukowania. Nie wiem, dlaczego przeglądarka ignorowała moje style drukowania dotyczące transformacji, ale konwersja tabeli ze stałych rozmiarów na proporcjonalne pozwoliła mi skalować ją za pomocą CSS, a problem zniknął.

4

Należy użyć dowolnych nośników

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

Tak, ten styl będzie poprzez zastosowanie tylko w trybie podglądu wydruku. http://www.w3.org/TR/CSS21/media.html

+2

Problem polega na tym, że przeglądarki ignorują te instrukcje podczas drukowania. Próbowałem zastosować je specjalnie w stylu drukowania, ale są one ignorowane. – techtheatre

3

wiem, że wskrzeszanie umarłych, ale dla przyszłych wyników wyszukiwania odniesienia:

wpadłem na problem z bardzo szerokich stołach powodujących wszelkie przeglądarek obliczyć wysokość nieprawidłowo i powtarzać wielokrotnie THEAD na pojedynczy strony - moim rozwiązaniem było zastosowanie zoomu: 80% do ciała (% zmienia się w zależności od Twoich potrzeb), co zmusiło naszą stronę do efektywnego dopasowania do druku, a thead następnie powtarzał się poprawnie u góry każdej strony. Być może próba powiększenia zadziała tam, gdzie transformacja nie działa.