Paginare din HTML via CSS


Am avut zilele trecute o problemă şi rezolvarea ei m-a entuziasmat mult aşa că m-am decis să pun în scris puţin. Care ar fi provocarea? Să presupunem că aveţi un text în HTML. Un articol, ori poate un roman. Şi doriţi ca la mutarea lui din HTML în Word (de exemplu cu copy şi paste) fiecare capitol să înceapă pe pagină nouă. Exact! Un page break care să se „transmită” din HTML în Word. Pentru aceasta marele secret este folosirea unui break special, gen:

<br style="page-break-before: always;" />

Sau putem pur şi simplu să ataşăm la H1 acest „comportament”, după cum vedeţi în schiţa de pagină de mai jos.

<html>
<head>
	<title>Test HTML pe pagini</title>
	<STYLE> h1 { page-break-before: always } </STYLE>
</head>
<body>

<h1>Capitolul I</h1>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit...

<h1>Capitolul II</h1>
Quisque id nulla vitae nunc tempus vehicula...

</body>
</html>

Puteţi verifica dând click aici. Un click în pagină apoi CTRL-A pentru a marca textul. Copiaţi-l în clipboard şi apoi mergeţi în Word şi daţi lipire (paste). Dacă vă apare plain-text apăsaţi ALT-E-S (pentru paste special) şi alegeţi HTML format. Veţi constata că fiecare capitol (definit la început de H1) va începe pe o pagină nouă! Şi lucrurile bune nu se opresc aici. H1 ajunge în Word ca Heading 1, iar H2 ca Heading 2 ş.a.m.d. La ce ne ajută? Putem genera imediat un cuprins. Din tabul References alegem Table of contents şi în câteva secunde avem cuprinsul generat (evident cuvântul Contents e editabil şi putem scrie acolo noi Cuprins).

Dacă vi se pare interesant dar fără aplicabilitate… se poate să fie aşa pentru Dvs. Sunt totuşi contexte în care această şmecherie e foarte utilă. Când anume? Mai ales când există un conţinut într-o bază de date ce se doreşte a fi exportat uşor şi cât mai fără de bătăi de cap în Word. Să zicem că avem o bază de date cu fişele angajaţilor (m-aţi prins! de la aşa ceva am ajuns eu la acest exemplu). În baza de date MySQL aveţi datele lor (nume, prenume, contact, biografie, ba chiar şi o poză). Cu puţină măestrie PHP faceţi ca acele date seci să fie afişate cât mai uman. Şeful vă cere să îi creaţi un PDF cu aceste fişe ale angajaţilor, câte una pe pagină, ca să îl aibă cu el. Fără şmecheria de mai sus, după ce aţi făcut afişarea şi copy and paste în Word, ar trebui să daţi manual page break după fiecare angajat, ca fiecare să fie pe o pagină. Dacă sunt 10 angajaţi merge şi manual, dar la… câteva sute?

Şi mai sunt veşti bune. Să zicem că vreţi să creaţi nişte ancore în document. Să zicem că afişaţi şi departamentele şi acolo vreţi ca numele să fie clickabile şi să ducă la pagina angajatului. În HTML e simplu: defineşti ancora şi gata problema. Doar că dacă faci copy and paste în Word ancora devine inutilă. De ce? Pentru că ea indica spre pagina web. Na… nu merge. Există şi aici un truc util. Salvaţi pagina HTML din navigator şi deschideţi fişierul HTML în Word. Surpriză: ancorele vor acţiona relativ la pagină şi nu la documentul HTML. Acum în documentul Word (sau fişierul PDF) se va putea da click (ctrl+click) şi naviga ca în documentul HTML! Voila!

Cu aceste două simple trucuri puteţi să transformaţi o informaţie lungă dintr-o bază de date într-un sistem organizat în Word sau PDF, în care să se conserve un sistem de navigare. Credeţi-mă, pentru cine are nevoie de aşa ceva, trucurile merg foarte bine şi rezultatul e colosal. Să poţi naviga într-un PDF/Word de zeci de pagini… şeful va spune că meritaţi o primă (nu, mie nu mi-a spus).


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (2 evaluări, media: 2,50 din 5)
Loading...Loading...

0 comentarii


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *