Używam Twitter-Bootstrap i muszę mieć możliwość wydrukowania strony tak, jak wygląda w przeglądarce. Mogę wydrukować inne strony utworzone za pomocą Twitter-Bootstrap, ale nie mogę wydrukować mojej strony, która używa wyłącznie Twitter-Bootstrap. Czy brakuje mi gdzieś tagu?
Oficjalna strona TB po wydrukowaniu:
Moja strona po wydrukowaniu:
Jak faktycznie wygląda moja strona:
printing
twitter-bootstrap
Jay Q.
źródło
źródło
Odpowiedzi:
Upewnij się, że masz przypisany arkusz stylów do drukowania.
Może to być oddzielny arkusz stylów:
lub udostępniony dla wszystkich urządzeń:
Następnie możesz zapisać swoje style dla drukarek w oddzielnych arkuszach stylów lub w udostępnionym arkuszu za pomocą zapytań o media:
źródło
media="screen"
, co nie będzie widoczne dla drukarki. Możesz to przełączyć namedia="all"
lub po prostu usunąć,media
jak sugeruje powyższa odpowiedź.Aktualizacja Bootstrap 3.2: (aktualne wydanie)
Obecna stabilna wersja Bootstrap to 3.2.0 .
W wersji 3.2 visual print jest przestarzała, więc powinieneś używać w następujący sposób:
Aktualizacja Bootstrap 3:
Klasy drukowania znajdują się teraz w dokumentach: http://getbootstrap.com/css/#responsive-utilities-print
Wersja Bootstrap 2.3.1:
Po dodaniu pliku bootstrap.css do HTML,
znajdź części, których nie chcesz drukować i dodaj
hidden-print
klasę do tagów. Ponieważ plik css zawiera to:źródło
body
) jako niewidoczne.hidden-print
, ale chcę przesłonić określony element do wyświetlenia?Wymień co
col-md-
zcol-xs-
np .: zamień co
col-md-6
nacol-xs-6
.To jest rzecz, która działała dla mnie, aby pozbyć się tego problemu, możesz zobaczyć, co musisz wymienić.
źródło
div
z nich znajdowała się poniżej poprzedniej. Ta odpowiedź dała mi wskazówkę, którą dodałemcol-xs-*
przed każdymcol-md-*
i to rozwiązało problem. ZRZECZENIE SIĘ: Nie testowałem dodawania kontenera, ponieważ<div class="row"></div>
może to również rozwiązać problem (wydaje się oczywiste).Jest sekcja
@media print
pliku css kodu (Bootstrap 3.3.1 [UPDATE:] do 3.3.5), która usuwa praktycznie całą stylizację, dzięki czemu można uzyskać dość nijakie wydruki, nawet gdy działa.Na razie musiałem uciekać się do rozebrania
@media print
sekcji z bootstrap.css - z czego naprawdę nie jestem zadowolony, ale moi użytkownicy chcą bezpośrednich zrzutów ekranu, więc na razie będzie to musiało wystarczyć. Jeśli ktoś wie, jak to stłumić bez zmian w plikach bootstrap, byłbym bardzo zainteresowany.Oto „obraźliwy” blok kodu, zaczynający się od wiersza 192:
źródło
Najlepsza opcja, jaką znalazłem, to http://html2canvas.hertzen.com/
http://jsfiddle.net/nurbsurf/1235emen/
źródło
Na wypadek, gdyby ktoś szukał rozwiązania dla Bootstrap v2.XX tutaj. Zostawiam rozwiązanie, którego używałem.Nie jest to w pełni przetestowane na wszystkich przeglądarkach, ale może to być dobry początek.
1) upewnij się, że atrybut media w
bootstrap-responsive.css
toscreen
.2) utwórz
print.css
i upewnij się, że ma atrybut mediaprint
3) w środku
print.css
dodaj „szerokość” swojej strony w html & body4.) odtworzyć niezbędne klasy zapytań o media w,
print.css
ponieważ były w środkubootstrap-responsive.css
i wyłączyliśmy je podczas drukowania.Oto pełna wersja
print.css
:źródło
2 rzeczy FYI -
źródło
Aby widok wydruku wyglądał jak tablet lub komputer, dołącz bootstrap jako .less, a nie jako .css, a następnie możesz nadpisać klasy responsywne bootstrap na końcu pliku bootstrap_variables, na przykład w ten sposób:
Nie przejmuj się umieszczaniem tych zmiennych na końcu pliku. LESS obsługuje leniwe ładowanie zmiennych, więc zostaną one zastosowane.
źródło
Jeśli chcesz zachować kolumny na wydruku A4 (czyli około 540 pikseli), jest to dobry pomysł
Możesz go używać w ten sposób:
<div class="col-sm-4 col-print-A4-4">
źródło