2016-02-09 67 views
6

sto generando con successo i documenti di Word utilizzando il codice HTML con intestazione e piè di pagina in stile in modalità di stampa css, qui è il mio codice:css modalità di stampa: intestazione e piè di pagina di visualizzazione solo sulla prima pagina di una parola generata doc

<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> 

Quello che mi piacerebbe fare è visualizzare l'intestazione e il piè di pagina solo sulla prima pagina. Per questo ho cercato di applicare visibility:hidden per l'intestazione e piè di pagina per pagine diverse rispetto a prima in questo modo:

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

Ma l'intestazione e piè di pagina vengono ancora visualizzati su tutte le pagine ... Qualsiasi idea di come fare il trucco?

+0

provare a creare un documento di esempio semplice in Word con l'opzione "Prima pagina" attivo per intestazione/piè di pagina - questo è un'opzione specifica in Word. Quindi salvalo come un file HTML "round-trip" e guarda ciò che Word vuole che tu usi. –

+0

Ho provato questo, ma la differenza che ottengo è un sacco di tag mso-list-id ... Non vedo alcuna differenza che indichi qualcosa sul footer dell'intestazione, nonostante abbia usato il plugin di confronto nel blocco note ++ –

+1

Intestazioni/piè di pagina associato a sezioni. Il documento ha probabilmente solo una sezione e la sua definizione è in genere vicino alla fine del documento. Forse questo ti aiuterà a trovarlo? –

risposta

1

Quando si confrontano generato di parola html, ho perso una cruciale tag mso css:

mso-first-header: url ... 

Invece di mso-header.

Insieme a questo, l'attributo mso-title-page deve anche essere impostato su yes.

Combinando questi due si ottiene l'effetto desiderato!

2

Prova questo:

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

O, se questo non funziona, è meglio se non si chiama l'intestazione e il piè di pagina nel primo gioco, quindi è sufficiente rimuovere queste due linee dalle pagine che non si desidera che l'intestazione e il piè di pagina a comparire in:

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

c'è già una risposta che funziona al 100%, la tua risposta che inizia non funziona e la seconda parte è appena fuori tema –

Problemi correlati