Avatar billede Mads Larsen Nybegynder
28. maj 2009 - 14:54 Der er 4 kommentarer og
1 løsning

Udskrivning af HTML filer

Hej Eksperter

Jeg vil gerne udskrive en html fil (ikke kildekoden).

Den kode jeg har prøvet pt ser sådan ud, men jeg får en fejl med:

NullReferenceExeception was unhandled -
Objektreferencen er ikke indstillet til en forekomst af et object

Public Class Udskriv
    Dim WebBrowser1 As WebBrowser

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim fileloc As String = "C:\test.htm"
        fileloc.Replace("\", "/")
        WebBrowser1.Url = New Uri("file://" & fileloc)
        WebBrowser1.Print()
    End Sub
End Class


Hvis jeg selv har indsat en webbrowser med designer og skrevet URL'en i designeren kan jeg godt få den til at printe. Dog ville jeg gerne hvis man kunne tage sidehoved og sidefod væk.

Men det er ikke meningen at det er den eneste fil som skal printes.

Håber der er nogen som kan hjælpe :-)
Avatar billede aaberg Nybegynder
28. maj 2009 - 15:25 #1
Det er fordi websiden ikke er loadet færdig, når du kalder Print() metoden. En WebBrowser loader websiden asynkront.

Følgende eksempel er fundet på dokumentationen for WebBrowser kontrollen:
http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.documentcompleted.aspx

Private Sub PrintHelpPage()

    ' Create a WebBrowser instance.
    Dim webBrowserForPrinting As New WebBrowser()

    ' Add an event handler that prints the document after it loads.
    AddHandler webBrowserForPrinting.DocumentCompleted, New _
        WebBrowserDocumentCompletedEventHandler(AddressOf PrintDocument)

    ' Set the Url property to load the document.
    webBrowserForPrinting.Url = New Uri("\\myshare\help.html")

End Sub

Private Sub PrintDocument(ByVal sender As Object, _
    ByVal e As WebBrowserDocumentCompletedEventArgs)

    Dim webBrowserForPrinting As WebBrowser = CType(sender, WebBrowser)

    ' Print the document now that it is fully loaded.
    webBrowserForPrinting.Print()
    MessageBox.Show("print")

    ' Dispose the WebBrowser now that the task is complete.
    webBrowserForPrinting.Dispose()

End Sub
Avatar billede Mads Larsen Nybegynder
28. maj 2009 - 16:46 #2
Du har reddet min dag med det.

Ved du noget om hvordan man fjerner sidehoved og sidefod?
Avatar billede aaberg Nybegynder
07. juni 2009 - 19:54 #3
Headeren og footeren sættes fra internet explorer. Jeg kender desværre ikke nogen måde at gøre det i koden.

I internet explorer trykker du på pilen ned ved siden af printerikonet, og derefter trykke på "Page Setup...". Her kan du fjerne header og footer.
Avatar billede Mads Larsen Nybegynder
08. juni 2009 - 08:02 #4
Jeg har fundet en metode til det :)

det kan ændres i reg.db

"Software\Microsoft\Internet Explorer\PageSetup"

så jeg har bare lavet så den sætter header og footer til ingen ting og laver det om når jeg er færdig med at printe :)
Avatar billede aaberg Nybegynder
09. juni 2009 - 10:07 #5
smart :-)
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
Kurser inden for grundlæggende programmering

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