Imprimer une page web sans l'ouvrire

cs_gabay Messages postés 25 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 29 juin 2010 - 26 mai 2008 à 16:25
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 - 26 mai 2008 à 18:57
bonjour,
voila j'essaye d'imprimmer une page web stocké sur le disque dure mais j'y arrive pas, tous ce que j'ais pu faire c imprimer le code html de la page !!
voici le code:

'dans le bouton imprimer par exemple:
Private

Sub ToolStripMenuItem3_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles ToolStripMenuItem3.Click

Dim dlg
AsNew PrintDialogdlg.AllowCurrentPage Truedlg.AllowPrintToFile
Truedlg.AllowSelection Truedlg.AllowSomePages
Truedlg.PrintToFile Truedlg.ShowHelp
Truedlg.ShowNetwork Truedlg.Document pd

dlg.UseEXDialog =

True

Dim result
As DialogResult = dlg.ShowDialog()

If (result = System.Windows.Forms.DialogResult.OK)
Then

TrystreamToPrint =

New StreamReader(
"d:\bulletin de paie.html", Encoding.Default)printFont =

New Font(
"calibri", 11)

AddHandler pd.PrintPage,
AddressOf
Me.pd_PrintPagepd.Print()

Catch ex
As ExceptionMessageBox.Show(ex.Message)

End Try
End If
End Sub

Private Sub pd_PrintPage(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
        Dim linesPerPage As Single = 0
        Dim yPos As Single = 0
        Dim count As Integer = 0
        Dim leftMargin As Single = ev.MarginBounds.Left
        Dim topMargin As Single = ev.MarginBounds.Top
        Dim Line As String = Nothing        ' Calculate the number of lines per page.
        linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics)

        ' Print each line of the file.
        While count < linesPerPage

            Line = streamToPrint.ReadLine()
            If Line Is Nothing Then
                Exit While
            End If
            yPos = topMargin + count * printFont.GetHeight(ev.Graphics)
            ev.Graphics.DrawString(Line, printFont, Brushes.Black, leftMargin, yPos, New StringFormat())
            ev.PageSettings.Landscape = True
            count += 1
        End While

        ' If more lines exist, print another page.
        If Not (Line Is Nothing) Then
            ev.HasMorePages = True
            ev.PageSettings.Landscape = True
        Else
            ev.HasMorePages = False
        End If
    End Sub

ps: ce code imprime le code html de la page web et non pas le format afficher sur le browser !

15 réponses

Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
26 mai 2008 à 16:34
Salut,

Oui c'est normal, dans ton cas tu imprime le fichier, et non le rendu de la page html. Tu es obligé de passer par un moteur de rendu si tu veux imprimer l'aspect graphique de ta page. Cherche si la classe WebBrowser n'a pas une fonction permettant d'imprimer sont contenu (je ne sais pas)...
0
cs_gabay Messages postés 25 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 29 juin 2010
26 mai 2008 à 16:38
si mais dans ce cas le webBrowser doit etre ouvert pour l'impression
alors que l'impression peut allé de 1 a 100 page ca depend de l'utilisation
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 mai 2008 à 16:38
Dim myProcess As New Process()
myProcess.StartInfo.FileName = "d:\bulletin de paie.htm"
myProcess.StartInfo.Verb = "Print"
myProcess.StartInfo.CreateNoWindow = True
myProcess.Start()
0
cs_gabay Messages postés 25 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 29 juin 2010
26 mai 2008 à 16:46
ca marche pa ca non plus ca genere une erreur a la derniere ligne !!!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_gabay Messages postés 25 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 29 juin 2010
26 mai 2008 à 16:55
apprement une application doit etre associer au fichier spicifique


g essayé la meme chose mais avec un fchier txt et ca a marché !!!
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 mai 2008 à 16:58
sans plus de détails, impossible de faire quoi que ce soit pour toi...
(fonctionne bien chez moi, avec Safari)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 mai 2008 à 16:59
tu n'as pas d'application liée aux fichier htm ?
0
cs_gabay Messages postés 25 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 29 juin 2010
26 mai 2008 à 17:01
si tu parle d'IE et firefox je les ais tou les deux !
0
cs_gabay Messages postés 25 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 29 juin 2010
26 mai 2008 à 17:03
peut etre que c un truc de reference qui doi etre intgré !??
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 mai 2008 à 17:11
le code que je t'ai filé fais la même action que click droit sur un fichier .HTM -> imprimer

quel message d'erreur obtiens-tu ? (lourd d'avoir a supplier les infos au compte gouttes)
0
cs_gabay Messages postés 25 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 29 juin 2010
26 mai 2008 à 17:17
le message c'est (exception) :

acune application n'est associée au fichier spécifique

(merci mais ne te sens pa obliger)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 mai 2008 à 17:21
et si tu double-cliques sur un fichier HTM
(ou plus précisément si tu presse bouton droit et que tu cliques Imprimer)

que se passe-t'il ?

si tu as IE et FF, pourquoi aucun d'eux ne semble s'être enregistré comme navigateur par default pour visualiser les fichier .HTM ?
0
cs_gabay Messages postés 25 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 29 juin 2010
26 mai 2008 à 17:25
tou marche tres bien !!!!!
0
cs_gabay Messages postés 25 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 29 juin 2010
26 mai 2008 à 17:28
c bon ca marche maintenat je te remerci
g just fai de IE le navigateur par default pour visualisé les fichier HTML au lieu de FF
donc aprement c'etai FF l'origine du probleme !
merci encore
0
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
26 mai 2008 à 18:57
Re,

Tu peux aussi prendre toujours le même navigateur au lieu de prendre celui par défaut, ceci en accèdant directement à l'éxécutable. Ca donnerait un truc du genre pour IE:

Process.Start("IExplorer.exe -print C:\fichier.htm") (ce n'est qu'un exemple, ce n'est surement pas la bonne ligne de commande)

L'inconvénient c'est que ça ne fonctionne que si Internet Explorer est installé.

Je viens d'aller voir la ligne de commande Print pour Firefox (mon navigateur par défaut):
"C:\Program Files\Microsoft Office\OFFICE11\msohtmed.exe" /p %1
Etrange... c'est donc office qui est utilisé pour imprimer les page web sur mon système.

Pour connaitre la ligne de commande: Poste de travail > Outils > Options des dossiers > Types de fichiers > HTM > Avancé > Print > Modifier
0
Rejoignez-nous