2015-02-27 3 views
6

Ho una tabella come l'intero contenuto di un documento HTML (per scopi legittimi della tabella ... si tratta di dati di tabelle, non di layout). Alcune celle hanno larghezza e altezza specificate (non tramite css ma utilizzando il vecchio dimensionamento in linea in una struttura di tabella), ma la tabella generale non ha una larghezza o altezza specificata. Questo è un tavolo abbastanza grande, ma con un ridimensionamento adeguato (circa il 70%) può essere stampato per adattarsi perfettamente su un singolo foglio di carta. Questo può essere ottenuto utilizzando la funzione "scala della pagina" all'interno delle impostazioni della stampante di IE, Firefox e Chrome. C'è un modo per ridimensionare l'intera pagina (che nel mio caso è solo questa tabella) come parte di un foglio di stile di stampa (so su @media print {} ma le affermazioni vengono ignorate ... il problema è con i comandi corretti per il ridimensionamento, non con l'impostazione del css di stampa)? Posso scalare la visualizzazione su schermo con questo:tabella html in scala prima della stampa utilizzando css

body { 
    transform: scale(.7); 
} 

tuttavia quando la stampa, Chrome (e altri) ignorare la mia scala e automaticamente scalare la tabella in base alla larghezza della carta e che si traduce in mio tavolo essendo diviso su una seconda pagina. Ho cercato di applicare questo pure senza successo:

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

Mai provato qualcosa di simile a tabelle di ridimensionamento in stampa, ma sembra che potresti aver bisogno di una query di stampa per sovrascrivere lo stile di stampa predefinito del browser per le tabelle. '@media print {body {transform: scale (.7); }} ' –

risposta

5

Ho finito per riscrivere l'intera tabella con le dimensioni in percentuale applicate come classi e quindi ho potuto ridimensionare la pagina per la stampa. Non sono sicuro del motivo per cui il browser ha ignorato i miei stili di stampa riguardo alla trasformazione, ma la conversione della tabella da dimensioni fisse a dimensioni proporzionali mi ha permesso di ridimensionarla con i CSS e il problema è finito.

4

Si consiglia di utilizzare i tipi di supporto

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

Quindi, questo stili sarà applicando solo in modalità anteprima di stampa. http://www.w3.org/TR/CSS21/media.html

+2

il problema è che i browser ignorano queste istruzioni durante la stampa. Ho provato a applicarli in modo specifico nello stile di stampa, ma sono ignorati. – techtheatre

3

So di essere risuscitare i morti, ma per il futuro i risultati di ricerca di riferimento:

mi sono imbattuto in un problema con super wide tabelle che causano tutti i browser per calcolare l'altezza in modo non corretto e ripetere le più volte thead sul singolo pagine - la mia soluzione era applicare lo zoom: 80% al corpo (% varia in base alle esigenze) che ha costretto la nostra pagina ad adattarsi efficacemente alla stampa e il thead è stato poi ripetuto correttamente nella parte superiore di ogni pagina. Forse lo zoom di prova funzionerà laddove la trasformazione non ha funzionato.