!

Dette materialet blir ikke lenger vedlikeholdt. Du vil finne oppdatert materiale på siden: http://borres.hiof.no/wep/

pages
CSS
Børre Stenseth
CSS >Sider i CSS

Sider i CSS

Hva
Sidebegrepet i CSS og PDF

Versjon 2.1 av CSS annonserer sidebegret, regelen @page. Dette gjør det mulig for oss å lage sidelayout, med sidenummerering, header, footer, høyre og venstre oppslag osv. Kort sagt vi kan kontrollere utskrift på en helt annen måte enn tidligere. Et område der dette er intressant er produskjon av PDF. Vi holder oss til dette i denne modulen.

Mens vi venter på at nettleserne skal fikse konvertering av XHTML til PDF med sidebegrep, kan vi bruke programmet Prince [1] . Prince er åpent tilgjengelig i den forstand at vi kan laste ned en versjon og bruke den fritt på vår egen maskin. Som en del andre programmer med en slik begrenset fri lisens, setter Prince igjen sitt bumerke øverst til høyre på første side. Dette forsvinner når vi printer.

Eksempel 1

Vi ser på denne siden som eksempel. Slik du betrakter den nå er den styrt av et stilsett som beskriver utseendet for @screen. Dersom du ber nettleseren vise en print-preview, eller du ber om en print, vil du se at siden ser annerledes ut. Nettleseren kopler inn stiler som jeg har beskrevet med regelen @print. Forskjellen er i grove trekk at jeg har tatt vekk (display:none) menyene og banneret og jeg har lagt til en enkel footer. Jeg har dessuten lagt til sideskift (page-break-after:allways) for headinger av typen h1. Dette er omtrent så lang jeg kommer i bruk av tradisjonell CSS. Du kan se mitt stilsett som tar opp disse problemene her: stiler. (denne siden bruker flere stilsett)

Nå ønsker jeg å tilføre stiler for bedre side kontroll. Jeg lager et stilsett som ser slik ut:

@page { size: A4;
        margin: 60pt 30pt 40pt 30pt;
        @top-left {
            content:url(printlogo.gif);
          border-bottom-style:solid;
          border-bottom-width:thin;
        }
        @top-right {
            content:"Markup og Web";
            font-size:24px;
          border-bottom-style:solid;
          border-bottom-width:thin;
        }
        @bottom-right {
          content: counter(page);
            font-style: italic
        }
}

Så gjør jeg følgende, enten ved GUI'en til prince eller via commandolinja:

prince

Se resultatet http://www.it.hiof.no/~borres/dw/paging/p-paging1.pdf

Ikke særlig imponerende, men vi har i hvertfall greidd å sette opp A4 med marger, og vi har greidd å legge til en header og sidenummerering som footer.

Det er imidlertid en ting som er verdt å merke seg: Vår definisjon av @print legges til grunn. Det kan vi se siden menyer og annet er fjernet. Dette har den konsekvensen at vi kan preparere for så pen som mulig XHTML-utskrift med "tradisjonell" CSS og så kan vi legge til effekter ved hjelp av @page dersom vi ønsker pdf.

Vi forsøker å bygge ut stilsettet vårt litt:

@page { size: A4;
        margin: 60pt 30pt 40pt 30pt;
        @top-left {
            content:url(printlogo.gif);
          border-bottom-style:solid;
          border-bottom-width:thin;
        }
        @top-right {
            content:"Markup og Web";
            font-size:24px;
          border-bottom-style:solid;
          border-bottom-width:thin;
        }
        @bottom-right {
          content: counter(page);
            font-style: italic
        }
}
table,fieldset,
.javascriptcode,.pythoncode,.javascriptcode,.javacode,.mlcode
{page-break-inside: avoid}
fieldset{border-left:1px solid gray;
         padding:10px;
         padding-left:20px
         }
legend {
  display:block;
  margin-bottom:10px;
  font-weight:bold;
  font-size:110%;
  text-align:left;
  }

og prøver igjen:

Se resultatet http://www.it.hiof.no/~borres/dw/paging/p-paging2.pdf

Vi har ryddet litt i fieldsets og legends, og vi har forsøkt å unngå sideskift inne i kodeblokker og tabeller. Merk at de siste definisjonene ligger utenfor @page - blokken. De gis likevel prioritet i den transformasjonen Prince gjør.

Prince inneholder en rekke flere muligheter enn det som er brukt i dette enkle eksempelet, se dokumentasjonen og eksemplene på vevsiden til Prince.

Referanser
  1. Prince XML Prince www.princexml.com/ 14-03-2010
  1. CSS 2.1 W3C www.w3.org/TR/CSS21/ 14-03-2010
  1. CSS (Cascading Style Sheets) w3.org www.w3.org/Style/CSS/ 14-03-2010
Modulen På papir viser noen utskriftsmuligheter fra dette materialet.
Vedlikehold

B. Stenseth, juli 2009

( Velkommen ) CSS >Sider i CSS ( Prince,CSS og PDF )