2016-02-09 22 views
6

mam powodzeniem generowania dokumentów Word przy użyciu kodu HTML, z nagłówkiem i stopką stylizowany w trybie drukowania css, tutaj jest mój kod:CSS: Nagłówek i stopka wyświetlacz tylko na pierwszej stronie generowanego PDF

<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'> 
<head><title>Mon document</title> 
<meta charset=\"UTF-8\" /> 
<!--[if gte mso 9]> 
<xml><w:WordDocument><w:View>Print</w:View><w:Zoom>100</w:Zoom><w:DoNotOptimizeForBrowser/></w:WordDocument></xml> 
<![endif]--> 
<link rel=File-List href=\"mydocument_files/filelist.xml\"> 
<style><!-- 
@page 
{ 
    size:21cm 29.7cmt; /* A4 */ 
    margin:1cm 1cm 1cm 1cm; /* Margins: 2.5 cm on each side */ 
    mso-page-orientation: portrait; 
    mso-header: url(\"mydocument_files/headerfooter.htm\") h1; 
    mso-footer: url(\"mydocument_files/headerfooter.htm\") f1; 
} 
@page Section1 { } 
div.Section1 { page:Section1; } 
p.MsoHeader, p.MsoFooter { border: none; } 
--></style> 
</head> 
<body> 
<div class=Section1> 
my content 
</div> 
</body> 
</html> 

Co chcę zrobić, to wyświetlić nagłówek i stopkę tylko na pierwszej stronie. Do tego starałem się zastosować visibility:hidden do nagłówka i stopki na stronach innych niż pierwszy ten sposób:

p.MsoHeader, p.MsoFooter { border: none; visibility: hidden;} 
p.MsoHeader :first, p.MsoFooter :first { border: none; visibility: visible;} 

Ale nagłówek i stopka są nadal wyświetlane na wszystkich stronach ... jakiś pomysł jak to zrobić sztuczka?

+0

Spróbuj utworzyć prosty przykładowy dokument w Wordzie z włączoną opcją "Pierwsza strona" dla nagłówka/stopki - jest to specyficzna opcja w programie Word. Następnie zapisz go jako plik HTML "round-trip" i sprawdź, czego program Word chce używać. –

+0

Próbowałem tego, ale różnica, którą dostaję, to mnóstwo znaczników mso-list-id ... Nie widzę żadnej różnicy, która by wskazywała coś na temat stopki nagłówka, mimo że użyłem wtyczki porównania w notatniku ++ –

+1

Nagłówki/stopki są związane z sekcjami. Dokument prawdopodobnie ma tylko jedną sekcję, a jego definicja jest zwykle bliska końca dokumentu. Może to pomoże ci ją znaleźć? –

Odpowiedz

1

Porównując słowo generowane html, tęskniłem jedna ważna tag mso CSS:

mso-first-header: url ... 

Zamiast mso-header.

Wraz z tym atrybut mso-title-page musi również być ustawiony na yes.

Łącząc te dwa, uzyskujesz pożądany efekt!

2

Spróbuj tego:

p.MsoHeader, p.MsoFooter { border: none; display: none;} 
p.MsoHeader :first, p.MsoFooter :first { border: none; display: block;} 

Lub, jeśli to nie zadziała, to lepiej, jeśli nie wywołać nagłówek i stopkę w pierwszej grze, tak po prostu usunąć te dwie linie ze stron że nie chcesz, aby nagłówek i stopka pojawiały się w:

mso-header: url(\"mydocument_files/headerfooter.htm\") h1; 
mso-footer: url(\"mydocument_files/headerfooter.htm\") f1; 
+0

jest już odpowiedź, która działa w 100%, twoja odpowiedź na początku nie działa, a druga część jest po prostu wyłączona –

Powiązane problemy