Avatar billede cmm Nybegynder
05. september 2002 - 13:25 Der er 7 kommentarer og
1 løsning

udskriv et textarea på en printer

Jeg har en tilmeldingsside, hvor brugerne skal acceptere nogle vilkår, som kan ses i et textarea. Jeg vil så have en print knap, som kan udskrive vilkårene på brugerens printer.

Kort sagt en "print textarea funktion"
Avatar billede criterius.dk Nybegynder
05. september 2002 - 13:29 #1
Sæt teksten ind på en tom side

sæt dette under <head>:
<script type="text/javascript">
DA = (document.all) ? 1 : 0

//PRINT VED KALD "StartPrint ()" i Netscape og Explorer
function StartPrint() {
        if(DA){
            print();
            }
            else {
                window.print();
            }
        }   
function handle_error()
        {
      alert("Der opstod en uventet fejl. Der blev derfor ikke printet.")
      return true;
    }
</script>
<script type="text/vbscript">
sub window_onunload
        on error resume next
        set WB = nothing
end sub

sub print
        OLECMDID_PRINT = 6
        OLECMDEXECOPT_DONTPROMPTUSER = 2
        OLECMDEXECOPT_PROMPTUSER = 1
        on error resume next
        if DA then
              call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER)
        else
              call WB.IOleCommandTarget.Exec(OLECMDID_PRINT ,OLECMDEXECOPT_DONTPROMPTUSER,"","")
        end if
    if err.number <> 0 then
          if DA then
              //alert "Intet blev printet. Tryk 'Refresh' på din browser for at udskrive artiklen!"
          end if
    end if
end sub

  if DA then
        wbvers="8856F961-340A-11D0-A96B-00C04FD705A2"
else
        wbvers="EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B"
end if
document.write  "<OBJECT ID=""WB"" WIDTH=0 HEIGHT=0 CLASSID=""CLSID:"
document.write wbvers & """> </OBJECT>"

</script>

Sæt dette i <body>:
onLoad="StartPrint();"
Avatar billede criterius.dk Nybegynder
05. september 2002 - 13:30 #2
Og lav så et link der åbner tekstsiden, fx <a href="print_vilkaar.htm" target="blank">Udskriv vilkår</a>
Avatar billede criterius.dk Nybegynder
05. september 2002 - 13:32 #3
Du kan også kigge her - en anden metode:
http://javascript.internet.com/messages/print-page-auto.html
Avatar billede criterius.dk Nybegynder
05. september 2002 - 13:33 #4
Dette kan muligvis det du konkret oplyser: (Er dog ikke testet!)

<script language="JavaScript"><!--
if (window.print) {
  text = document.mxForm.myTextarea.value;
  winId = window.open('','newwin');
  with (winId.document) {
    write('<body onLoad="window.focus();window.print()"><pre>'+text+'</pre><\/body>');
    close();
  }
}
//--></script>
Avatar billede criterius.dk Nybegynder
08. oktober 2002 - 10:14 #5
LUKKETID?
Avatar billede lange Nybegynder
28. oktober 2002 - 12:27 #6
Undskyld jeg spørger, men hvorfor lægge vilkårene i et textarea? Er det meningen, at brugerne selv skal kunne indtaste vilkårene, for det er det textareas er beregnet til.

Hvis det er for at lave et scrollable område på dokumentet bør du vel anvende en iframe. Endnu bedre ville det være bare at have vilkårene stående på selve siden, så vil browserens indbyggede print-knap endda virke.
Avatar billede edutasia Nybegynder
21. november 2002 - 13:56 #7
Jeg ved godt, at dette spørgsmål er så "dødt", som det kan blive - men af hensyn til andre brugere, der kan være på jagt efter noget lignende, vil jeg lige nævne, at man kan bruge styles til at sikre, at det kun er en bestemt del af en side, der udskrives, når man bruger browserens print-funktion.

Definer et stylesheet med attributten media="print", indeholdende en klasse, der f.eks. kan hedde dontPrint. Sæt display=none for denne klasse.

Sæt derefter <span class=dontPrint> og </span> omkring alle elementer, der ikke skal udskrives (dvs. ét span, der går fra <body>-tagget og ned til textareaet - og et andet, der går fra textareaet og ned til </body>-tagget).

Prøv dette:

<HTML>
<HEAD>
<TITLE>Udskriv</TITLE>
</HEAD>
<STYLE media="print">
.dontPrint {display:none}
TEXTAREA {display:block !important; width:75%; border:none; overflow:auto}
</STYLE>

<BODY>
<span class=dontPrint>
det her skal ikke printes
</span>

<p>
<textarea cols=45 rows=12>
det her skal printes
</textarea>
</p>

<span class=dontPrint>
det her skal heller ikke printes
</span>
</BODY>
</HTML>
Avatar billede cmm Nybegynder
15. januar 2003 - 10:03 #8
Jeg har selv fundet en løsning. Tak for alle indsendte svar.
Jeg lukker nu.
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