Używam window.print () do drukowania strony, ale otrzymałem nagłówek i stopkę zawierającą tytuł strony, ścieżkę do pliku, numer strony i datę. Jak je usunąć?
Próbowałem również wydrukować arkusz stylów.
#header, #nav, .noprint
{
display: none;
}
Proszę pomóż. Dzięki.
Odpowiedzi:
W przeglądarce Chrome można ukryć ten automatyczny nagłówek / stopkę za pomocą
Ponieważ zawartość będzie się rozciągać do granic strony, nagłówek / stopka drukowania strony będzie nieobecny. W takim przypadku powinieneś oczywiście ustawić marginesy / dopełnienia w elemencie body, aby zawartość nie rozciągała się aż do krawędzi strony. Ponieważ zwykłe drukarki po prostu nie mogą drukować bez marginesów i prawdopodobnie nie jest to to, czego chcesz, powinieneś użyć czegoś takiego:
Jak zauważył Martin w komentarzu, jeśli strona ma długi element, który przewija się poza jedną stronę (jak duża tabela), margines jest ignorowany, a wydrukowana wersja będzie wyglądać dziwnie.
W chwili oryginalnej odpowiedzi (maj 2013) działała tylko w Chrome, teraz nie jestem tego pewien, nigdy nie trzeba było próbować ponownie. Jeśli potrzebujesz wsparcia dla przeglądarki, której nie można naprawić, możesz utworzyć plik PDF w locie i wydrukować go (możesz utworzyć samodrukowy plik PDF z osadzeniem JavaScript), ale to ogromny problem.
źródło
body { margin: 1.6cm; }
ignorowałem dla mnie prawy margines (być może dlatego, że używałemtext-align:right
), więc zamiast tego utworzyłem<div class="container">
dla mojej treści i.container { margin: 1.6cm; }
zamiast tego użyłem .body { margin: 1.6cm; }
- ponieważ jest to margines dla całego dokumentu - nie będzie uwzględniał marginesów pionowych w przypadku dokumentów wielostronicowych, z wyjątkiem pierwszego i ostatniego. Niestety nie mogę wymyślić obejścia.Jestem pewien, że dodanie tego kodu do pliku css rozwiąże problem
Możesz odwiedzić to miejsce, aby dowiedzieć się więcej na ten temat
źródło
Firefox:
moznomarginboxes
atrybut w<html>
Przykład:
źródło
Dzisiaj mój kolega natknął się na ten sam problem.
Ponieważ rozwiązanie „margin: 0” działa w przeglądarkach opartych na chromie, program Internet Explorer nadal drukuje stopkę, nawet jeśli marginesy @ strony są ustawione na zero.
Rozwiązaniem (bardziej hack) było umieszczenie ujemnego marginesu na @page.
Należy pamiętać, że ujemny margines nie będzie działał dla osi Y, tylko dla X
Mam nadzieję, że to pomoże.
źródło
Standard CSS umożliwia zaawansowane formatowanie. W CSS istnieje dyrektywa @page, która umożliwia pewne formatowanie, które ma zastosowanie tylko do stronicowanych mediów (takich jak papier). Zobacz http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html .
a dla Firefoxa użyj go
W przeglądarce Firefox: https://bug743252.bugzilla.mozilla.org/attachment.cgi?id=714383 (wyświetl źródło strony :: tag HTML).
W kodzie, wymienić
<html>
z<html moznomarginboxes mozdisallowselectionprint>.
źródło
źródło
To będzie najprostsze rozwiązanie. Wypróbowałem większość rozwiązań w internecie, ale tylko to mi pomogło.
źródło
@page { margin: 0; }
działa dobrze w Chrome i Firefox. Nie znalazłem sposobu, aby naprawić IE przez css. Ale możesz przejść do ustawień strony w IE na swoim własnym komputerze i ustawić marginesy na 0. Naciśnij alt, a następnie menu plików w lewym górnym rogu, a znajdziesz Ustawienia strony. Działa to tylko dla jednej maszyny na raz ...źródło
1. W przypadku przeglądarki Chrome i IE
Dodaj atrybut moznomarginboxes w przykładzie:
źródło
Próbowałem usunąć nagłówek i stopkę strony html, którą wydrukowałem ręcznie.
Żadne rozwiązanie na tej stronie nie zadziałało, ale po prostu zdefiniowałem własną stopkę, jak wyjaśniono tutaj, Firefox nie dodałby własnego nagłówka i stopki.
To niestety nie działa w Chrome.
W CSS:
Dodaj to do swojego HTML:
źródło
Jeśli przewiniesz w dół do tego punktu, znalazłem rozwiązanie dla przeglądarki Firefox. Wyświetli zawartość określonego elementu div bez stopek i nagłówków. Możesz dostosować, jak chcesz.
Najpierw pobierz i zainstaluj ten dodatek: JSPrintSetup .
Po drugie, napisz tę funkcję:
Po trzecie, w swoim kodzie, gdziekolwiek chcesz napisać kod wydruku, zrób to (użyłem JQuery. Możesz użyć zwykłego javascript):
Oczywiście do kliknięcia potrzebny jest link:
I twój div do wydrukowania:
źródło
nie musisz pisać żadnego kodu. tuż przed wywołaniem window.print () po raz pierwszy zmień ustawienia drukowania swojej przeglądarki. na przykład w przeglądarce Firefox:
i jeszcze jeden przykład dla IE (używam IE 11 do poprzednich wersji, możesz zobaczyć to Zapobiegaj drukowaniu adresu URL na każdej stronie przez przeglądarkę Firefox lub Internet Explorer ):
źródło