Avatar billede Slettet bruger
28. april 2004 - 23:20 Der er 13 kommentarer og
1 løsning

udskrift for bred til printer

Hej

Nu har jeg rodet en hel del rundt for at finde en løsning på min problem, men selv om der er skrevet en hel del om det kan jeg ikke få det til.

Min side er opbygge af "div" elementer med tilhørende stylesheet. Jeg vil så udskrive et par af elementerne og det kan jeg godt få til at virke... Lige bortset fra at teksten er for bred til siden, og i stedet fora at rykke det ned på næste linie kommer det slet ikke med. Og det syntes jeg er trist :-(

Det skal måske lige nævnes at jeg tidligere har fået hjælp til at ændre bredden af nogle af elementerne med et javascript og body onload så måske er det det der driller.

Håber der en der kan hjælpe.

Her kommer kode:

Mit stylesheet media="print"

@media print {

#body, div {
    width: auto;
    border: 1px solid green;
    margin: 5px 5px;
    padding: 0;
    float: none !important;
}
}

#icon_print {
    Display: none;
}

#topbar {
    Display: none;
    position: relative;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 20px;
    background-color:#24A520;
    text-indent: 20px;
    font-family: arial, verdana, sans-serif;
    color: #FFFFFF;
    font-weight:bold;
    font-size: 14px;
}

#logobar {
    Display: none;
    position: relative;
    left: 0px;
    top: 1px;
    width: 100%;
    height: 45px;
    background-color:#D4D0C8;
    text-indent: 20px;
    font-family: arial, verdana, sans-serif;
    color: #000000;
    font-weight:bold;
    font-size: 16px;
}

#personalmenubar {
    Display: none;
    position: relative;
    top: 0px;
    left: 0px;
    width: 100%;
    background-color:#b1b19f;
    text-indent: 20px;
    font-family: arial, verdana, sans-serif;
    color: #24A520;
    font-weight:bold;
    font-size: 14px;
}

#rightmenu {
    Display: none;
    position: relative;
    TOP: 3px;
    left: 0px;
    width:120px;
    float: left;
    background-color:#D4D0C8;
    padding-left: 5px;
    font-family: arial, verdana, sans-serif;
    color: #000000;
    font-weight:none;
    font-size: 14px;
}

#content {
    position: absloute;
    top: 0px;
    left: 0;
    float:left;
    background-color: #FFFFFF;
    font-family: arial, verdana, sans-serif;
    color: #000000;
    font-weight:none;
    font-size: 14px;
}

#bottombar {
    Display: none;
    clear:left;
    position: relative;
    top: 0px;
    left: 0px;
    width: 100%;
    background-color:#b1b19f;
}


#m1 {

    font-weight: bold;
    font-size: 16px;
}

#c1 {
    font-weight: bold;
    font-size: 16px;
}

#godbesked {
    font-weight: bold;
    font-size: 13px;
    color: #24A520;
}

...og her kommer de to javescript som jeg jo så har fået lavet her :-)

<script type="text/javascript">
var divs = ['content','rightmenu'];
var faste = ['topbar','logobar','personalmenubar','bottombar']
function syncronizeDivs(){
    document.getElementById('content').style.width = document.body.offsetWidth - 135 + 'px';
    var maxH = document.body.offsetHeight ;
    d = document.getElementsByTagName("DIV");
    for(i=0;d.length>i;i++){
        for(j=0;faste.length>j;j++){
            if(d[i].id==faste[j])maxH -= d[i].offsetHeight;
        }
    }
    for(i=0;d.length>i;i++){
        for(j=0;divs.length>j;j++){
            if(d[i].id==divs[j])maxH = Math.max(maxH,d[i].offsetHeight);
        }
    }
    for(i=0;d.length>i;i++){
        for(j=0;divs.length>j;j++){
            if(d[i].id==divs[j])d[i].style.height=maxH + 'px';
        }
    }
}
</script>

...og det andet...


<script type="text/javascript">

function syncronizeDivsWide(){
   
    document.getElementById('topbar').style.width=document.getElementById('sidetabel').offsetWidth + 12 +'px';
    document.getElementById('logobar').style.width=document.getElementById('sidetabel').offsetWidth + 12 +'px';
    document.getElementById('personalmenubar').style.width=document.getElementById('sidetabel').offsetWidth + 12 +'px';
    document.getElementById('bottombar').style.width=document.getElementById('sidetabel').offsetWidth + 12 +'px';
   
}
</script>
Avatar billede roenving Novice
28. april 2004 - 23:41 #1
Et gæt kunne være at du skulle sætte en @page ind i dit print-stylesheet:

