Avatar billede mikaelo Nybegynder
16. juni 2005 - 15:18 Der er 12 kommentarer

Udskriftvenlig side/Print funktion

Jeg har en hjemmeside, indeholdende en hel del sider, hvor jeg gerne vil have lavet en printvenlig funktion, som skriver de enkelte sider ud. uden billeder og tilpasset A4 format.

Har således fundet et script der fjerner billeder og grafik på den printvenlige version og det er ét skrift i den rigtige retning. MEN (!), da jeg har layoutet min side med en fast defineret bredde på 760px, skriver den ikke hele siden ud. Altså skriver den faktisk ud fuldkommen som siden normalt ser ud, bare undtagen billeder.

Jeg leder altså efter en funktion/javascript, der kan "formatere" mine sider til at holde sig indenfor et A4 og samtidigt "ignorere" billeder og grafik.

Ideer!?


(mine sider er lavet i PHP, dog temmeligt analogt - altså ingen dataudtræk. Gør brug af include funktion som det eneste...)
Avatar billede Slettet bruger
16. juni 2005 - 15:39 #1
Du kan sagtens klare det med ren css.
http://www.w3.org/TR/REC-CSS2/media.html

Det kræver blot endnu en css fil, eller tilføjelse til din nuværende css fil.

eksempelvis kan du under din print css sige:

body { width: 500px; }
img { display: none; }
Avatar billede mikaelo Nybegynder
16. juni 2005 - 15:50 #2
ok tak. Men dvs. jeg skal lave en ny side for hver side så? Og så tilføje print css´et der?
Avatar billede pehory Nybegynder
16. juni 2005 - 22:21 #3
Måden du laver det nemmest på er at have følgende på alle sider:
<link rel="stylesheet" href="style.css" type="text/css" media="screen">
<link rel="stylesheet" href="print.css" type="text/css" media="print">

Det normale layout skal ligge i css'en style.css og så skal du lave print.css sådan at det kommer til at passe papiret. Hvis du skal bruge denne model kommer du sansynligvis til at skulle kode en del om, så css'en definerer alt med farver, størrelser og placering.
Avatar billede Slettet bruger
18. juni 2005 - 16:46 #4
Ganske rigtig som pehory siger.
Du skal blot indsætte endnu et link til en css fil på dine sider.
og da du gør brug af include, er det temlig sikkert kun en fil du skal rediger ;)

Så nej, du skal ikke oprette en side for hver side.
Avatar billede mikaelo Nybegynder
20. juni 2005 - 13:37 #5
Ok, jeg forstår. Men hvordan "kalder" jeg så udskriv side funktioen - hvad skal "Udskriv side" linket, linke til?

Og, nu er min side stillet op vha. tabeller, hvor alt er defineret i px.
Vil det så betyde at jeg skal komplet re-layoute mine sider??
Avatar billede mikaelo Nybegynder
20. juni 2005 - 15:40 #6
...og hvad er max vidden på en printvenlig side?
Avatar billede pehory Nybegynder
20. juni 2005 - 18:17 #7
Du skal regne med 640 px i bredden for en A4 (mine erfaringer).
Du skal linke til den side man er på :-) Der er én style til skærm og én style papir. Altså er det samme html/php/asp dokument man udskriver som man kigger på.
Om du skal total  re-layoute må du selv bedømme. Men hvis det er muligt for dig vha. print stylen at få det resultat du vil have, er det vel ikke nødvendigt.

Lige et godt tip: Det kan være meget godt at kunne gøre ting usynlige til print. Dette gøres således (css):
visibility:hidden;
Avatar billede mikaelo Nybegynder
20. juni 2005 - 21:05 #8
Ok, forstår...næsten;)
Jeg linker til den samme side, da jeg har attachet to CSS´er. Men hvordan finder mine sider ud af hvilken CSS der er til skærm, og hvilken der er til print?? De er jo begge ganske normalt tilføjet med <link rel="stylesheet"...osv.>?

Er du med;)?
Avatar billede pehory Nybegynder
21. juni 2005 - 00:41 #9
media="screen"
media="print"

;-)
Avatar billede mikaelo Nybegynder
21. juni 2005 - 01:50 #10
Well, enten har jeg stirret blind på sagerne eller også er jeg....noget i retning af dum!;)

Er meningen med jeres forslag, at man IKKE skal klikke på et link, "Udskriv side", men blot gå i Filer - Udskriv side osv.??? Og så finder "den" selv ud af, at den skriver ud og bruger print.css på "udskriften". Lyder forunderligt mærkeligt, men hvad.....

Hvis jeres forslag imidlertidigt er et "Udskriv side" link, så dur det ikke bare med et <a href="....> I så fald kan jeg ikke få det til at virke...

Lige den sidste hjælp her;)?
Avatar billede mikaelo Nybegynder
21. juni 2005 - 02:09 #11
Ooooooook! Der var den! Det var jo netop det utænkelige, nemlig at det først er at se på udskriften, ingen behov for udskriv side knap! Sk#¤e smart!:)

Well, et sidste problem; nu slap jeg så for billeder og grafik, hvilket er super. Men, cellerne hvor grafikken er placeret i er, som nævnt, fast defineret i px. Disse celler skal, på en eller anden facon, "kollapse" på udskriften. Altså sådan at min side, som er 760px bred, bliver 150px smallere og således passer på en A4. Kan det lade sig gøre? Og hvis ja, hvordan!?

Tak for hjælpen indtil nu - storartet!;) Sig til hvis der er brug for fler´ point...
Avatar billede pehory Nybegynder
21. juni 2005 - 12:24 #12
Du kan vel bare ændre lidt på dine pixels i style-sheetet. Og hvis de er i dit html dokument må du jo smide dem over i css'en.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester