Avatar billede rumbassen Nybegynder
31. marts 2006 - 10:09 Der er 8 kommentarer

Printe ud, uden at skulle trykke på print knappen

hvordan printer jeg en webside ud, uden at skulle trykke på print knappen.

jeg kører denne: window.print() så der kommer en dialogboks frem og herefter skal man selv trykke på print knappen.

jeg kører scriptet fra C# og er ikke sikker på hvordan jeg kan få java funktioner med i sådan et script.

er der nogen der kender til dette?
Avatar billede davidfossil Nybegynder
31. marts 2006 - 11:21 #1
Altså hvis du bare vil kalde window.print() fra dit ASP.NET codebehind skal du nok gøre noget lignende dette:
Page.ClientScript.RegisterStartupScript(typeof(string), "Print", "window.print();", true);
Avatar billede rumbassen Nybegynder
31. marts 2006 - 11:25 #2
Hvad skal jeg bruge for at finde Page.ClientScript.RegisterStartupScript ?
Jeg har udmiddelbart kun Page.RegisterClientScriptBlock(...
Avatar billede rumbassen Nybegynder
31. marts 2006 - 11:31 #3
for at få selve dialogen frem kan man jo bruge:
Page.RegisterClientScriptBlock("","<script language=javascript>window.print() </script>");
men den skulle jo gerne automatisk submitte...
Avatar billede rumbassen Nybegynder
31. marts 2006 - 11:32 #4
Jeg har også fundet et script som kan udskrive en side automatisk.

<html>
<script language="JavaScript">
DA = (document.all) ? 1 : 0
function handle_error()
{
        alert("\nNothing was printed. \n\nIf you do want to print this page, then\nclick on the printer icon in the toolbar above.")
        return true;
}
</script>
<body onload="window.print();">

<script language="VBScript">
sub window_onunload
        on error resume next
        set WB = nothing
        on error goto 0
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,1)
        else
              call WB.IOleCommandTarget.Exec(OLECMDID_PRINT ,OLECMDEXECOPT_DONTPROMPTUSER,"","","")
        end if
    if err.number <> 0 then
        if DA then
                    alert "Nothing Printed :" & err.number & " : " & err.description
        else
            handle_error
        end if
    end if
    on error goto 0
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>
</body>
Avatar billede rumbassen Nybegynder
31. marts 2006 - 11:34 #5
men at bruge det fra c# er ikke lykkedes endnu.
Avatar billede davidfossil Nybegynder
31. marts 2006 - 16:19 #6
Omkring Page.ClientScript glemte jeg at spørge hvilken version af frameworket du brugte, og gik ud fra at det nok var 2.0

Omkring det med at printe uden nogen dialog først lyder det IMHO som en temmelig syg idé. Jeg har testet dit script i de browsere jeg har installeret, og resultatet er (guskelov) nedslående:

FF 1.5: Samme effekt som window.print()
Opera 8: Samme effekt som window.print()
Opera 9: Samme effekt som window.print()
IE7: Alert box og advarselsbar i toppen af vinduet - "using an ActiveX control in an unsafe manner"
Avatar billede rumbassen Nybegynder
03. april 2006 - 07:32 #7
Jeg har kun mulighed for at bruge framework 1.1 endnu. :-(
min problemstilling er at web siden skal kunne printe ud på nogle bestemte tidspunkter uden brugeren behøver at være til stede netop hvor der skal printes.
For lige at forklare brugen af websiden, vil jeg oplyse at det er til en intranet application, som skal vise statestik som ind imellem skal printes.
Jeg har dog selv kun prøvet scriptet på en IE 6 og her blev web siden printet ud, uden dialog.
Har du en god ide til en løsning? for jeg har endnu ikke fået det til at virke automatisk fra c# endnu.
Avatar billede davidfossil Nybegynder
29. maj 2006 - 15:18 #8
Ved ikke om du stadig lytter her - spørgsmålet var forsvundet i stakken, beklager...

C# i ASP.NET er server side. Du kan IKKE køre C# kode på klientens maskine fra en web applikation. Dette leder direkte videre til et spørgsmål: Hvad er idéen med at udvikle dette system i ASP.NET? Det lyder i mine øre ikke som en web app., men nærmere som en simpel konsol applikation.
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