@page{size:21cm 29.7cm}

-- men jeg er ikke sikker ...

-- men dine 2 javascripts kan absolut optimeres:

<script type="text/javascript">
var divs = ['content','rightmenu'];
var faste = ['topbar','logobar','personalmenubar','bottombar']
function syncronizeDivs(){
    document.getElementById('content').style.width = document.body.offsetWidth - 135 + 'px';
    var maxH = document.body.offsetHeight ;
    for(i=0;faste.length>i;i++){
        maxH -= document.getElementById(faste[i]).offsetHeight;
    }
    for(i=0;divs.length>i;i++){
        maxH = Math.max(maxH,document.getElementById(divs[i]).offsetHeight);
    }
    for(i=0;divs.length>i;i++){
        document.getElementById(divs[i]).style.height=maxH + 'px';
    }
}

function syncronizeDivsWide(){
    var w = document.getElementById('sidetabel').offsetWidth + 12 +'px';
    for(i=0;faste.length>i;i++){
        document.getElementById(faste[i]).style.width = w;
    }
}
</script>

-- hvis jeg skal komme videre end gætte-stadiet er det også nødvendigt at vide, hvor sidetabel-tingen kommer ind i billedet !-)
Avatar billede Slettet bruger
29. april 2004 - 01:36 #2
Hej
Jeg tror faktisk det var dig der har lavet det til mig i sin tid, men jeg har muligvis pillet ved det siden :-)

Jeg havde problemer med at "rightmenu" og "content" røg under hinanden og ved "Sidetabel" er de altid ved siden af hinanden.
"Sidetabel" består af en række med to celler hvori rightmenu og conten er i.
Avatar billede Slettet bruger
29. april 2004 - 01:38 #3
Det med @page{size:21cm 29.7cm} virker ikke :-(
Avatar billede roenving Novice
29. april 2004 - 01:42 #4
Passer fint, at jeg har lavet den første del af det, og det var oprindelig rettet mod en eller flere classes, så derfor reagerede jeg ikke i de første omgange, hvor det ikke var classes, på det principielt tåbelige at finde en div ved at traversere alle divs igennem, når vi direkte har id ...
Avatar billede Slettet bruger
29. april 2004 - 01:50 #5
Nu er jeg ikke sååå stærk i det der... Kan du se hvad jeg kan gøre for at få hele bredden af conten med når siden printes?
Avatar billede roenving Novice
29. april 2004 - 01:53 #6
Du kunne sætte en bredde i din print-del af style-sheetet:

@media print {

#body, div {
    width: auto;
    border: 1px solid green;
    margin: 5px 5px;
    padding: 0;
    float: none !important;
}
#content {
    position: absloute;
    top: 0px;
    left: 0;
    float:left;
    background-color: #FFFFFF;
    font-family: arial, verdana, sans-serif;
    color: #000000;
    font-weight:none;
    font-size: 14px;
    width:17cm;
}
}
Avatar billede Slettet bruger
29. april 2004 - 02:00 #7
Det virker heller ikke..
Avatar billede Slettet bruger
29. april 2004 - 02:01 #8
Jeg har to stylesheets - et til print og et til skærm og det du lige har skrevet har jeg sat ind i det til print.
Avatar billede roenving Novice
29. april 2004 - 02:03 #9
Men der er jo ingen bredde på content ...

-- og hvorfor har du så @media omkring en lille smule af det ?-)
Avatar billede Slettet bruger
29. april 2004 - 02:08 #10
Jeg endte med at prøve mig frem, men intet af det lykkedes. Det er derfor - der er ikke tænkt mere over det...
Avatar billede Slettet bruger
29. april 2004 - 23:30 #11
Hej - er der en der kan hjælpe med en løsning? Det ville være rigtig rart :-)
Avatar billede Slettet bruger
30. april 2004 - 00:33 #12
Det ser ud til at det er <body onload="syncronizeDivs(); syncronizeDivsWide();> Der er probemet, for når jeg fjerne dem, så er der ingen problemer med print.
Ved du hvordan jeg kan løse det smartest?
Avatar billede roenving Novice
30. april 2004 - 01:50 #13
Tjah, det passer, at jo nærmere til selve objektet du kommer med en style-property-definition, jo kraftigere virker den, altså har forrang fremfor andre definitioner ...

-- og man kommer næppe tættere end en style sat onthefly på et specifikt element ...
Avatar billede Slettet bruger
04. maj 2004 - 14:28 #14
Det lader ikke til at der kommer nogen løsning, så jeg lukker.
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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