Domanda

Sto generando un documento da HTML. Esiste un modo per forzare il rendering della pagina HTML come una sola pagina stampata?

Ho eseguito la maggior parte della pagina con <table> e <div> tag.

È stato utile?

Soluzione

Non esattamente, ma puoi usare un foglio di stile di stampa:

<link rel="stylesheet" type="text/css" media="print" href="print.css" />

Per impostare le dimensioni dei caratteri, i padding, ecc. su unità fisiche come 'pt' (che non dovrebbe mai essere usato in un foglio di stile dello schermo!) in modo che finisca per essere più o meno una pagina A4, se resa in un tipico browser, con caratteri tipici, con un vento seguente. Nulla è garantito ma è possibile ottimizzare per il caso comune.

Nella stampa non devi preoccuparti così tanto delle preferenze sulla dimensione del carattere o delle impostazioni dpi, ma non puoi ancora controllare i margini utilizzati dal browser o le dimensioni effettive della pagina (US Letter è più piccola di A4), quindi lascia una buona quantità di spazio di manovra e test sui principali browser.

Altri suggerimenti

No. Non puoi controllare il livello di zoom dell'utente, le impostazioni della stampante, il formato della carta (sta usando carta A4 in Europa o legale negli Stati Uniti?) E tutte le altre cose che influenzano l'output della stampante usando HTML.

Il meglio che puoi fare con HTML è fare un & Quot molto semplice; & Quot facile da stampare; pagina e mantenere il contenuto breve. In alternativa puoi creare un PDF, che è progettato per permetterti di controllare come viene stampato.

Usa PDF. Puoi forzare molte cose come la dimensione del carattere, il tipo di carattere e molti altri parametri, ma qualsiasi browser può decidere che non gli interessa e utilizzare ciò che vuole e quindi violare i tuoi prerequisiti o decisioni. HTML non è (ripeti dopo di me: NON è) un linguaggio di presentazione.

In molti casi, funzionerà principalmente, ma nulla è certo.

Puoi usare i CSS per dare uno stile alla pagina e impostarla su una certa altezza / larghezza ... C'è un buon tutorial qui .

No, ma puoi rendere la vista di stampa molto più fluida usando un file CSS dedicato per i supporti di stampa, come suggerito sopra.

Quindi, ad esempio, potresti almeno impedire a una tabella di estendersi su 2 pagine utilizzando " page-break-before: sempre; quot &;.

E finalmente puoi anche usare " display: none; " su elementi che non sono necessari come annunci, barre di navigazione, ecc. per mantenere la pagina stessa più corta (abbastanza breve per una singola pagina, si spera).

Nessuna garanzia, tuttavia.

Certo. Hai un paio di possibilità:

  • Converti la tua pagina in un'immagine di grandi dimensioni.
  • Converti la tua pagina in PDF.
  • Infastidisci tutti i tuoi utenti con una pagina con dimensioni fisse che scorre a sinistra ea destra perché è troppo ampia e rende estremamente difficile il trasporto delle informazioni.

No, non è possibile in quanto non è possibile conoscere il tipo di stampante o il formato della carta al momento del rendering dell'HTML.

Il mio unico suggerimento sarebbe di impostare le proprietà della stampante per ridimensionare il contenuto in modo che si adattasse a una pagina al momento della stampa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top